Chyby API agenta
Každá odmietnutá požiadavka odpovedá stavovým kódom a telom JSON s poľom error, takže sa skript môže rozhodnúť, čo urobí ďalej.
Príklady používajú premenné ELOWEN_URL a ELOWEN_TOKEN z Odošlite prvú požiadavku na API agenta.
Stavové kódy
| Stav | Kedy nastane | Telo |
|---|---|---|
400 |
Telo požiadavky nie je platný JSON, pole má nesprávny typ alebo nesie pole, ktoré požiadavka neprijíma. | { "error": "…" } s popisom poľa |
401 |
Token chýba, je neznámy, zmazaný alebo prepadnutý, prípadne bola jeho hodnota nahradená. | { "error": "unauthorized" } |
402 |
Účet dosiahol mesačný limit útraty. Samotná chýbajúca cena modelu toto odmietnutie nespôsobuje. Ide o limit účtu, nie tokenu. | { "error": "spend_limit", "reason": "monthly_limit", "resetsAt": "…" }, kde resetsAt je začiatok ďalšieho mesiaca v UTC |
403 |
Požiadavka vyžaduje prihlásenú reláciu v prehliadači alebo ju Váš účet nesmie použiť. Pozrite si Čo token nevie. | { "error": "forbidden" } |
404 |
conversationId nie je jedna z Vašich konverzácií. |
{ "error": "unknown conversation" } |
409 |
V konverzácii už beží ťah. | { "error": "conversation_busy" } |
409 |
Požadovaný model bol odmietnutý. | { "error": "…" }, rovnaká správa, akú ukazuje webová aplikácia |
429 |
Bol dosiahnutý limit tokenu. | { "error": "…", "reason": "…" } a hlavička Retry-After |
500 |
Ťah zlyhal, nemohol začať alebo sa nepodarilo prepnúť na požadovaný model. S "stream": true odpovedá ťah, ktorý nemohol začať, týmto stavom namiesto streamu. |
{ "error": "…", "conversationId": "…" } |
503 |
Agent nie je na tomto serveri dostupný. Vracia sa aj vtedy, keď sa nepodarilo zaznamenať spotrebu účtu, čo blokuje jeho platené požiadavky, kým administrátor spotrebu nevyrovná a Chetty nereštartuje. | { "error": "brain unavailable" }, alebo správa o spotrebe |
Rozhodujte sa podľa error a pri 429 podľa reason, nie podľa textu správy.
Odmietnutia kvôli limitu
429 vždy nesie Retry-After, počet sekúnd na čakanie, a reason, podľa ktorého sa skript môže zachovať:
error |
reason |
Význam | Retry-After |
|---|---|---|---|
limit_exhausted |
requests_per_minute |
Príliš mnoho požiadaviek v tejto minúte. | Sekundy do konca minúty. |
limit_exhausted |
monthly_cost |
Mesačný limit nákladov je dosiahnutý. | Sekundy do ďalšieho mesiaca v UTC. |
limit_unverifiable |
monthly_cost_unverifiable |
Niektorý ťah tento mesiac nehlásil náklady, takže limit nemožno overiť. | Sekundy do ďalšieho mesiaca v UTC. |
limit_exhausted |
daily_cost |
Denný limit nákladov je dosiahnutý. | Sekundy do ďalšieho dňa v UTC. |
limit_unverifiable |
daily_cost_unverifiable |
Niektorý ťah dnes nehlásil náklady, takže limit nemožno overiť. | Sekundy do ďalšieho dňa v UTC. |
limit_exhausted |
concurrent_turns |
Príliš mnoho behov stále beží. | 1 |
Keď je dosiahnutých viac limitov nákladov naraz, odpoveď uvádza širšie okno, mesiac pred dňom, aby Retry-After bol čas, kedy beh skutočne môže uspieť.
curl -sS -D - "$ELOWEN_URL/api/v1/agent/runs" \
-H "Authorization: Bearer $ELOWEN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message":"One more"}'
HTTP/1.1 429 Too Many Requests
Retry-After: 52380
Content-Type: application/json
{"error":"limit_exhausted","reason":"daily_cost"}
Čo sa započíta z odmietnutého behu
Beh odmietnutý limitom nič nevytvorí: žiadnu konverzáciu, žiadny ťah a nič do počtu ťahov tokenu.
To isté platí pre beh odmietnutý preto, že konverzácia bola obsadená, konverzácia alebo model boli neznáme, alebo jeho ťah nemohol začať. Opakovanie po čakaní preto prebehne, ako keby odmietnutý pokus nikdy nenastal.
Súvisiace návody
Ako tieto limity nastaviť popisuje Obmedzte, čo môže API token spustiť; požiadavku, ktorá prejde, Odošlite prvú požiadavku na API agenta.