Léim go dtí an t-ábhar
Láimhseáil Earráide

Láimhseáil Earráide

Filleann iarratas a theipeann cód stádais HTTP agus corp JSON le cineál earráide agus teachtaireacht. Liostaíonn an leathanach seo gach stádas, taispeánann sé corp earráide gach formáid API agus insíonn sé cé acu earráidí is fiú a sheoladh arís.

Ardaíonn na SDKanna réad earráide a iompraíonn an cód stádais agus réimsí an choirp. Ainmníonn an t-iarratas seo múnla nach bhfuil ann:

import openai
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

try:
    client.chat.completions.create(
        model="no-such-model",
        messages=[{"role": "user", "content": "Hello"}],
    )
except openai.APIStatusError as error:
    print(error.status_code)                           # 400
    print(error.type)                                  # invalid_request_error
    print(error.body["message"])                       # unknown model: no-such-model
    print(error.response.headers.get("x-request-id"))  # the id of this request

Filleann sé stádas 400 agus an corp seo:

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}

Corp na hearráide

Tá dhá chorp ann. Freagraíonn /v1/messages i bhformáid Anthropic; freagraíonn gach críochphointe eile i bhformáid OpenAI. Sa dá cheann, tá na sonraí in error.type agus error.message, mar sin freastalaíonn léitheoir amháin ar gach críochphointe.

401 Formáid OpenAI
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
401 Formáid Anthropic
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}
Réimse Cineál Cur síos
error.type string Cineál na hearráide. Féach Cineálacha earráide thíos.
error.message string Abairt do dhuine. Tá na téacsanna sna táblaí thíos cobhsaí seachas a gcodanna athraitheacha, a thaispeántar mar <id>, <n> nó ….
error.code string | null Ann ar roinnt earráidí de chuid fhormáid OpenAI: invalid_api_key le 401, request_too_large le 413, context_length_exceeded nuair a bhíonn comhrá rófhada, seachas sin null nó as láthair. Socraigh ar an stádas agus ar error.type ar dtús agus caith le code mar bhreis.
error.param null Ann ar na hearráidí céanna le code. null i gcónaí.
type string Formáid Anthropic amháin. error i gcónaí.

Cineálacha earráide

Cineál Stádais Cur síos
invalid_request_error 400, 413, 415, 422 Tá an t-iarratas féin mícheart: réimse, an corp, an id múnla nó ionchur nach nglacann an múnla leis. Athraigh an t-iarratas sula seolann tú arís é.
authentication_error 401 Tá an eochair API ar iarraidh, anaithnid nó cúlghairthe.
not_found_error 404 Níl an cosán ann.
rate_limit_error 429 Ní chlúdaíonn an t-iarmhéid an t-iarratas, stop cosaint tuile é, nó tá an múnla gnóthach. Insíonn an teachtaireacht cé acu.
api_error 500, 502, 503, 504 Bhí an t-iarratas ceart agus tá an teip ar ár dtaobh féin. Seol arís é.
server_error 500 Bhí an t-iarratas ceart agus tá an teip ar ár dtaobh féin. Seol arís é.

Cóid stádais

Stádas Cineál Teachtaireacht Cathain
400 invalid_request_error Failed to parse the request body as JSON: … Ní JSON bailí é an corp.
400 invalid_request_error unknown model: <id> Ní id foilsithe é model. Ar /v1/responses freisin nuair a bhíonn model ar iarraidh.
400 invalid_request_error No user message provided Leibhéil Shannon: níl aon téacs úsáideora san iarratas.
400 invalid_request_error <id> does not accept image input Seoladh íomhá chuig múnla open-weight óstáilte gan ionchur íomhá.
400 invalid_request_error audio and video input are not supported by any hosted model Seoladh cuid fuaime nó físe chuig múnla open-weight óstáilte.
400 invalid_request_error <id> does not accept response_format Iarradh aschur struchtúrtha ar mhúnla open-weight óstáilte nach bhfuil aige.
400 invalid_request_error <id> does not accept response_format json_schema; use json_object Seoladh scéim JSON chuig múnla open-weight óstáilte nach nglacann ach le json_object.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Níl an iarracht réasúnaíochta ar cheann de na luachanna liostaithe. Múnlaí open-weight óstáilte.
400 invalid_request_error count_tokens is available for the hosted open models; unknown model: <id> Iarradh comhaireamh token ar mhúnla lasmuigh de na múnlaí open-weight óstáilte.
401 authentication_error Missing authentication Níor seoladh aon eochair API.
401 authentication_error Invalid API key Tá an eochair anaithnid, cuireadh ceann níos nuaí ina háit, nó cúlghaireadh í.
404 not_found_error Not Found Níl an cosán ann, mar shampla /v1/embeddings.
405 api_error Method Not Allowed Tá an cosán ann ach ní leis an modh HTTP seo.
413 invalid_request_error Failed to buffer the request body: … Tá corp an iarratais níos mó ná 32 MiB.
415 invalid_request_error Expected request with `Content-Type: application/json` Tá an ceanntásc Content-Type ar iarraidh nó ní application/json é.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Tá réimse riachtanach ar iarraidh, mar messages, nó tá cineál JSON mícheart ar réimse.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Tá teorainn aschuir an iarratais níos mó ná an méid atá fágtha d'iarmhéid.
429 rate_limit_error Too many requests. Retry in <n>s. Cosaint tuile: níos mó ná 120 iarratas in aon nóiméad amháin ar do chuntas. Is é <n> líon na soicindí go dtí go gcríochnaíonn an nóiméad.
429 rate_limit_error Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan shannon-coder-1 ar /v1/chat/completions agus /v1/messages: tá glaonna Shannon Coder do phlean na fuinneoige 4 uair an chloig reatha úsáidte.
429 rate_limit_error Shannon routes are temporarily busy. Please retry. Tá an múnla gnóthach faoi láthair.
500 server_error The model backend failed to answer. Please retry. Níor tháirg an múnla freagra.
500 server_error An internal error occurred. Please retry. Teip inmheánach agus an t-iarratas á ullmhú.
502 api_error The model backend failed to answer. Please retry. Níor tháirg an múnla freagra. Teaghlach Shannon 3 agus múnlaí open-weight óstáilte.
503 api_error Could not verify your quota right now. Please retry. Níorbh fhéidir d'iarmhéid a léamh faoi láthair.
503 api_error token counting is temporarily unavailable for this model Níl comhaireamh token ar fáil don mhúnla seo faoi láthair.
504 api_error upstream timed out Thóg múnla open-weight óstáilte níos faide ná teorainn ama iarratais nach sruthaítear.

Ritheann seiceálacha san ord seo: eochair API, corp iarratais, id múnla, cosaint tuile, iarmhéid. Dá bhrí sin, filleann iarratas le heochair mhícheart agus corp mícheart 401. Ní mhuirearaítear iarratas a dhiúltaítear le stádas 4xx.

Iarmhéid agus cosaint tuile

Freastalaítear ar gach iarratas ar an gcaoi chéanna: níl aon leibhéil ráta ann agus níl aon chuóta API ar leith ann. Fós féin, féadfaidh dhá rud 429 a fhreagairt, an dá cheann leis an gcineál rate_limit_error. Idirdhealaíonn an teachtaireacht iad.

Iarmhéid

Is é d'iarmhéid liúntas an phlean don lá inniu, a athshocraítear ag 00:00 UTC, agus ina dhiaidh sin do chreidmheas ceannaithe. Tarraingíonn comhrá agus an API as an iarmhéid céanna.

Cuireann gach iarratas a theorainn aschuir i leataobh ar dtús: max_tokens, nó max_output_tokens ar /v1/responses, 4,096 nuair nach seolann tú ceachtar. Nuair a bhíonn an freagra críochnaithe, cuirtear an méid a d'úsáid an t-iarratas in ionad an méid a cuireadh i leataobh. Mura n-oireann an méid don iarmhéid atá fágtha, filleann an t-iarratas Quota exceeded sular tosaíonn an múnla.

Cuireann iarratais a ritheann ag an am céanna a méid féin i leataobh. Dá bhrí sin, is féidir le go leor iarratas comhthreomhar le max_tokens ard an t-iarmhéid a úsáid suas ar feadh meandair, fiú nuair a bhíonn gach freagra gearr. Cuireann max_tokens níos ísle níos lú i leataobh.

Cosaint tuile

Ceadaíonn cosaint tuile 120 iarratas in aghaidh an nóiméid in aghaidh an chuntais. Comhaireann sí an cuntas, ní an eochair, thar /v1/chat/completions, /v1/responses agus /v1/messages le chéile. Tosaíonn an nóiméad le d'iarratas ar dtús.

Filleann iarratas uimhir 121 laistigh den nóiméad sin Too many requests. Retry in <n>s. agus ní chosnaíonn sé faic. Comhairtear iarratais dhiúltaithe freisin, mar sin fanann cliant a sheolann arís gan fanacht diúltaithe go dtí go mbíonn an nóiméad thart. Fan na <n> soicind ón teachtaireacht.

Ní dhiúltaítear d'iarratais a sheoltar comhthreomhar toisc go bhfuil siad comhthreomhar. Fanann siad sa scuaine agus freagraítear iad ar a seal.

Ní chomhairtear GET /v1/models ná na críochphointí comhairimh token.

Tuilleadh faoi theorainneacha agus iarmhéid, agus cá bhfeiceann tú d'iarmhéid agus d'úsáid féin: Teorainneacha agus iarmhéid Eochracha agus úsáid

Cad ba cheart a athiarraidh

Ná seol iarratas arís ach amháin nuair a d'fhéadfadh an t-iarratas céanna éirí leis. Déanann SDKanna OpenAI agus Anthropic triail eile faoi dhó cheana féin ar fhreagraí 429 agus 5xx astu féin; socraigh max_retries (maxRetries i JavaScript) chun é sin a athrú.

Earráid An seolfar arís? Conas
400, 404, 405, 413, 415, 422 Ná seol. Ceartaigh an t-iarratas ar dtús. Ainmníonn an teachtaireacht an réimse, an múnla nó an t-ionchur atá mícheart.
401 Ná seol. Úsáid eochair bhailí. Cruthaigh nó athchuir an eochair ar an leathanach Eochracha agus úsáid.
429 Too many requests Seol, tar éis na fanachta. Fan líon na soicindí sa teachtaireacht, ansin seol an t-iarratas céanna.
429 Quota exceeded Ní mar atá sé. Ísligh max_tokens, fan le hathshocrú laethúil ag 00:00 UTC, nó cuir creidmheas leis.
429 Shannon Coder call quota reached Seol, san fhuinneog dár gcionn. Tosaíonn na fuinneoga gach 4 uair an chloig ó 00:00 UTC. Freagraíonn múnla eile láithreach.
429 … temporarily busy Seol. Fan cúpla soicind, ansin níos faide gach iarracht bhreise.
500, 502, 503 Seol. Fan 1 soicind, ansin 2, 4 agus 8. Stop tar éis cúpla iarracht agus tuairiscigh an id iarratais.
504 Seol. Seol é le stream socraithe go true: baineann an teorainn ama le freagraí nach sruthaítear.

Lúb athiarrachta a leanann an tábla seo:

import re
import time

import openai
from openai import OpenAI

# max_retries=0: this loop does the retrying, the SDK does not add its own.
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1", max_retries=0)


def create_with_retry(attempts=5, **request):
    for attempt in range(attempts):
        try:
            return client.chat.completions.create(**request)
        except openai.RateLimitError as error:
            text = str(error)
            flood = re.search(r"Retry in (\d+)s", text)
            if flood:
                time.sleep(int(flood.group(1)))   # flood protection: wait out the minute
            elif "temporarily busy" in text:
                time.sleep(2 ** attempt)
            else:
                raise                             # balance: a wait of seconds does not help
        except (openai.InternalServerError, openai.APIConnectionError):
            time.sleep(2 ** attempt)              # 1, 2, 4, 8 seconds
    raise RuntimeError("the request failed after all attempts")


response = create_with_retry(
    model="shannon-3",
    messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)

Earráidí laistigh de shruth

Tá stádas 200 ag sruth óna chéad bheart. Tagann teip ina dhiaidh sin mar imeacht laistigh den sruth: píosa le ball error ar /v1/chat/completions, imeacht error ar /v1/messages, imeacht response.failed nó error ar /v1/responses. Leanann imeachtaí deiridh an tsrutha fós. Caith leis an bhfreagra sin mar theip agus seol an t-iarratas arís, mar a dhéanfá le stádas 5xx.

Tuairiscítear comhrá atá níos faide ná fuinneog comhthéacs an mhúnla ar an mbealach seo, leis an gcineál invalid_request_error agus an cód context_length_exceeded. Giorraigh an comhrá sula seolann tú arís é.

Déantar cur síos ar na frámaí cruinne le sruthú. Sruthú

Ids iarratais

Tá ceanntásc x-request-id ar gach freagra, earráidí san áireamh. Is é an luach a sheol tú i do cheanntásc x-request-id féin é, nó 12 charachtar heicsidheachúlacha mura seol tú aon cheann. Logáil é, agus luaigh é nuair a iarrann tú cabhair le hiarratas.