Responses API
NovaPOST /v1/responses prenas instrukciojn kaj liston de enigaj eroj kaj redonas objekton de respondo farita el eligaj eroj, en la formato OpenAI Responses. Uzu ĝin kun la responses API de la SDK de OpenAI kaj kun iloj konstruitaj sur ĝi, kiel Codex CLI. La endpoint ne konservas staton: sendu la tutan konversacion kun ĉiu peto.
POST https://api.shannon-ai.com/v1/responses
La plej malgranda peto estas model-id kaj teksto. La respondo ne estas fluata, krom se vi petas tion.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1",
)
response = client.responses.create(
model="shannon-3",
input="Say hello in one sentence.",
)
print(response.output_text) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.responses.create({
model: "shannon-3",
input: "Say hello in one sentence.",
});
console.log(response.output_text); curl https://api.shannon-ai.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"input": "Say hello in one sentence."
}' La respondo estas objekto de respondo. Ĝia output enhavas la rezonadon, kiam la modelo rezonis, kaj la mesaĝon:
{
"id": "resp_5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
"object": "response",
"created_at": 1791625200,
"model": "shannon-3",
"status": "completed",
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"parallel_tool_calls": true,
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"output": [
{
"id": "rs_8a2e6c1f4b7d4e03b9c5a1d70f3e2b64",
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "The user wants a greeting in one sentence. Keep it short and friendly."
}
]
},
{
"id": "msg_1c7b9e3a5d2f4a86b0e4c8d19a6f7e25",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Hello, it is good to meet you.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 1184,
"output_tokens": 46,
"total_tokens": 1230
}
} Kampoj de peto
model kaj input estas tio, kion peto bezonas. La kolumno Applied by nomas la modelojn, ĉe kiuj kampo ŝanĝas la respondon. La gastigitaj malfermpezaj modeloj estas la dek du id de la modellisto; la familio Shannon 3 estas shannon-3, shannon-3-pro, shannon-3.1 kaj shannon-3.1-pro. Modeloj kaj prezoj
| Kampo | Tipo | Defaŭlto | Priskribo | Aplikata de |
|---|---|---|---|---|
model | string | Deviga. Id el la modellisto. La kongruigo ne distingas majusklojn. Mankanta aŭ nepublikigita id redonas 400 unknown model. | Ĉiuj modeloj | |
input | string | array | Ĉeno, kiu estas legata kiel unu mesaĝo de uzanto, aŭ tabelo de enigaj eroj. Vidu Enigaj eroj sube. | Ĉiuj modeloj | |
instructions | string | Instrukcioj por la modelo, la sistema prompt de ĉi tiu formato. | Gastigitaj malfermpezaj modeloj, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
stream | boolean | false | true sendas la respondon kiel server-sent events. Vidu Streaming sube. | Ĉiuj modeloj |
max_output_tokens | integer | 4096 | Supra limo de la respondo, en tokenoj. Valoro ekster 1 ĝis 65,536 estas movita en tiun intervalon. Ĝi estas ankaŭ la kvanto rezervita el via saldo dum la peto funkcias. Vidu Eliga limo sube. | Gastigitaj malfermpezaj modeloj, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | number | Temperaturo de specimenado. Ĉe la gastigitaj malfermpezaj modeloj la valoroj estas tenataj inter 0 kaj 2. | Gastigitaj malfermpezaj modeloj; shannon-1.6-*, shannon-2-* kaj shannon-coder-1 ĉe respondoj, kiuj ne estas fluataj | |
top_p | number | Nukleo-specimenado. La valoroj estas tenataj inter 0 kaj 1. | Gastigitaj malfermpezaj modeloj | |
tools | array | La funkcioj, kiujn la modelo rajtas voki, en la plata formo de ĉi tiu formato: {"type": "function", "name", "description", "parameters"}. Vidu Iloj sube. | Ĉiuj modeloj | |
tool_choice | string | object | auto | "auto" lasas la modelon decidi. "required" devigas ĝin voki ilon. {"type": "function", "name": "…"} devigas ĝin voki tiun ilon. | Gastigitaj malfermpezaj modeloj |
reasoning | object | {"effort": "…"} kun off, low, medium aŭ high. Ĉiu alia valoro redonas 400. | Gastigitaj malfermpezaj modeloj | |
text | object | {"format": {…}} petas JSON-respondon. Vidu Strukturita eligo sube. | Ĉiuj niveloj de Shannon; gastigitaj malfermpezaj modeloj laŭ la listo por id |
previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user kaj prompt_cache_key estas akceptataj, por ke ekzistanta klienta kodo funkciu senŝanĝe. Ili ne ŝanĝas la respondon. Ĉar neniu konversacio estas konservata, posta peto portas la pli fruajn vicojn en input.
Enigaj eroj
Enigan eron estas aŭ mesaĝo, kun role kaj content, aŭ tipita ero, kiu portas vokon de ilo aŭ ĝian rezulton. content estas ĉeno aŭ tabelo de partoj.
| Ero | Priskribo | Aplikata de |
|---|---|---|
{"role": "user", "content": …} | Tio, kion vi demandas. content estas ĉeno, aŭ partoj input_text kaj input_image. | Ĉiuj modeloj |
{"role": "assistant", "content": …} | Pli frua respondo de la modelo. content estas ĉeno, aŭ partoj output_text. | Ĉiuj modeloj |
{"role": "system", "content": …}{"role": "developer", "content": …} | Instrukcioj ene de la konversacio. | Gastigitaj malfermpezaj modeloj |
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} | Voko de ilo, kiun la modelo faris en pli frua respondo. arguments estas JSON-ĉeno. | Ĉiuj modeloj |
{"type": "function_call_output", "call_id": "…", "output": "…"} | La rezulto de tiu voko. call_id estas la id de la voko kaj output la rezulto kiel ĉeno. | Ĉiuj modeloj |
Metu instrukciojn en la kampon instructions. Kun id de la familio Shannon 3, metu instrukciojn, kiuj devas validi, en la mesaĝon user.
La eroj de output de respondo povas reiri en input kiel ili estas: eroj message kaj function_call estas legataj, eroj reasoning estas preterlasataj.
Partoj de enhavo
| Parto | Priskribo | Disponebla ĉe |
|---|---|---|
{"type": "input_text", "text": "…"} | Teksto de mesaĝo de uzanto. | Ĉiuj modeloj |
{"type": "output_text", "text": "…"} | Teksto de mesaĝo de la asistanto. | Ĉiuj modeloj |
{"type": "input_image", "image_url": "…"} | Bildo, kiel URL data: kun enhavo base64 aŭ kiel URL http(s). | Familio Shannon 3, shannon-1.6-lite, shannon-1.6-pro, kaj la gastigitaj malfermpezaj modeloj, kiuj listigas bildan enigon |
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} | Dokumento (PDF, Word, PowerPoint aŭ Excel): file_data enhavas URL data:, aŭ file_url URL http(s). | Familio Shannon 3 |
Ĉe la niveloj de Shannon bildoj kaj dosieroj estas legataj el la lasta ero user de input. Grandoj kaj limoj havas propran paĝon. Bildoj kaj dosieroj
Peto kun instrukcioj kaj opcioj
Ĉi tiu peto sendas instrukciojn, konversacion kiel enigajn erojn, eligan limon, temperaturon kaj raciuman penon. Ĝi uzas gastigitan malfermpezan modelon, kiu aplikas ĉiujn el ili.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1",
)
response = client.responses.create(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
instructions="You are a physics teacher. Answer in two sentences.",
input=[
{"role": "user", "content": "Why is the sky blue?"},
{"role": "assistant", "content": "Air scatters blue light more than red light."},
{"role": "user", "content": "And why are sunsets red?"},
],
max_output_tokens=512,
temperature=0.3,
reasoning={"effort": "low"},
)
for item in response.output:
if item.type == "reasoning":
print("reasoning:", item.summary[0].text)
elif item.type == "message":
print("answer:", item.content[0].text)
print(response.usage) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.responses.create({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
instructions: "You are a physics teacher. Answer in two sentences.",
input: [
{ role: "user", content: "Why is the sky blue?" },
{ role: "assistant", content: "Air scatters blue light more than red light." },
{ role: "user", content: "And why are sunsets red?" },
],
max_output_tokens: 512,
temperature: 0.3,
reasoning: { effort: "low" },
});
for (const item of response.output) {
if (item.type === "reasoning") console.log("reasoning:", item.summary[0].text);
if (item.type === "message") console.log("answer:", item.content[0].text);
}
console.log(response.usage); curl https://api.shannon-ai.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"instructions": "You are a physics teacher. Answer in two sentences.",
"input": [
{"role": "user", "content": "Why is the sky blue?"},
{"role": "assistant", "content": "Air scatters blue light more than red light."},
{"role": "user", "content": "And why are sunsets red?"}
],
"max_output_tokens": 512,
"temperature": 0.3,
"reasoning": {"effort": "low"}
}' La respondo de gastigita malfermpeza modelo havas id, object, model, created_at, status, output kaj usage. Ĝia usage aldonas la tokenojn legitajn el la kaŝmemoro kaj la tokenojn elspezitajn por rezonado:
{
"usage": {
"input_tokens": 58,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 67,
"output_tokens_details": {
"reasoning_tokens": 19
},
"total_tokens": 125
}
} La objekto de respondo
id, object, status, output kaj usage ĉeestas en ĉiu respondo. Bazu vian kodon sur ili.
| Kampo | Tipo | Priskribo | Sendita de |
|---|---|---|---|
id | string | resp_ sekvata de 32 deksesumaj signoj. | Ĉiuj modeloj |
object | string | Ĉiam response. | Ĉiuj modeloj |
status | string | completed. En fluo ĝi estas unue in_progress, kaj failed en evento response.failed. | Ĉiuj modeloj |
output | array | La eligaj eroj en la ordo, en kiu la modelo produktis ilin: reasoning, message, function_call. | Ĉiuj modeloj |
usage | object | input_tokens, output_tokens kaj total_tokens. | Ĉiuj modeloj |
usage.input_tokens_details | object | cached_tokens: la enigaj tokenoj legitaj el la kaŝmemoro de prompt. | Gastigitaj malfermpezaj modeloj |
usage.output_tokens_details | object | reasoning_tokens: la eligaj tokenoj elspezitaj por rezonado. | Gastigitaj malfermpezaj modeloj |
model | string | La kanona id de la modelo, kiu respondis. | Familio Shannon 3, gastigitaj malfermpezaj modeloj |
created_at | integer | Tempo de la respondo, en Unix-sekundoj. | Familio Shannon 3, gastigitaj malfermpezaj modeloj |
instructions, tools, temperature, … | instructions, tools kaj temperature ripetas la peton. error kaj incomplete_details estas null, metadata estas {}, parallel_tool_calls estas true, tool_choice estas auto kaj top_p estas null. | Familio Shannon 3 |
Eligaj eroj
| Ero | Priskribo |
|---|---|
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} | La rezonado de la modelo kiel unu parto summary_text. Ĉeestas nur kiam la modelo rezonis. |
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} | La respondo: unu parto output_text kun la teksto. |
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} | Voko de ilo. arguments estas JSON-ĉeno. Resendu la rezulton kun la sama call_id. |
La SDK de OpenAI kunigas por vi la tekston de la mesaĝo en response.output_text.
Streaming
Agordu stream al true por server-sent events. Ĉiu kadro havas linion event: kun la nomo de la evento kaj linion data: kun JSON-objekto; la objekto ripetas la nomon en type. Kongruigu deltojn kun ilia ero per output_index.
Kun la SDK de OpenAI, legu la eventojn laŭ ilia type:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1",
)
stream = client.responses.create(
model="shannon-3",
input="Explain server-sent events in three sentences.",
stream=True,
)
for event in stream:
kind = getattr(event, "type", "error") # an event without a type is an error event
if kind == "response.reasoning_summary_text.delta":
pass # a piece of reasoning: event.delta
elif kind == "response.output_text.delta":
print(event.delta, end="", flush=True)
elif kind == "response.output_item.done" and event.item.type == "function_call":
print("\ntool call:", event.item.name, event.item.arguments)
elif kind == "response.completed":
print("\n", event.response.usage)
elif kind in ("response.failed", "error"):
raise RuntimeError("the stream failed, send the request again") import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const stream = await client.responses.create({
model: "shannon-3",
input: "Explain server-sent events in three sentences.",
stream: true,
});
for await (const event of stream) {
if (event.type === "response.reasoning_summary_text.delta") {
// a piece of reasoning: event.delta
} else if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
} else if (event.type === "response.output_item.done" && event.item.type === "function_call") {
console.log("\ntool call:", event.item.name, event.item.arguments);
} else if (event.type === "response.completed") {
console.log("\n", event.response.usage);
} else if (event.type === "response.failed" || event.type === "error") {
throw new Error("the stream failed, send the request again");
}
} curl -N https://api.shannon-ai.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"input": "Explain server-sent events in three sentences.",
"stream": true
}' La eventoj alvenas en ĉi tiu ordo. La grupoj por rezonado, la mesaĝo kaj vokoj de iloj aperas nur kiam la respondo havas ilin.
| Evento | Utila ŝarĝo | Kiam |
|---|---|---|
response.created | response | Ĉiam unua. response.status estas in_progress kaj response.output estas malplena. |
response.in_progress | response | Ĉiam dua, kun la sama objekto. |
response.output_item.added | output_index, item | La rezonado komenciĝas: ero reasoning kun malplena summary. |
response.reasoning_summary_text.delta | output_index, summary_index, delta | Peceto de la rezonado. |
response.reasoning_summary_text.done | output_index, summary_index, text | La rezonado estas kompleta: ĝia tuta text. |
response.output_item.done | output_index, item | La finita ero reasoning. |
response.output_item.added | output_index, item | La respondo komenciĝas: ero message kun stato in_progress kaj sen enhavo. |
response.content_part.added | output_index, content_index, part | Malplena parto output_text malfermiĝas. |
response.output_text.delta | output_index, content_index, delta | Peceto de la respondo. |
response.output_text.done | output_index, content_index, text | La respondo estas kompleta: ĝia tuta text. |
response.content_part.done | output_index, content_index, part | La finita parto output_text. |
response.output_item.done | output_index, item | La finita ero message, kun stato completed. |
response.output_item.added | output_index, item | Voko de ilo komenciĝas: ero function_call kun call_id, name kaj malplenaj arguments. |
response.function_call_arguments.delta | output_index, delta | La argumentoj de la voko, kompletaj en unu delta. |
response.function_call_arguments.done | output_index, arguments | La samaj argumentoj, kiel arguments. |
response.output_item.done | output_index, item | La finita ero function_call. |
response.completed | response | Ĉiam lasta ĉe sukceso: la tuta objekto de respondo kun output kaj usage. |
event: response.created
data: {"type":"response.created","response":{"id":"resp_5f0c…","object":"response","status":"in_progress","output":[], …}}
event: response.in_progress
data: {"type":"response.in_progress","response":{"id":"resp_5f0c…","object":"response","status":"in_progress","output":[], …}}
event: response.output_item.added
data: {"type":"response.output_item.added","output_index":0,"item":{"id":"msg_1c7b…","type":"message","role":"assistant","status":"in_progress","content":[]}}
event: response.content_part.added
data: {"type":"response.content_part.added","output_index":0,"content_index":0,"part":{"type":"output_text","text":""}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","output_index":0,"content_index":0,"delta":"Server-sent"}
event: response.output_text.delta
data: {"type":"response.output_text.delta","output_index":0,"content_index":0,"delta":" events let a server push text over one HTTP reply."}
event: response.output_text.done
data: {"type":"response.output_text.done","output_index":0,"content_index":0,"text":"Server-sent events let a server push text over one HTTP reply."}
event: response.content_part.done
data: {"type":"response.content_part.done","output_index":0,"content_index":0,"part":{"type":"output_text","text":"Server-sent events let a server push text over one HTTP reply."}}
event: response.output_item.done
data: {"type":"response.output_item.done","output_index":0,"item":{"id":"msg_1c7b…","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"Server-sent events let a server push text over one HTTP reply.","annotations":[]}]}}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_5f0c…","object":"response","status":"completed","output":[…],"usage":{"input_tokens":1190,"output_tokens":18,"total_tokens":1208}, …}} Fluo, kiu malsukcesas
Ĉe la niveloj de Shannon malsukcesa respondo finiĝas per response.failed anstataŭ response.completed. Ĝia response.status estas failed kaj response.error enhavas code, rate_limit_exceeded aŭ server_error, kaj message.
Ĉe la gastigitaj malfermpezaj modeloj malsukceso estas evento error kun code api_error kaj message. response.completed tamen sekvas ĝin.
Traktu fluon kiel malsukcesan kiam ĝi enhavas eventon response.failed aŭ error, kaj resendu la peton.
Iloj
Ilo estas funkcio, kiun via kodo plenumas. Priskribu ĝin en tools; kiam la modelo volas ĝin, la respondo enhavas eron function_call anstataŭ la mesaĝo aŭ apud ĝi.
Difino de ilo en tools:
[
{
"type": "function",
"name": "get_weather",
"description": "Current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] La output de respondo, kiu vokas ĝin:
[
{
"id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"type": "function_call",
"name": "get_weather",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"arguments": "{\"city\":\"Paris\"}"
}
] Plenumu la funkcion, poste resendu la peton kun la voko kaj ĝia rezulto aldonitaj al input:
[
{
"role": "user",
"content": "What is the weather in Paris?"
},
{
"type": "function_call",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"name": "get_weather",
"arguments": "{\"city\":\"Paris\"}"
},
{
"type": "function_call_output",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"output": "{\"temperature_c\": 18, \"sky\": \"cloudy\"}"
}
] Nur iloj de tipo function estas legataj. Ĉe shannon-1.6-*, shannon-2-* kaj shannon-coder-1 la skemo parameters estas reduktita al la komunaj ŝlosilvortoj de JSON Schema: oneOf estas legata kiel anyOf, kaj ŝlosilvortoj kiel $ref, additionalProperties, const, default kaj title ne estas transdonataj al la modelo.
La valoroj de tool_choice required kaj nomita funkcio estas aplikataj de la gastigitaj malfermpezaj modeloj.
La ciklo de iloj estas priskribita plene en sia propra paĝo. Funkci-alvokoj
Strukturita eligo
Ĉi tiu formato literumas strukturitan eligon kiel text.format. La skemo troviĝas rekte en format, apud name kaj strict, ne sub membro json_schema kiel ĉe Chat Completions.
{"type": "json_object"}petas ajnan JSON-objekton.{"type": "json_schema", "name", "schema", "strict"}petas JSON, kiu sekvas vian skemon.strictestastruekiam vi lasas ĝin ekster.
{
"model": "shannon-1.6-lite",
"input": "Extract the city and the date: 'The conference opens in Lisbon on 12 May 2027.'",
"text": {
"format": {
"type": "json_schema",
"name": "event",
"strict": true,
"schema": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"date": {
"type": "string",
"description": "ISO 8601 date"
}
},
"required": [
"city",
"date"
]
}
}
}
} La JSON alvenas kiel teksto en la parto output_text de la mesaĝo; analizu ĝin mem. Gastigita malfermpeza modelo sen strukturita eligo redonas 400.
{"city": "Lisbon", "date": "2027-05-12"} Kiu modelo akceptas kiun formon, estas listigita en sia propra paĝo. Strukturitaj eligoj
Rezonado
Modelo, kiu rezonas, redonas sian rezonadon kiel eligan eron de tipo reasoning, antaŭ la mesaĝo. En fluo ĝi alvenas kiel eventoj response.reasoning_summary_text.delta.
La gastigitaj malfermpezaj modeloj aplikas reasoning.effort: off, low, medium aŭ high, kun high kiam vi sendas nenion. off redonas neniun eron de rezonado. Sendu ĝin kiel objekton; nuda ĉeno ne estas legata ĉe ĉi tiu endpoint.
La penoj estas priskribitaj en sia propra paĝo. Peno de reasoning
Eliga limo
max_output_tokens estas 4,096 kiam vi ne sendas ĝin. Ĝi estas la nombro da tokenoj rezervitaj el via saldo kiam la peto komenciĝas; kiam la respondo estas kompleta, tiu kvanto estas anstataŭata per tio, kion la peto uzis. Valoro, kiu ne eniras en vian restantan saldon, redonas 429 Quota exceeded.
Ĝi limigas la longecon de la respondo ĉe shannon-1.6-*, shannon-2-* kaj shannon-coder-1, kaj la longecon de la teksto de la respondo ĉe la gastigitaj malfermpezaj modeloj.
Ĉe ĉi tiu endpoint shannon-coder-1 estas kalkulata en tokenoj el via saldo, kiel ĉiu alia modelo.
Korpo de peto povas esti ĝis 32 MiB. Limoj kaj saldo
Eraroj
Eraroj uzas la erarkorpon de OpenAI: objekton error kun type kaj message; kelkaj portas ankaŭ code kaj param kun la valoro null. La tabelo listigas kion ĉi tiu endpoint plej ofte redonas. La plena listo, kun tio, kion reprovi, havas propran paĝon. Erarotraktado
| Stato | Tipo | Mesaĝo | Kiam |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Neniu API-ŝlosilo estis sendita, aŭ la ŝlosilo estas nekonata aŭ revokita. |
400 | invalid_request_error | unknown model: <id> | model mankas aŭ ne estas publikigita id. |
400 | invalid_request_error | No user message provided. | Niveloj de Shannon: input enhavas neniun tekston de uzanto. |
400 | invalid_request_error | <id> does not accept image input | Bildo estis sendita al gastigita malfermpeza modelo sen bilda enigo. |
400 | invalid_request_error | <id> does not accept response_format | text.format estis sendita al gastigita malfermpeza modelo sen strukturita eligo. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning.effort havas valoron ekster la listo. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | La korpo estas valida JSON, sed kampo havas malĝustan tipon. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_output_tokens estas pli granda ol tio, kio restas de via saldo. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: pli ol 120 petoj en unu minuto en via konto. |
500 | api_error | The model backend failed to answer. Please retry. | La modelo ne produktis respondon. Resendu la peton. |
502 | api_error | The model backend failed to answer. Please retry. | La sama, ĉe la gastigitaj malfermpezaj modeloj. |
504 | api_error | upstream timed out | Gastigita malfermpeza modelo bezonis pli longe ol la tempolimo de respondo, kiu ne estas fluata. Sendu ĝin kun stream agordita al true. |