API Responses
baruPOST /v1/responses menerima arahan dan senarai item input serta memulangkan objek respons yang terdiri daripada item output, dalam format OpenAI Responses. Gunakannya dengan API responses SDK OpenAI dan dengan alat yang dibina di atasnya, seperti Codex CLI. Endpoint ini tidak menyimpan keadaan: hantar seluruh perbualan bersama setiap permintaan.
POST https://api.shannon-ai.com/v1/responses
Permintaan terkecil ialah id model dan satu teks. Balasan tidak di-stream melainkan anda memintanya.
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."
}' Balasan ialah objek respons. outputnya memegang penaakulan, apabila model bernalar, dan mesej:
{
"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
}
} Medan permintaan
model dan input ialah apa yang diperlukan oleh permintaan. Lajur Dikenakan oleh menamakan model yang medannya mengubah balasan. Model open-weight yang dihoskan ialah dua belas id dalam senarai model; keluarga Shannon 3 ialah shannon-3, shannon-3-pro, shannon-3.1 dan shannon-3.1-pro. Model & harga
| Medan | Jenis | Lalai | Penerangan | Dikenakan oleh |
|---|---|---|---|---|
model | string | Wajib. Id daripada senarai model. Padanan tidak sensitif huruf besar-kecil. Id yang tiada atau tidak diterbitkan memulangkan 400 unknown model. | Semua model | |
input | string | array | Rentetan, yang dibaca sebagai satu mesej pengguna, atau tatasusunan item input. Lihat Item input di bawah. | Semua model | |
instructions | string | Arahan untuk model, system prompt bagi format ini. | Model open-weight yang dihoskan, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
stream | boolean | false | true menghantar balasan sebagai server-sent events. Lihat Streaming di bawah. | Semua model |
max_output_tokens | integer | 4096 | Had atas balasan, dalam token. Nilai di luar 1 hingga 65,536 dialihkan ke dalam julat itu. Ia juga jumlah yang diketepikan daripada baki anda semasa permintaan berjalan. Lihat Had output di bawah. | Model open-weight yang dihoskan, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | number | Suhu pensampelan. Pada model open-weight yang dihoskan, nilai dikekalkan antara 0 dan 2. | Model open-weight yang dihoskan; shannon-1.6-*, shannon-2-* dan shannon-coder-1 pada balasan yang tidak di-stream | |
top_p | number | Pensampelan nukleus. Nilai dikekalkan antara 0 dan 1. | Model open-weight yang dihoskan | |
tools | array | Fungsi yang boleh dipanggil oleh model, dalam bentuk rata format ini: {"type": "function", "name", "description", "parameters"}. Lihat Alat di bawah. | Semua model | |
tool_choice | string | object | auto | "auto" membiarkan model memutuskan. "required" menjadikannya memanggil alat. {"type": "function", "name": "…"} menjadikannya memanggil alat itu. | Model open-weight yang dihoskan |
reasoning | object | {"effort": "…"} dengan off, low, medium atau high. Sebarang nilai lain memulangkan 400. | Model open-weight yang dihoskan | |
text | object | {"format": {…}} meminta jawapan JSON. Lihat Output berstruktur di bawah. | Semua peringkat Shannon; model open-weight yang dihoskan seperti disenaraikan bagi setiap id |
previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user dan prompt_cache_key diterima supaya kod klien sedia ada berjalan tanpa perubahan. Ia tidak mengubah balasan. Oleh sebab tiada perbualan disimpan, permintaan susulan membawa giliran terdahulu dalam input.
Item input
Item input sama ada mesej, dengan role dan content, atau item bertaip yang membawa panggilan alat atau keputusannya. content ialah rentetan atau tatasusunan bahagian.
| Item | Penerangan | Dikenakan oleh |
|---|---|---|
{"role": "user", "content": …} | Apa yang anda tanya. content ialah rentetan, atau bahagian input_text dan input_image. | Semua model |
{"role": "assistant", "content": …} | Balasan model yang terdahulu. content ialah rentetan, atau bahagian output_text. | Semua model |
{"role": "system", "content": …}{"role": "developer", "content": …} | Arahan di dalam perbualan. | Model open-weight yang dihoskan |
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} | Panggilan alat yang dibuat model dalam balasan terdahulu. arguments ialah rentetan JSON. | Semua model |
{"type": "function_call_output", "call_id": "…", "output": "…"} | Keputusan panggilan itu. call_id ialah id panggilan dan output ialah keputusan sebagai rentetan. | Semua model |
Letakkan arahan dalam medan instructions. Dengan id keluarga Shannon 3, letakkan arahan yang mesti dipatuhi dalam mesej user.
Item output balasan boleh dihantar kembali ke dalam input seadanya: item message dan function_call dibaca, item reasoning dilangkau.
Bahagian kandungan
| Bahagian | Penerangan | Tersedia pada |
|---|---|---|
{"type": "input_text", "text": "…"} | Teks mesej pengguna. | Semua model |
{"type": "output_text", "text": "…"} | Teks mesej assistant. | Semua model |
{"type": "input_image", "image_url": "…"} | Imej, sebagai URL data: dengan kandungan base64 atau sebagai URL http(s). | Keluarga Shannon 3, shannon-1.6-lite, shannon-1.6-pro, dan model open-weight yang dihoskan yang menyenaraikan input imej |
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} | Dokumen (PDF, Word, PowerPoint atau Excel): file_data memegang URL data:, atau file_url URL http(s). | Keluarga Shannon 3 |
Pada peringkat Shannon, imej dan fail dibaca daripada item user yang terakhir dalam input. Saiz dan had mempunyai halamannya sendiri. Imej dan fail
Permintaan dengan arahan dan pilihan
Permintaan ini menghantar arahan, perbualan sebagai item input, had output, suhu dan usaha penaakulan. Ia menggunakan model open-weight yang dihoskan, yang menggunakan kesemuanya.
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"}
}' Balasan model open-weight yang dihoskan mempunyai id, object, model, created_at, status, output dan usage. usagenya menambah token yang dibaca daripada cache dan token yang digunakan untuk penaakulan:
{
"usage": {
"input_tokens": 58,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 67,
"output_tokens_details": {
"reasoning_tokens": 19
},
"total_tokens": 125
}
} Objek respons
id, object, status, output dan usage terdapat pada setiap balasan. Bina kod anda berdasarkan medan itu.
| Medan | Jenis | Penerangan | Dihantar oleh |
|---|---|---|---|
id | string | resp_ diikuti 32 aksara heksadesimal. | Semua model |
object | string | Sentiasa response. | Semua model |
status | string | completed. Dalam stream, ia mula-mula in_progress, dan failed dalam peristiwa response.failed. | Semua model |
output | array | Item output mengikut urutan model menghasilkannya: reasoning, message, function_call. | Semua model |
usage | object | input_tokens, output_tokens dan total_tokens. | Semua model |
usage.input_tokens_details | object | cached_tokens: token input yang dibaca daripada cache prompt. | Model open-weight yang dihoskan |
usage.output_tokens_details | object | reasoning_tokens: token output yang digunakan untuk penaakulan. | Model open-weight yang dihoskan |
model | string | Id kanonik model yang menjawab. | Keluarga Shannon 3, model open-weight yang dihoskan |
created_at | integer | Masa balasan, dalam saat Unix. | Keluarga Shannon 3, model open-weight yang dihoskan |
instructions, tools, temperature, … | instructions, tools dan temperature mengulang permintaan. error dan incomplete_details ialah null, metadata ialah {}, parallel_tool_calls ialah true, tool_choice ialah auto dan top_p ialah null. | Keluarga Shannon 3 |
Item output
| Item | Penerangan |
|---|---|
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} | Penaakulan model sebagai satu bahagian summary_text. Wujud hanya apabila model bernalar. |
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} | Jawapan: satu bahagian output_text dengan teks. |
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} | Panggilan alat. arguments ialah rentetan JSON. Hantar keputusan kembali dengan call_id yang sama. |
SDK OpenAI menggabungkan teks mesej untuk anda dalam response.output_text.
Streaming
Tetapkan stream kepada true untuk server-sent events. Setiap bingkai mempunyai baris event: dengan nama peristiwa dan baris data: dengan objek JSON; objek itu mengulang nama dalam type. Padankan delta dengan itemnya melalui output_index.
Dengan SDK OpenAI, baca peristiwa mengikut typenya:
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
}' Peristiwa tiba mengikut urutan ini. Kumpulan untuk penaakulan, mesej dan panggilan alat muncul hanya apabila balasan mempunyainya.
| Peristiwa | Muatan | Bila |
|---|---|---|
response.created | response | Sentiasa pertama. response.status ialah in_progress dan response.output kosong. |
response.in_progress | response | Sentiasa kedua, dengan objek yang sama. |
response.output_item.added | output_index, item | Penaakulan bermula: item reasoning dengan summary yang kosong. |
response.reasoning_summary_text.delta | output_index, summary_index, delta | Sebahagian daripada penaakulan. |
response.reasoning_summary_text.done | output_index, summary_index, text | Penaakulan lengkap: keseluruhan textnya. |
response.output_item.done | output_index, item | Item reasoning yang telah siap. |
response.output_item.added | output_index, item | Jawapan bermula: item message dengan status in_progress dan tanpa kandungan. |
response.content_part.added | output_index, content_index, part | Bahagian output_text yang kosong dibuka. |
response.output_text.delta | output_index, content_index, delta | Sebahagian daripada jawapan. |
response.output_text.done | output_index, content_index, text | Jawapan lengkap: keseluruhan textnya. |
response.content_part.done | output_index, content_index, part | Bahagian output_text yang telah siap. |
response.output_item.done | output_index, item | Item message yang telah siap, dengan status completed. |
response.output_item.added | output_index, item | Panggilan alat bermula: item function_call dengan call_id, name dan arguments yang kosong. |
response.function_call_arguments.delta | output_index, delta | Argumen panggilan, lengkap dalam satu delta. |
response.function_call_arguments.done | output_index, arguments | Argumen yang sama, sebagai arguments. |
response.output_item.done | output_index, item | Item function_call yang telah siap. |
response.completed | response | Sentiasa terakhir apabila berjaya: keseluruhan objek respons dengan output dan 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}, …}} Stream yang gagal
Pada peringkat Shannon, balasan yang gagal berakhir dengan response.failed sebagai ganti response.completed. response.statusnya ialah failed dan response.error memegang code, rate_limit_exceeded atau server_error, dan message.
Pada model open-weight yang dihoskan, kegagalan ialah peristiwa error dengan code api_error dan message. response.completed masih menyusul selepasnya.
Anggap stream gagal apabila ia memegang peristiwa response.failed atau error, dan hantar semula permintaan.
Alat
Alat ialah fungsi yang dijalankan oleh kod anda. Huraikannya dalam tools; apabila model mahukannya, balasan memegang item function_call sebagai ganti, atau di sebelah, mesej.
Takrifan alat dalam tools:
[
{
"type": "function",
"name": "get_weather",
"description": "Current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] output balasan yang memanggilnya:
[
{
"id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"type": "function_call",
"name": "get_weather",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"arguments": "{\"city\":\"Paris\"}"
}
] Jalankan fungsi, kemudian hantar permintaan sekali lagi dengan panggilan dan keputusannya ditambah pada 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\"}"
}
] Hanya alat berjenis function dibaca. Pada shannon-1.6-*, shannon-2-* dan shannon-coder-1, skema parameters dikurangkan kepada kata kunci JSON Schema yang lazim: oneOf dibaca sebagai anyOf, dan kata kunci seperti $ref, additionalProperties, const, default dan title tidak diteruskan kepada model.
Nilai tool_choice required dan fungsi yang dinamakan dikenakan oleh model open-weight yang dihoskan.
Gelung alat diterangkan sepenuhnya pada halamannya sendiri. Panggilan Fungsi
Output berstruktur
Format ini mengeja output berstruktur sebagai text.format. Skema terletak terus dalam format, di sebelah name dan strict, bukan di bawah ahli json_schema seperti pada Chat Completions.
{"type": "json_object"}meminta sebarang objek JSON.{"type": "json_schema", "name", "schema", "strict"}meminta JSON yang mengikut skema anda.strictialahtrueapabila anda tidak menyertakannya.
{
"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"
]
}
}
}
} JSON tiba sebagai teks dalam bahagian output_text mesej; huraikannya sendiri. Model open-weight yang dihoskan tanpa output berstruktur memulangkan 400.
{"city": "Lisbon", "date": "2027-05-12"} Model mana yang menerima bentuk mana disenaraikan pada halamannya sendiri. Output Berstruktur
Penaakulan
Model yang bernalar memulangkan penaakulannya sebagai item output berjenis reasoning, sebelum mesej. Dalam stream, ia tiba sebagai peristiwa response.reasoning_summary_text.delta.
Model open-weight yang dihoskan menggunakan reasoning.effort: off, low, medium atau high, dengan high apabila anda tidak menghantar apa-apa. off tidak memulangkan item penaakulan. Hantar sebagai objek; rentetan sahaja tidak dibaca pada endpoint ini.
Tahap usaha diterangkan pada halamannya sendiri. Usaha penaakulan
Had output
max_output_tokens ialah 4,096 apabila anda tidak menghantarnya. Ia ialah bilangan token yang diketepikan daripada baki anda apabila permintaan bermula; apabila balasan lengkap, jumlah itu digantikan dengan apa yang digunakan oleh permintaan. Nilai yang tidak muat dalam baki anda yang tinggal memulangkan 429 Quota exceeded.
Ia mengehadkan panjang balasan pada shannon-1.6-*, shannon-2-* dan shannon-coder-1, dan panjang teks jawapan pada model open-weight yang dihoskan.
Pada endpoint ini, shannon-coder-1 dicaj dalam token daripada baki anda, seperti setiap model lain.
Badan permintaan boleh sehingga 32 MiB. Had dan baki
Ralat
Ralat menggunakan badan ralat OpenAI: objek error dengan type dan message; sesetengahnya turut membawa code dan param dengan nilai null. Jadual menyenaraikan apa yang paling kerap dipulangkan oleh endpoint ini. Senarai penuh, dengan apa yang perlu dicuba semula, mempunyai halamannya sendiri. Pengendalian Ralat
| Status | Jenis | Mesej | Bila |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Tiada kunci API dihantar, atau kunci itu tidak dikenali atau telah dibatalkan. |
400 | invalid_request_error | unknown model: <id> | model tiada atau bukan id yang diterbitkan. |
400 | invalid_request_error | No user message provided. | Peringkat Shannon: input tidak memegang teks pengguna. |
400 | invalid_request_error | <id> does not accept image input | Imej dihantar kepada model open-weight yang dihoskan tanpa input imej. |
400 | invalid_request_error | <id> does not accept response_format | text.format dihantar kepada model open-weight yang dihoskan tanpa output berstruktur. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning.effort memegang nilai di luar senarai. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Badan ialah JSON yang sah tetapi sesuatu medan mempunyai jenis yang salah. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_output_tokens lebih besar daripada baki anda yang tinggal. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: lebih daripada 120 permintaan dalam satu minit pada akaun anda. |
500 | api_error | The model backend failed to answer. Please retry. | Model tidak menghasilkan balasan. Hantar semula permintaan. |
502 | api_error | The model backend failed to answer. Please retry. | Sama, pada model open-weight yang dihoskan. |
504 | api_error | upstream timed out | Model open-weight yang dihoskan mengambil masa lebih lama daripada had masa balasan yang tidak di-stream. Hantar dengan stream ditetapkan kepada true. |