Responses API
NowePOST /v1/responses przyjmuje instrukcje i listę elementów wejścia, a zwraca obiekt odpowiedzi złożony z elementów wyjścia, w formacie OpenAI Responses. Używaj go z API responses z SDK OpenAI i z narzędziami na nim zbudowanymi, takimi jak Codex CLI. Endpoint nie przechowuje stanu: wysyłaj całą rozmowę z każdym zapytaniem.
POST https://api.shannon-ai.com/v1/responses
Najmniejsze zapytanie to id modelu i tekst. Odpowiedź nie jest streamowana, dopóki o to nie poprosisz.
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."
}' Odpowiedź to obiekt odpowiedzi. Jego output zawiera wnioskowanie, jeśli model wnioskował, oraz wiadomość:
{
"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
}
} Pola zapytania
model i input to to, czego potrzebuje zapytanie. Kolumna Stosowane przez podaje modele, w których pole zmienia odpowiedź. Hostowane modele open-weight to dwanaście id z listy modeli; rodzina Shannon 3 to shannon-3, shannon-3-pro, shannon-3.1 i shannon-3.1-pro. Modele i ceny
| Pole | Typ | Domyślnie | Opis | Stosowane przez |
|---|---|---|---|---|
model | string | Wymagane. Id z listy modeli. Dopasowanie nie rozróżnia wielkości liter. Brakujące lub nieopublikowane id zwraca 400 unknown model. | Wszystkie modele | |
input | string | array | Ciąg znaków, który jest czytany jako jedna wiadomość użytkownika, albo tablica elementów wejścia. Zobacz Elementy wejścia niżej. | Wszystkie modele | |
instructions | string | Instrukcje dla modelu, prompt systemowy tego formatu. | Hostowane modele open-weight, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
stream | boolean | false | true wysyła odpowiedź jako server-sent events. Zobacz Streaming niżej. | Wszystkie modele |
max_output_tokens | integer | 4096 | Górny limit odpowiedzi, w tokenach. Wartość spoza zakresu od 1 do 65,536 jest przesuwana do tego zakresu. To także kwota odłożona z Twojego salda na czas zapytania. Zobacz Limit wyjścia niżej. | Hostowane modele open-weight, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | number | Temperatura próbkowania. W hostowanych modelach open-weight wartości są utrzymywane między 0 a 2. | Hostowane modele open-weight; shannon-1.6-*, shannon-2-* i shannon-coder-1 w odpowiedziach bez streamingu | |
top_p | number | Próbkowanie nucleus. Wartości są utrzymywane między 0 a 1. | Hostowane modele open-weight | |
tools | array | Funkcje, które model może wywołać, w płaskiej formie tego formatu: {"type": "function", "name", "description", "parameters"}. Zobacz Narzędzia niżej. | Wszystkie modele | |
tool_choice | string | object | auto | "auto" pozwala modelowi zdecydować. "required" każe mu wywołać narzędzie. {"type": "function", "name": "…"} każe mu wywołać to narzędzie. | Hostowane modele open-weight |
reasoning | object | {"effort": "…"} z off, low, medium lub high. Każda inna wartość zwraca 400. | Hostowane modele open-weight | |
text | object | {"format": {…}} prosi o odpowiedź w JSON. Zobacz Ustrukturyzowane wyjście niżej. | Wszystkie poziomy Shannon; hostowane modele open-weight zgodnie z listą dla każdego id |
previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user i prompt_cache_key są akceptowane, aby istniejący kod klienta działał bez zmian. Nie zmieniają odpowiedzi. Ponieważ żadna rozmowa nie jest przechowywana, kolejne zapytanie niesie wcześniejsze tury w input.
Elementy wejścia
Element wejścia to albo wiadomość z role i content, albo element z typem, który niesie wywołanie narzędzia lub jego wynik. content to ciąg znaków albo tablica części.
| Element | Opis | Stosowane przez |
|---|---|---|
{"role": "user", "content": …} | To, o co pytasz. content to ciąg znaków albo części input_text i input_image. | Wszystkie modele |
{"role": "assistant", "content": …} | Wcześniejsza odpowiedź modelu. content to ciąg znaków albo części output_text. | Wszystkie modele |
{"role": "system", "content": …}{"role": "developer", "content": …} | Instrukcje wewnątrz rozmowy. | Hostowane modele open-weight |
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} | Wywołanie narzędzia, które model wykonał we wcześniejszej odpowiedzi. arguments to ciąg JSON. | Wszystkie modele |
{"type": "function_call_output", "call_id": "…", "output": "…"} | Wynik tego wywołania. call_id to id wywołania, a output to wynik jako ciąg znaków. | Wszystkie modele |
Umieść instrukcje w polu instructions. Z id rodziny Shannon 3 instrukcje, które muszą obowiązywać, umieść w wiadomości user.
Elementy output odpowiedzi mogą wrócić do input bez zmian: elementy message i function_call są czytane, elementy reasoning są pomijane.
Części treści
| Część | Opis | Dostępne w |
|---|---|---|
{"type": "input_text", "text": "…"} | Tekst wiadomości użytkownika. | Wszystkie modele |
{"type": "output_text", "text": "…"} | Tekst wiadomości asystenta. | Wszystkie modele |
{"type": "input_image", "image_url": "…"} | Obraz, jako URL data: z treścią base64 albo jako URL http(s). | Rodzina Shannon 3, shannon-1.6-lite, shannon-1.6-pro oraz hostowane modele open-weight, które podają wejście obrazów |
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} | Dokument (PDF, Word, PowerPoint lub Excel): file_data zawiera URL data:, a file_url URL http(s). | Rodzina Shannon 3 |
W poziomach Shannon obrazy i pliki są czytane z ostatniego elementu user w input. Rozmiary i limity mają własną stronę. Obrazy i pliki
Zapytanie z instrukcjami i opcjami
To zapytanie wysyła instrukcje, rozmowę jako elementy wejścia, limit wyjścia, temperaturę i wysiłek wnioskowania. Używa hostowanego modelu open-weight, który stosuje wszystkie z nich.
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"}
}' Odpowiedź hostowanego modelu open-weight ma id, object, model, created_at, status, output i usage. Jego usage dodaje tokeny odczytane z cache i tokeny zużyte na wnioskowanie:
{
"usage": {
"input_tokens": 58,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 67,
"output_tokens_details": {
"reasoning_tokens": 19
},
"total_tokens": 125
}
} Obiekt odpowiedzi
id, object, status, output i usage są w każdej odpowiedzi. Na nich buduj swój kod.
| Pole | Typ | Opis | Wysyłane przez |
|---|---|---|---|
id | string | resp_ i po nim 32 znaki szesnastkowe. | Wszystkie modele |
object | string | Zawsze response. | Wszystkie modele |
status | string | completed. W streamie najpierw jest in_progress, a failed w zdarzeniu response.failed. | Wszystkie modele |
output | array | Elementy wyjścia w kolejności, w jakiej wytworzył je model: reasoning, message, function_call. | Wszystkie modele |
usage | object | input_tokens, output_tokens i total_tokens. | Wszystkie modele |
usage.input_tokens_details | object | cached_tokens: tokeny wejścia odczytane z cache promptów. | Hostowane modele open-weight |
usage.output_tokens_details | object | reasoning_tokens: tokeny wyjścia zużyte na wnioskowanie. | Hostowane modele open-weight |
model | string | Kanoniczne id modelu, który odpowiedział. | Rodzina Shannon 3, hostowane modele open-weight |
created_at | integer | Czas odpowiedzi, w sekundach Unix. | Rodzina Shannon 3, hostowane modele open-weight |
instructions, tools, temperature, … | instructions, tools i temperature powtarzają zapytanie. error i incomplete_details mają wartość null, metadata to {}, parallel_tool_calls to true, tool_choice to auto, a top_p to null. | Rodzina Shannon 3 |
Elementy wyjścia
| Element | Opis |
|---|---|
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} | Wnioskowanie modelu jako jedna część summary_text. Obecne tylko wtedy, gdy model wnioskował. |
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} | Odpowiedź: jedna część output_text z tekstem. |
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} | Wywołanie narzędzia. arguments to ciąg JSON. Odeślij wynik z tym samym call_id. |
SDK OpenAI łączą za Ciebie tekst wiadomości w response.output_text.
Streaming
Ustaw stream na true, aby dostać server-sent events. Każda ramka ma wiersz event: z nazwą zdarzenia i wiersz data: z obiektem JSON; obiekt powtarza nazwę w type. Dopasowuj delty do ich elementu po output_index.
W SDK OpenAI czytaj zdarzenia według ich 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
}' Zdarzenia przychodzą w tej kolejności. Grupy dla wnioskowania, wiadomości i wywołań narzędzi pojawiają się tylko wtedy, gdy odpowiedź je ma.
| Zdarzenie | Ładunek | Kiedy |
|---|---|---|
response.created | response | Zawsze pierwsze. response.status to in_progress, a response.output jest puste. |
response.in_progress | response | Zawsze drugie, z tym samym obiektem. |
response.output_item.added | output_index, item | Zaczyna się wnioskowanie: element reasoning z pustym summary. |
response.reasoning_summary_text.delta | output_index, summary_index, delta | Kawałek wnioskowania. |
response.reasoning_summary_text.done | output_index, summary_index, text | Wnioskowanie jest kompletne: jego cały text. |
response.output_item.done | output_index, item | Gotowy element reasoning. |
response.output_item.added | output_index, item | Zaczyna się odpowiedź: element message ze statusem in_progress i bez treści. |
response.content_part.added | output_index, content_index, part | Otwiera się pusta część output_text. |
response.output_text.delta | output_index, content_index, delta | Kawałek odpowiedzi. |
response.output_text.done | output_index, content_index, text | Odpowiedź jest kompletna: jej cały text. |
response.content_part.done | output_index, content_index, part | Gotowa część output_text. |
response.output_item.done | output_index, item | Gotowy element message, ze statusem completed. |
response.output_item.added | output_index, item | Zaczyna się wywołanie narzędzia: element function_call z call_id, name i pustym arguments. |
response.function_call_arguments.delta | output_index, delta | Argumenty wywołania, kompletne w jednej delcie. |
response.function_call_arguments.done | output_index, arguments | Te same argumenty, jako arguments. |
response.output_item.done | output_index, item | Gotowy element function_call. |
response.completed | response | Zawsze ostatnie przy powodzeniu: cały obiekt odpowiedzi z output i 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, który się nie powiódł
W poziomach Shannon nieudana odpowiedź kończy się response.failed zamiast response.completed. Jej response.status to failed, a response.error zawiera code, rate_limit_exceeded lub server_error, oraz message.
W hostowanych modelach open-weight awaria to zdarzenie error z code api_error i message. Po nim nadal następuje response.completed.
Traktuj stream jako nieudany, gdy zawiera zdarzenie response.failed lub error, i wyślij zapytanie ponownie.
Narzędzia
Narzędzie to funkcja, którą uruchamia Twój kod. Opisz je w tools; gdy model go chce, odpowiedź zawiera element function_call zamiast wiadomości lub obok niej.
Definicja narzędzia w tools:
[
{
"type": "function",
"name": "get_weather",
"description": "Current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] output odpowiedzi, która je wywołuje:
[
{
"id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"type": "function_call",
"name": "get_weather",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"arguments": "{\"city\":\"Paris\"}"
}
] Uruchom funkcję, a potem wyślij zapytanie ponownie, dodając do input wywołanie i jego wynik:
[
{
"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\"}"
}
] Czytane są tylko narzędzia typu function. W shannon-1.6-*, shannon-2-* i shannon-coder-1 schemat parameters jest zredukowany do wspólnych słów kluczowych JSON Schema: oneOf jest czytane jako anyOf, a słowa takie jak $ref, additionalProperties, const, default i title nie są przekazywane modelowi.
Wartości tool_choice required i nazwana funkcja są stosowane przez hostowane modele open-weight.
Pętla narzędzi jest opisana w całości na jej własnej stronie. Wywołanie funkcji
Ustrukturyzowane wyjście
Ten format zapisuje ustrukturyzowane wyjście jako text.format. Schemat leży bezpośrednio w format, obok name i strict, a nie pod członem json_schema jak w Chat Completions.
{"type": "json_object"}prosi o dowolny obiekt JSON.{"type": "json_schema", "name", "schema", "strict"}prosi o JSON zgodny z Twoim schematem.strictma wartośćtrue, gdy go pominiesz.
{
"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 przychodzi jako tekst w części output_text wiadomości; sparsuj go samodzielnie. Hostowany model open-weight bez ustrukturyzowanego wyjścia zwraca 400.
{"city": "Lisbon", "date": "2027-05-12"} Który model przyjmuje którą formę, wymienia jego własna strona. Ustrukturyzowane odpowiedzi
Wnioskowanie
Model, który wnioskuje, zwraca wnioskowanie jako element wyjścia typu reasoning, przed wiadomością. W streamie przychodzi jako zdarzenia response.reasoning_summary_text.delta.
Hostowane modele open-weight stosują reasoning.effort: off, low, medium lub high, a high, gdy nic nie wyślesz. off nie zwraca elementu wnioskowania. Wyślij go jako obiekt; sam ciąg znaków nie jest w tym endpoincie czytany.
Poziomy wysiłku opisuje ich własna strona. Wysiłek rozumowania
Limit wyjścia
max_output_tokens wynosi 4,096, gdy go nie wyślesz. To liczba tokenów odłożonych z Twojego salda na początku zapytania; gdy odpowiedź jest kompletna, ta kwota jest zastępowana tym, co zapytanie zużyło. Wartość, która nie mieści się w pozostałym saldzie, zwraca 429 Quota exceeded.
Ogranicza długość odpowiedzi w shannon-1.6-*, shannon-2-* i shannon-coder-1 oraz długość tekstu odpowiedzi w hostowanych modelach open-weight.
W tym endpoincie shannon-coder-1 jest rozliczany w tokenach z Twojego salda, jak każdy inny model.
Treść zapytania może mieć do 32 MiB. Limity i saldo
Błędy
Błędy używają treści błędu OpenAI: obiektu error z type i message; niektóre niosą też code i param o wartości null. Tabela wymienia to, co ten endpoint zwraca najczęściej. Pełna lista, z informacją, co ponawiać, ma własną stronę. Obsługa błędów
| Status | Typ | Komunikat | Kiedy |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Nie wysłano klucza API albo klucz jest nieznany lub unieważniony. |
400 | invalid_request_error | unknown model: <id> | Brakuje model albo nie jest opublikowanym id. |
400 | invalid_request_error | No user message provided. | Poziomy Shannon: input nie zawiera tekstu użytkownika. |
400 | invalid_request_error | <id> does not accept image input | Obraz wysłano do hostowanego modelu open-weight bez wejścia obrazów. |
400 | invalid_request_error | <id> does not accept response_format | text.format wysłano do hostowanego modelu open-weight bez ustrukturyzowanego wyjścia. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning.effort zawiera wartość spoza listy. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Treść jest poprawnym JSON, ale pole ma błędny typ. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_output_tokens jest większe niż to, co zostało z Twojego salda. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Ochrona przed floodem: ponad 120 zapytań w ciągu jednej minuty na Twoim koncie. |
500 | api_error | The model backend failed to answer. Please retry. | Model nie wytworzył odpowiedzi. Wyślij zapytanie ponownie. |
502 | api_error | The model backend failed to answer. Please retry. | To samo, w hostowanych modelach open-weight. |
504 | api_error | upstream timed out | Hostowany model open-weight potrzebował więcej czasu niż wynosi limit czasu odpowiedzi bez streamingu. Wyślij zapytanie z stream ustawionym na true. |