AI uygulamalarında tipik olan ve birkaç saniyeden uzun süren istekler için bir kuyruk sistemi geliştirdik. Bu sistem, trafik artışlarını yönetmek, gerekirse istekleri iptal etmek ve isteğinizin kuyruktaki durumunu izlemek için size ayrıntılı kontrol sunar. Ayrıca, uzun süren HTTP isteklerini yönetme ihtiyacını da ortadan kaldırır.

Kuyruk Uç Noktaları

Tüm kuyruk özelliklerine aşağıdaki uç noktalar üzerinden erişebilirsiniz:
Uç NoktaYöntemAçıklama
api.sunra.ai/v1/queue/{model-id}POSTKuyruğa bir istek ekler
api.sunra.ai/v1/queue/requests/{request_id}/statusGETBir isteğin durumunu alır
api.sunra.ai/v1/queue/requests/{request_id}/status/streamGETTamamlanana kadar durumu yayınlar
api.sunra.ai/v1/queue/requests/{request_id}GETBir isteğin yanıtını getirir
api.sunra.ai/v1/queue/requests/{request_id}/cancelPUTBir isteği iptal eder
Örneğin, curl kullanarak bir istek göndermek ve kuyruğa eklemek için:
curl -X POST \
  https://api.sunra.ai/v1/queue/black-forest-labs/flux-1.1-pro/text-to-image \
  -H "Authorization: Key $SUNRA_KEY" \
  -d '{"prompt": "Renkli evler, çamaşırların sallandığı ve pencerelerde uyuyan kedilerin olduğu Studio Ghibli tarzı sahil kasabası."}'
İşte request_id’yi içeren örnek bir yanıt:
{
  "request_id": "pd_vXW7VwPN2MbTwT8bzpWrYU5Y",
  "response_url": "https://api.sunra.ai/v1/queue/requests/pd_vXW7VwPN2MbTwT8bzpWrYU5Y",
  "status_url": "https://api.sunra.ai/v1/queue/requests/pd_vXW7VwPN2MbTwT8bzpWrYU5Y/status",
  "cancel_url": "https://api.sunra.ai/v1/queue/requests/pd_vXW7VwPN2MbTwT8bzpWrYU5Y/cancel"
}
Yük, request_id’yi içerir ve durumu kontrol etmek, iptal etmek veya yanıtı almak için URL’ler sağlar, bu da ek uç nokta geliştirmeden iş akışınızı kolaylaştırır.

İstek Durumu

İsteğinizin ilerlemesini izlemek için, benzersiz istek kimliğinizle sağlanan uç noktayı kullanın. Bu, durumu, kuyruk konumunu izlemenize veya hazır olduğunda yanıtı almanıza olanak tanır.

Uç Nokta Kullanımı

curl -X GET https://api.sunra.ai/v1/queue/requests/{request_id}/status

Örnek Yanıt

İsteğiniz kuyruktayken, şöyle bir yanıt alırsınız:
{
  "status": "IN_QUEUE",
  "metrics": {},
  "queue_position": 0,
  "response_url": "https://api.sunra.ai/v1/queue/requests/pd_hvTNHJPSZj4KgtzytfTGsySf",
  "status_url": "https://api.sunra.ai/v1/queue/requests/pd_hvTNHJPSZj4KgtzytfTGsySf/status",
  "cancel_url": "https://api.sunra.ai/v1/queue/requests/pd_hvTNHJPSZj4KgtzytfTGsySf/cancel"
}

Olası Durumlar

İsteğiniz üç durumdan birinde olabilir:
  • IN_QUEUE: İsteğin işlenmeyi beklediğini gösterir.
    • queue_position: Kuyruktaki yerinizi gösterir.
    • response_url: İşlem tamamlandığında yanıtı almak için URL.
  • IN_PROGRESS: İstek şu anda işleniyor.
    • logs: İşlem adımlarını gösteren ayrıntılı günlükler (etkinleştirilmişse).
    • response_url: Son yanıtın bulunacağı yer.
  • COMPLETED: İşlem tamamlandı.
    • logs: Tüm süreci detaylandıran günlükler.
    • response_url: Tamamlanmış yanıtınıza doğrudan bağlantı.

Günlükleri Etkinleştirme

Günlükler, istek işleme hakkında bilgi sağlar. Varsayılan olarak devre dışıdırlar ancak bir sorgu parametresiyle etkinleştirilebilirler:
curl -X GET https://api.sunra.ai/v1/queue/requests/{request_id}/status?logs=1
Her günlük girişi şunları içerir:
  • message: Olayın açıklaması.
  • level: Önem derecesi (örneğin, INFO, ERROR).
  • source: Günlüğün kaynağı.
  • timestamp: Günlüğün oluşturulduğu zaman.

Gerçek Zamanlı İzleme

Sürekli güncellemeler için akış uç noktasını kullanın:
curl -X GET https://api.sunra.ai/v1/queue/requests/{request_id}/status/stream
Bu, istek tamamlanana kadar text/event-stream formatında gerçek zamanlı durum güncellemeleri sağlar.

İstekleri İptal Etme

İsteğiniz hala kuyruktaysa, şununla iptal edebilirsiniz:
curl -X PUT https://api.sunra.ai/v1/queue/requests/{request_id}/cancel

Yanıtları Alma

İsteğiniz COMPLETED olduğunda, yanıtı şununla alın:
curl -X GET https://api.sunra.ai/v1/queue/requests/{request_id}
Bu uç nokta, inceleme için günlükler de sağlar.

Sunra İstemcisi ile Basitleştirilmiş Entegrasyon

Sunra istemcisi, durum takibini otomatikleştirir ve Sunra işlevleriyle uygulama geliştirmeyi basitleştirir.

Hız Sınırları

Adil kullanımı ve sistem kararlılığını sağlamak için API uç noktalarımız aşağıdaki hız sınırlarına tabidir:
Uç Nokta TürüHız SınırıPatlama Sınırı
Kuyruğa Gönder10 istek/saniye100 istek/dakika
Diğer Tüm Uç Noktalar100 istek/saniye1,800 istek/dakika
Bu sınırları aşarsanız, bir 403 Yasak yanıtı alırsınız. Bu durumları ele almak için üstel geri çekilme ile bir yeniden deneme mekanizması uygulamanızı öneririz.