# Hız Sınırları ve Eşzamanlılık
Tripo API, hizmet istikrarını ve adil kullanımı sağlamak için hız sınırları ve eşzamanlılık sınırları uygular.
## Oran Limitleri
Hız sınırları, bir zaman aralığı içinde yapabileceğiniz API isteklerinin sayısını kısıtlar.
### Sınırlama Kuralları
- Oran limitleri **API Key** seviyesinde hesaplanır
- Sınırlar uç noktaya göre değişir. `/v3/generation/*` gibi nesil uç noktalarının sınırları daha düşükken, `/v3/tasks/*` gibi sorgu uç noktalarının sınırları daha yüksektir
- Bir sınır aşıldığında API, `1007` hata koduyla HTTP `429 Too Many Requests` değerini döndürür
### Yanıt Başlıkları
Her API yanıtı, hız sınırıyla ilgili yanıt başlıklarını içerir:
| Yanıt Başlığı | Açıklama |
| :-: | :-: |
| `X-RateLimit-Limit` | Geçerli zaman penceresinde izin verilen maksimum istek sayısı |
| `X-RateLimit-Remaining` | Geçerli zaman penceresinde kalan isteklerin sayısı |
| `X-RateLimit-Reset` | Oran sınırı penceresi sıfırlandığında saniye cinsinden Unix zaman damgası |
### Hız Sınırlı Olduğunda Yanıt
```json
{
"code": 1007,
"message": "Rate limit exceeded, you've generated too many requests in a short amount of time",
"suggestion": "Please wait for a while and try again"
}
```
---
## Eşzamanlılık Sınırları
Eşzamanlılık sınırları, hesabınız altında **aynı anda** çalıştırılabilecek görevlerin sayısını kısıtlar. Bu, hız sınırlarından farklıdır; hız sınırları istek sıklığını sınırlarken eşzamanlılık sınırları paralel çalışan görevleri sınırlar.
### Nasıl Çalışır?
- Eşzamanlılık **hesap** düzeyinde hesaplanır (API Key başına değil)
- Sınırlamalar **görev kategorisi başına** uygulanır; her kategorinin kendi bağımsız eşzamanlılık havuzu vardır
- Bir kategorinin eş zamanlılığı dolduğunda, bu kategori için yeni görev oluşturma, `2000` hata koduyla HTTP `429` değerini döndürür
- Diğer kategorilerdeki görevler **etkilenmez**; kullanılabilir slotlara sahip kategorilerde görevler oluşturmaya devam edebilirsiniz
### Varsayılan Limitler
Tüm kullanıcılar, kategori başına **10** varsayılan eşzamanlılıkla başlar; bazı kategorilerin farklı sınırları vardır (aşağıdaki tabloya bakın).
| Kategori | Dahil Edilen Görev Türleri | Varsayılan Eşzamanlılık |
| :-: | :-: | :-: |
| 3D Nesil — H Serisi | metinden modele (H), görüntüden modele (H), çoklu görünümden modele (H) | 10 |
| 3D Nesil — P Serisi | metinden modele (P), görüntüden modele (P), çoklu görünümden modele (P) | 5 |
| Görüntü Üretimi | metinden resme, resimden resme, resimden çoklu görünüme, düzenlemeden çoklu görünüme | 1 |
| Animasyon | otomatik rigging, rigging kontrolü, animasyon-yeniden hedefleme | 10 |
| Modeli İşleme | doku, format dönüştürme, iyileştirme | 5 |
| Mesh İşlemleri | segmentasyon, tamamlama, retopoloji | 10 |
> **Not:** Aynı kategorideki görevler eşzamanlılık havuzunu paylaşır. Örneğin, çalışan 10 H serisi metinden modele göreviniz varsa, biri tamamlanana kadar H serisi görüntüden modele görevini başlatamazsınız. Ancak yine de P serisi veya görüntü oluşturma görevlerini başlatabilirsiniz.
### Eşzamanlılık Aşıldığında Yanıt
```json
{
"code": 2000,
"message": "You have exceeded the limit of generation",
"suggestion": "Try again later. You can also check `Retry-After` header."
}
```
Yanıt, yeniden denemeden önce kaç saniye bekleneceğini belirten bir `Retry-After` başlığını içerir.
### Eşzamanlılığı Artırma
Daha yüksek eşzamanlılık limitleri talep etmek için lütfen destek kanalı aracılığıyla ekibimizle iletişime geçin. Özel eşzamanlılık, kullanım ihtiyaçlarınıza göre kategori başına yapılandırılabilir.
---
## 429 Yanıtın İşlenmesi
### Python
```python
import time
import requests
def request_with_backoff(method, url, headers, json=None, max_retries=5):
for attempt in range(max_retries):
response = requests.request(method, url, headers=headers, json=json)
if response.status_code != 429:
return response
retry_after = response.headers.get("Retry-After")
reset_at = response.headers.get("X-RateLimit-Reset")
if retry_after:
wait = int(retry_after)
elif reset_at:
wait = max(int(reset_at) - int(time.time()), 1)
else:
wait = 2 ** attempt
print(f"429 triggered. Waiting {wait} seconds (attempt {attempt + 1})...")
time.sleep(wait)
raise Exception("Maximum retry attempts exhausted")
```
### JavaScript
```javascript
async function requestWithBackoff(url, options, maxRetries = 5) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status !== 429) {
return response;
}
const retryAfter = response.headers.get("Retry-After");
const resetAt = response.headers.get("X-RateLimit-Reset");
const wait = retryAfter
? Number(retryAfter)
: resetAt
? Math.max(Number(resetAt) - Math.floor(Date.now() / 1000), 1)
: 2 ** attempt;
console.log(`429 triggered. Waiting ${wait} seconds (attempt ${attempt + 1})...`);
await new Promise(resolve => setTimeout(resolve, wait * 1000));
}
throw new Error("Maximum retry attempts exhausted");
}
```
## En İyi Uygulamalar
- **Üstel geri çekilme denemelerini uygulayın**: Başlangıçta 1 saniye bekleyin, her seferinde bekleme süresini iki katına çıkarın ve maksimum bekleme süresini 32 saniyeyle sınırlayın
- **`Retry-After` ve `X-RateLimit-Reset` başlıklarını tercih edin**: Sınır penceresi sıfırlanana kadar tam olarak bekleyin
- **Kategori düzeyinde eşzamanlılık için tasarım**: Mümkün olduğunda iş yüklerini kategorilere dağıtın; görüntü oluşturma ve 3D oluşturmanın ayrı havuzları vardır
- **Toplu API'leri kullanın**: Birden fazla `GET /v3/tasks/{task_id}` isteği yerine `POST /v3/tasks/list` kullanın
- **Akıllıca anket yapın**: Görevin tamamlanmasını beklerken, sorgu uç noktasını doldurmak yerine makul aralıklarla (1-2 saniyede bir) anket yapın
Hız Sınırları ve Eşzamanlılık
Tripo API, hizmet istikrarını ve adil kullanımı sağlamak için hız sınırları ve eşzamanlılık sınırları uygular.
Oran Limitleri
Hız sınırları, bir zaman aralığı içinde yapabileceğiniz API isteklerinin sayısını kısıtlar.
Sınırlama Kuralları
Oran limitleri API Key seviyesinde hesaplanır
Sınırlar uç noktaya göre değişir. /v3/generation/* gibi nesil uç noktalarının sınırları daha düşükken, /v3/tasks/* gibi sorgu uç noktalarının sınırları daha yüksektir
Bir sınır aşıldığında API, 1007 hata koduyla HTTP 429 Too Many Requests değerini döndürür
Yanıt Başlıkları
Her API yanıtı, hız sınırıyla ilgili yanıt başlıklarını içerir:
Yanıt Başlığı
Açıklama
X-RateLimit-Limit
Geçerli zaman penceresinde izin verilen maksimum istek sayısı
X-RateLimit-Remaining
Geçerli zaman penceresinde kalan isteklerin sayısı
X-RateLimit-Reset
Oran sınırı penceresi sıfırlandığında saniye cinsinden Unix zaman damgası
Hız Sınırlı Olduğunda Yanıt
JSON
{
"code":1007,
"message":"Rate limit exceeded, you've generated too many requests in a short amount of time",
"suggestion":"Please wait for a while and try again"}
Eşzamanlılık Sınırları
Eşzamanlılık sınırları, hesabınız altında aynı anda çalıştırılabilecek görevlerin sayısını kısıtlar. Bu, hız sınırlarından farklıdır; hız sınırları istek sıklığını sınırlarken eşzamanlılık sınırları paralel çalışan görevleri sınırlar.
Nasıl Çalışır?
Eşzamanlılık hesap düzeyinde hesaplanır (API Key başına değil)
Sınırlamalar görev kategorisi başına uygulanır; her kategorinin kendi bağımsız eşzamanlılık havuzu vardır
Bir kategorinin eş zamanlılığı dolduğunda, bu kategori için yeni görev oluşturma, 2000 hata koduyla HTTP 429 değerini döndürür
Diğer kategorilerdeki görevler etkilenmez; kullanılabilir slotlara sahip kategorilerde görevler oluşturmaya devam edebilirsiniz
Varsayılan Limitler
Tüm kullanıcılar, kategori başına 10 varsayılan eşzamanlılıkla başlar; bazı kategorilerin farklı sınırları vardır (aşağıdaki tabloya bakın).
otomatik rigging, rigging kontrolü, animasyon-yeniden hedefleme
10
Modeli İşleme
doku, format dönüştürme, iyileştirme
5
Mesh İşlemleri
segmentasyon, tamamlama, retopoloji
10
Not: Aynı kategorideki görevler eşzamanlılık havuzunu paylaşır. Örneğin, çalışan 10 H serisi metinden modele göreviniz varsa, biri tamamlanana kadar H serisi görüntüden modele görevini başlatamazsınız. Ancak yine de P serisi veya görüntü oluşturma görevlerini başlatabilirsiniz.
Eşzamanlılık Aşıldığında Yanıt
JSON
{
"code":2000,
"message":"You have exceeded the limit of generation",
"suggestion":"Try again later. You can also check `Retry-After` header."}
Yanıt, yeniden denemeden önce kaç saniye bekleneceğini belirten bir Retry-After başlığını içerir.
Eşzamanlılığı Artırma
Daha yüksek eşzamanlılık limitleri talep etmek için lütfen destek kanalı aracılığıyla ekibimizle iletişime geçin. Özel eşzamanlılık, kullanım ihtiyaçlarınıza göre kategori başına yapılandırılabilir.
Üstel geri çekilme denemelerini uygulayın: Başlangıçta 1 saniye bekleyin, her seferinde bekleme süresini iki katına çıkarın ve maksimum bekleme süresini 32 saniyeyle sınırlayın
Retry-After ve X-RateLimit-Reset başlıklarını tercih edin: Sınır penceresi sıfırlanana kadar tam olarak bekleyin
Kategori düzeyinde eşzamanlılık için tasarım: Mümkün olduğunda iş yüklerini kategorilere dağıtın; görüntü oluşturma ve 3D oluşturmanın ayrı havuzları vardır
Toplu API’leri kullanın: Birden fazla GET /v3/tasks/{task_id} isteği yerine POST /v3/tasks/list kullanın