എറർ ഹാൻഡ്ലിംഗ്
പരാജയപ്പെടുന്ന റിക്വസ്റ്റ് ഒരു HTTP സ്റ്റാറ്റസ് കോഡും, പിശക് തരവും സന്ദേശവും ഉള്ള ഒരു JSON ബോഡിയും നൽകുന്നു. ഈ പേജ് ഓരോ സ്റ്റാറ്റസും പട്ടികപ്പെടുത്തുന്നു, ഓരോ API ഫോർമാറ്റിലെയും പിശക് ബോഡി കാണിക്കുന്നു, ഏതൊക്കെ പിശകുകൾ വീണ്ടും അയയ്ക്കാൻ കൊള്ളാം എന്നും പറയുന്നു.
SDK-കൾ സ്റ്റാറ്റസ് കോഡും ബോഡിയിലെ ഫീൽഡുകളും വഹിക്കുന്ന ഒരു എറർ ഒബ്ജക്റ്റ് ഉയർത്തുന്നു. ഈ റിക്വസ്റ്റ് നിലവിലില്ലാത്ത ഒരു മോഡലിനെ പേരുനൽകുന്നു:
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 import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
try {
await client.chat.completions.create({
model: "no-such-model",
messages: [{ role: "user", content: "Hello" }],
});
} catch (error) {
if (!(error instanceof OpenAI.APIError)) throw error;
console.log(error.status); // 400
console.log(error.type); // invalid_request_error
console.log(error.error.message); // unknown model: no-such-model
} curl -i https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "no-such-model",
"messages": [{"role": "user", "content": "Hello"}]
}' ഇത് സ്റ്റാറ്റസ് 400-ഉം ഈ ബോഡിയും നൽകുന്നു:
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} എറർ ബോഡി
രണ്ട് തരം ബോഡികളുണ്ട്. /v1/messages Anthropic ഫോർമാറ്റിൽ മറുപടി നൽകുന്നു; മറ്റെല്ലാ എൻഡ്പോയിന്റുകളും OpenAI ഫോർമാറ്റിൽ മറുപടി നൽകുന്നു. രണ്ടിലും വിശദാംശങ്ങൾ error.type-ലും error.message-ലും ആണ്, അതിനാൽ ഒരു റീഡർ എല്ലാ എൻഡ്പോയിന്റുകൾക്കും മതി.
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} | ഫീൽഡ് | ടൈപ്പ് | വിവരണം |
|---|---|---|
error.type | string | പിശകിന്റെ തരം. താഴെയുള്ള പിശക് തരങ്ങൾ കാണുക. |
error.message | string | ഒരാൾക്ക് വായിക്കാനുള്ള ഒരു വാചകം. താഴെയുള്ള പട്ടികകളിലെ ടെക്സ്റ്റുകൾ, <id>, <n> അല്ലെങ്കിൽ … ആയി കാണിച്ചിരിക്കുന്ന മാറുന്ന ഭാഗങ്ങൾ ഒഴികെ, സ്ഥിരമാണ്. |
error.code | string | null | OpenAI ഫോർമാറ്റിലെ ചില പിശകുകളിൽ ഉണ്ടാകും: 401-ഓടെ invalid_api_key, 413-ഓടെ request_too_large, സംഭാഷണം വളരെ ദൈർഘ്യമേറിയപ്പോൾ context_length_exceeded, അല്ലാത്തപ്പോൾ null അല്ലെങ്കിൽ ഇല്ല. ആദ്യം സ്റ്റാറ്റസും error.type-ഉം നോക്കി തീരുമാനിക്കുക, code അധിക വിവരമായി കണക്കാക്കുക. |
error.param | null | code ഉള്ള അതേ പിശകുകളിൽ ഉണ്ടാകും. എപ്പോഴും null. |
type | string | Anthropic ഫോർമാറ്റിൽ മാത്രം. എപ്പോഴും error. |
പിശക് തരങ്ങൾ
| ടൈപ്പ് | സ്റ്റാറ്റസുകൾ | വിവരണം |
|---|---|---|
invalid_request_error | 400, 413, 415, 422 | റിക്വസ്റ്റ് തന്നെ തെറ്റാണ്: ഒരു ഫീൽഡ്, ബോഡി, മോഡൽ ഐഡി, അല്ലെങ്കിൽ മോഡൽ സ്വീകരിക്കാത്ത ഇൻപുട്ട്. വീണ്ടും അയയ്ക്കുന്നതിന് മുമ്പ് റിക്വസ്റ്റ് മാറ്റുക. |
authentication_error | 401 | API കീ ഇല്ല, അജ്ഞാതമാണ്, അല്ലെങ്കിൽ റദ്ദാക്കിയതാണ്. |
not_found_error | 404 | പാത്ത് നിലവിലില്ല. |
rate_limit_error | 429 | ബാലൻസ് റിക്വസ്റ്റിന് തികയുന്നില്ല, ഫ്ലഡ് പ്രൊട്ടക്ഷൻ തടഞ്ഞു, അല്ലെങ്കിൽ മോഡൽ തിരക്കിലാണ്. ഏതെന്ന് സന്ദേശം പറയും. |
api_error | 500, 502, 503, 504 | റിക്വസ്റ്റ് ശരിയായിരുന്നു, പരാജയം ഞങ്ങളുടെ ഭാഗത്താണ്. വീണ്ടും അയയ്ക്കുക. |
server_error | 500 | റിക്വസ്റ്റ് ശരിയായിരുന്നു, പരാജയം ഞങ്ങളുടെ ഭാഗത്താണ്. വീണ്ടും അയയ്ക്കുക. |
സ്റ്റാറ്റസ് കോഡുകൾ
| സ്റ്റാറ്റസ് | ടൈപ്പ് | സന്ദേശം | എപ്പോൾ |
|---|---|---|---|
400 | invalid_request_error | Failed to parse the request body as JSON: … | ബോഡി സാധുവായ JSON അല്ല. |
400 | invalid_request_error | unknown model: <id> | model പ്രസിദ്ധീകരിച്ച ഐഡി അല്ല. /v1/responses-ൽ model ഇല്ലാത്തപ്പോഴും. |
400 | invalid_request_error | No user message provided | Shannon ടിയറുകൾ: റിക്വസ്റ്റിൽ യൂസർ ടെക്സ്റ്റ് ഇല്ല. |
400 | invalid_request_error | <id> does not accept image input | ചിത്രം ഇൻപുട്ട് ഇല്ലാത്ത ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിലേക്ക് ഒരു ചിത്രം അയച്ചു. |
400 | invalid_request_error | audio and video input are not supported by any hosted model | ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിലേക്ക് ഓഡിയോ അല്ലെങ്കിൽ വീഡിയോ ഭാഗം അയച്ചു. |
400 | invalid_request_error | <id> does not accept response_format | ഇത് പിന്തുണയ്ക്കാത്ത ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിനോട് ഘടനയുള്ള ഔട്ട്പുട്ട് ആവശ്യപ്പെട്ടു. |
400 | invalid_request_error | <id> does not accept response_format json_schema; use json_object | json_object മാത്രം സ്വീകരിക്കുന്ന ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിലേക്ക് ഒരു JSON സ്കീമ അയച്ചു. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | റീസണിംഗ് എഫർട്ട് പട്ടികപ്പെടുത്തിയ മൂല്യങ്ങളിൽ ഒന്നല്ല. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ. |
400 | invalid_request_error | count_tokens is available for the hosted open models; unknown model: <id> | ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾക്ക് പുറത്തുള്ള ഒരു മോഡലിന് ടോക്കൺ എണ്ണൽ ആവശ്യപ്പെട്ടു. |
401 | authentication_error | Missing authentication | API കീ അയച്ചില്ല. |
401 | authentication_error | Invalid API key | കീ അജ്ഞാതമാണ്, പുതിയൊരു കീ കൊണ്ട് മാറ്റിയതാണ്, അല്ലെങ്കിൽ റദ്ദാക്കിയതാണ്. |
404 | not_found_error | Not Found | പാത്ത് നിലവിലില്ല, ഉദാഹരണത്തിന് /v1/embeddings. |
405 | api_error | Method Not Allowed | പാത്ത് നിലവിലുണ്ട്, പക്ഷേ ഈ HTTP മെത്തേഡിൽ ഇല്ല. |
413 | invalid_request_error | Failed to buffer the request body: … | റിക്വസ്റ്റ് ബോഡി 32 MiB-യേക്കാൾ വലുതാണ്. |
415 | invalid_request_error | Expected request with `Content-Type: application/json` | Content-Type ഹെഡർ ഇല്ല, അല്ലെങ്കിൽ അത് application/json അല്ല. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages പോലുള്ള ആവശ്യമായ ഒരു ഫീൽഡ് ഇല്ല, അല്ലെങ്കിൽ ഒരു ഫീൽഡിന് തെറ്റായ JSON ടൈപ്പ് ആണ്. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | റിക്വസ്റ്റിന്റെ ഔട്ട്പുട്ട് പരിധി നിങ്ങളുടെ ബാക്കി ബാലൻസിനേക്കാൾ വലുതാണ്. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | ഫ്ലഡ് പ്രൊട്ടക്ഷൻ: നിങ്ങളുടെ അക്കൗണ്ടിൽ ഒരു മിനിറ്റിൽ 120-ൽ കൂടുതൽ റിക്വസ്റ്റുകൾ. മിനിറ്റ് തീരുന്നതുവരെയുള്ള സെക്കൻഡുകളുടെ എണ്ണമാണ് <n>. |
429 | rate_limit_error | Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan | /v1/chat/completions-ലും /v1/messages-ലും shannon-coder-1: നിലവിലെ 4 മണിക്കൂർ വിൻഡോയിലെ നിങ്ങളുടെ പ്ലാനിന്റെ Shannon Coder കോളുകൾ തീർന്നു. |
429 | rate_limit_error | Shannon routes are temporarily busy. Please retry. | ഈ നിമിഷം മോഡൽ തിരക്കിലാണ്. |
500 | server_error | The model backend failed to answer. Please retry. | മോഡൽ മറുപടി ഉണ്ടാക്കിയില്ല. |
500 | server_error | An internal error occurred. Please retry. | റിക്വസ്റ്റ് തയ്യാറാക്കുമ്പോൾ ഒരു ആന്തരിക പരാജയം. |
502 | api_error | The model backend failed to answer. Please retry. | മോഡൽ മറുപടി ഉണ്ടാക്കിയില്ല. Shannon 3 കുടുംബവും ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളും. |
503 | api_error | Could not verify your quota right now. Please retry. | ഈ നിമിഷം നിങ്ങളുടെ ബാലൻസ് വായിക്കാൻ കഴിഞ്ഞില്ല. |
503 | api_error | token counting is temporarily unavailable for this model | ഈ നിമിഷം ഈ മോഡലിന് ടോക്കൺ എണ്ണൽ ലഭ്യമല്ല. |
504 | api_error | upstream timed out | സ്ട്രീം ചെയ്യാത്ത റിക്വസ്റ്റിന്റെ സമയപരിധിയേക്കാൾ കൂടുതൽ സമയം ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡൽ എടുത്തു. |
പരിശോധനകൾ ഈ ക്രമത്തിൽ നടക്കുന്നു: API കീ, റിക്വസ്റ്റ് ബോഡി, മോഡൽ ഐഡി, ഫ്ലഡ് പ്രൊട്ടക്ഷൻ, ബാലൻസ്. അതിനാൽ തെറ്റായ കീയും തെറ്റായ ബോഡിയും ഉള്ള റിക്വസ്റ്റ് 401 നൽകും. 4xx സ്റ്റാറ്റസോടെ നിരസിക്കപ്പെടുന്ന റിക്വസ്റ്റിന് ചാർജ് ഈടാക്കില്ല.
ബാലൻസും ഫ്ലഡ് പ്രൊട്ടക്ഷനും
ഓരോ റിക്വസ്റ്റും തുല്യമായി സേവിക്കുന്നു: റേറ്റ് ടിയറുകളില്ല, പ്രത്യേക API ക്വാട്ടയുമില്ല. എങ്കിലും രണ്ട് കാര്യങ്ങൾ 429 നൽകാം, രണ്ടും ടൈപ്പ് rate_limit_error ഓടെ. സന്ദേശം അവയെ വേർതിരിച്ചറിയാൻ സഹായിക്കും.
ബാലൻസ്
നിങ്ങളുടെ ബാലൻസ് 00:00 UTC-ക്ക് റീസെറ്റ് ആകുന്ന ഇന്നത്തെ പ്ലാൻ അലവൻസും, അതിന് ശേഷം നിങ്ങൾ വാങ്ങിയ ക്രെഡിറ്റുമാണ്. ചാറ്റും API-യും ഒരേ ബാലൻസിൽ നിന്നാണ് എടുക്കുന്നത്.
ഓരോ റിക്വസ്റ്റും ആദ്യം അതിന്റെ ഔട്ട്പുട്ട് പരിധി മാറ്റിവയ്ക്കുന്നു: max_tokens, അല്ലെങ്കിൽ /v1/responses-ൽ max_output_tokens, രണ്ടും അയച്ചില്ലെങ്കിൽ 4,096. മറുപടി പൂർത്തിയാകുമ്പോൾ, മാറ്റിവച്ച തുകയ്ക്ക് പകരം റിക്വസ്റ്റ് ഉപയോഗിച്ചത് കണക്കാക്കും. ആ തുക ബാക്കി ബാലൻസിൽ ഒതുങ്ങുന്നില്ലെങ്കിൽ, മോഡൽ തുടങ്ങുന്നതിന് മുമ്പ് റിക്വസ്റ്റ് Quota exceeded നൽകും.
ഒരേ സമയം പ്രവർത്തിക്കുന്ന റിക്വസ്റ്റുകൾ ഓരോന്നും സ്വന്തം തുക മാറ്റിവയ്ക്കുന്നു. അതിനാൽ ഉയർന്ന max_tokens ഉള്ള നിരവധി സമാന്തര റിക്വസ്റ്റുകൾ, ഓരോ മറുപടിയും ചെറുതാണെങ്കിലും, കുറച്ചുനേരത്തേക്ക് ബാലൻസ് തീർത്തേക്കാം. കുറഞ്ഞ max_tokens കുറച്ച് മാറ്റിവയ്ക്കുന്നു.
ഫ്ലഡ് പ്രൊട്ടക്ഷൻ
ഫ്ലഡ് പ്രൊട്ടക്ഷൻ ഓരോ അക്കൗണ്ടിനും മിനിറ്റിൽ 120 റിക്വസ്റ്റുകൾ അനുവദിക്കുന്നു. ഇത് കീ അല്ല, അക്കൗണ്ടിനെയാണ് എണ്ണുന്നത്, /v1/chat/completions, /v1/responses, /v1/messages എന്നിവ ചേർത്ത്. നിങ്ങളുടെ ആദ്യ റിക്വസ്റ്റോടെ മിനിറ്റ് തുടങ്ങുന്നു.
ആ മിനിറ്റിലെ 121-ാമത്തെ റിക്വസ്റ്റ് Too many requests. Retry in <n>s. നൽകുകയും ചെലവ് ഈടാക്കാതിരിക്കുകയും ചെയ്യും. നിരസിച്ച റിക്വസ്റ്റുകളും എണ്ണപ്പെടും, അതിനാൽ കാത്തിരിക്കാതെ വീണ്ടും അയയ്ക്കുന്ന ക്ലയന്റ് മിനിറ്റ് തീരുംവരെ നിരസിക്കപ്പെട്ടുകൊണ്ടിരിക്കും. സന്ദേശത്തിലെ <n> സെക്കൻഡ് കാത്തിരിക്കുക.
സമാന്തരമായി അയയ്ക്കുന്ന റിക്വസ്റ്റുകൾ സമാന്തരമായതിന്റെ പേരിൽ നിരസിക്കില്ല. അവ ക്യൂവിൽ കാത്തിരിക്കുകയും ക്രമത്തിൽ മറുപടി ലഭിക്കുകയും ചെയ്യും.
GET /v1/models-ഉം ടോക്കൺ എണ്ണൽ എൻഡ്പോയിന്റുകളും എണ്ണപ്പെടുന്നില്ല.
പരിധികളെയും ബാലൻസിനെയും കുറിച്ച് കൂടുതൽ, നിങ്ങളുടെ ബാലൻസും ഉപയോഗവും എവിടെ കാണാം എന്നതും: പരിധികളും ബാലൻസും കീകളും ഉപയോഗവും
എന്ത് വീണ്ടും ശ്രമിക്കണം
അതേ റിക്വസ്റ്റ് വിജയിക്കാൻ സാധ്യതയുള്ളപ്പോൾ മാത്രം വീണ്ടും അയയ്ക്കുക. OpenAI, Anthropic SDK-കൾ 429, 5xx മറുപടികൾ സ്വയം രണ്ടുതവണ വീണ്ടും ശ്രമിക്കുന്നുണ്ട്; അത് മാറ്റാൻ max_retries (JavaScript-ൽ maxRetries) സജ്ജമാക്കുക.
| പിശക് | വീണ്ടും അയയ്ക്കണോ? | എങ്ങനെ |
|---|---|---|
400, 404, 405, 413, 415, 422 | അല്ല. ആദ്യം റിക്വസ്റ്റ് തിരുത്തുക. | തെറ്റായ ഫീൽഡ്, മോഡൽ അല്ലെങ്കിൽ ഇൻപുട്ട് സന്ദേശം പേരുപറയും. |
401 | അല്ല. സാധുവായ കീ ഉപയോഗിക്കുക. | Keys & usage പേജിൽ കീ ഉണ്ടാക്കുകയോ മാറ്റുകയോ ചെയ്യുക. |
429 Too many requests | അതെ, കാത്തിരിപ്പിന് ശേഷം. | സന്ദേശത്തിലെ സെക്കൻഡുകൾ കാത്തിരിക്കുക, തുടർന്ന് അതേ റിക്വസ്റ്റ് അയയ്ക്കുക. |
429 Quota exceeded | ഇപ്പോഴത്തെ രൂപത്തിൽ അല്ല. | max_tokens കുറയ്ക്കുക, 00:00 UTC-ക്കുള്ള ദൈനംദിന റീസെറ്റിനായി കാത്തിരിക്കുക, അല്ലെങ്കിൽ ക്രെഡിറ്റ് ചേർക്കുക. |
429 Shannon Coder call quota reached | അതെ, അടുത്ത വിൻഡോയിൽ. | വിൻഡോകൾ 00:00 UTC മുതൽ ഓരോ 4 മണിക്കൂറിലും തുടങ്ങും. മറ്റൊരു മോഡൽ ഉടൻ മറുപടി നൽകും. |
429 … temporarily busy | അതെ. | കുറച്ച് സെക്കൻഡ് കാത്തിരിക്കുക, തുടർന്നുള്ള ഓരോ ശ്രമത്തിലും കൂടുതൽ നേരം. |
500, 502, 503 | അതെ. | 1 സെക്കൻഡ് കാത്തിരിക്കുക, പിന്നെ 2, 4, 8. കുറച്ച് ശ്രമങ്ങൾക്ക് ശേഷം നിർത്തി റിക്വസ്റ്റ് ഐഡി റിപ്പോർട്ട് ചെയ്യുക. |
504 | അതെ. | stream true ആക്കി അയയ്ക്കുക: സമയപരിധി സ്ട്രീം ചെയ്യാത്ത മറുപടികൾക്കാണ് ബാധകം. |
ഈ പട്ടിക പിന്തുടരുന്ന ഒരു റീട്രൈ ലൂപ്പ്:
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) import OpenAI from "openai";
// maxRetries: 0 — this loop does the retrying, the SDK does not add its own.
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1", maxRetries: 0 });
const sleep = (seconds) => new Promise((resolve) => setTimeout(resolve, seconds * 1000));
async function createWithRetry(request, attempts = 5) {
for (let attempt = 0; attempt < attempts; attempt++) {
try {
return await client.chat.completions.create(request);
} catch (error) {
const text = String(error.message);
const flood = text.match(/Retry in (\d+)s/);
if (error.status === 429 && flood) {
await sleep(Number(flood[1])); // flood protection: wait out the minute
} else if (error.status === 429 && text.includes("temporarily busy")) {
await sleep(2 ** attempt);
} else if (error.status >= 500 || error instanceof OpenAI.APIConnectionError) {
await sleep(2 ** attempt); // 1, 2, 4, 8 seconds
} else {
throw error; // wrong request, wrong key or balance
}
}
}
throw new Error("the request failed after all attempts");
}
const response = await createWithRetry({
model: "shannon-3",
messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content); സ്ട്രീമിനുള്ളിലെ പിശകുകൾ
സ്ട്രീമിന് ആദ്യ ബൈറ്റ് മുതൽ സ്റ്റാറ്റസ് 200 ആണ്. അതിന് ശേഷമുള്ള പരാജയം സ്ട്രീമിനുള്ളിൽ ഒരു ഇവന്റായി വരും: /v1/chat/completions-ൽ error അംഗമുള്ള ചങ്ക്, /v1/messages-ൽ error ഇവന്റ്, /v1/responses-ൽ response.failed അല്ലെങ്കിൽ error ഇവന്റ്. സ്ട്രീമിന്റെ അവസാന ഇവന്റുകൾ അപ്പോഴും പിന്നാലെ വരും. അത്തരം മറുപടിയെ പരാജയമായി കണക്കാക്കി, 5xx സ്റ്റാറ്റസിലെന്നപോലെ റിക്വസ്റ്റ് വീണ്ടും അയയ്ക്കുക.
മോഡലിന്റെ കോൺടെക്സ്റ്റ് വിൻഡോയേക്കാൾ ദൈർഘ്യമേറിയ സംഭാഷണം ഈ രീതിയിൽ റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നു, ടൈപ്പ് invalid_request_error, കോഡ് context_length_exceeded ഓടെ. വീണ്ടും അയയ്ക്കുന്നതിന് മുമ്പ് സംഭാഷണം ചുരുക്കുക.
കൃത്യമായ ഫ്രെയിമുകൾ സ്ട്രീമിംഗിനൊപ്പം വിവരിച്ചിട്ടുണ്ട്. സ്റ്റ്രീമിംഗ്
റിക്വസ്റ്റ് ഐഡികൾ
പിശകുകൾ ഉൾപ്പെടെ എല്ലാ മറുപടിയിലും x-request-id ഹെഡർ ഉണ്ട്. നിങ്ങളുടെ സ്വന്തം x-request-id ഹെഡറിൽ അയച്ച മൂല്യമാണിത്, ഒന്നും അയച്ചില്ലെങ്കിൽ 12 ഹെക്സാഡെസിമൽ അക്ഷരങ്ങൾ. ഇത് ലോഗ് ചെയ്യുക, ഒരു റിക്വസ്റ്റിനെക്കുറിച്ച് സഹായം ചോദിക്കുമ്പോൾ ഉദ്ധരിക്കുക.