Responses API
ახალიPOST /v1/responses იღებს მითითებებს და input ელემენტების სიას და აბრუნებს response ობიექტს, რომელიც output ელემენტებისგან შედგება, OpenAI Responses ფორმატში. გამოიყენეთ ის OpenAI SDK-ის responses API-თან და მასზე აგებულ ხელსაწყოებთან, როგორიცაა Codex CLI. endpoint მდგომარეობას არ ინახავს: ყოველ მოთხოვნასთან ერთად გაგზავნეთ მთელი საუბარი.
POST https://api.shannon-ai.com/v1/responses
ყველაზე მცირე მოთხოვნა არის მოდელის id და ტექსტი. პასუხი სტრიმით არ მოდის, თუ ამას არ მოითხოვთ.
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."
}' პასუხი არის response ობიექტი. მისი output შეიცავს მსჯელობას, თუ მოდელმა იმსჯელა, და შეტყობინებას:
{
"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
}
} მოთხოვნის ველები
მოთხოვნას სჭირდება model და input. სვეტი Applied by ასახელებს მოდელებს, რომლებზეც ველი პასუხს ცვლის. hosted open-weight მოდელები არის მოდელების სიის თორმეტი id; Shannon 3-ის ოჯახია shannon-3, shannon-3-pro, shannon-3.1 და shannon-3.1-pro. მოდელები და ფასები
| ველი | ტიპი | ნაგულისხმევი | აღწერა | ვისთან მოქმედებს |
|---|---|---|---|---|
model | string | აუცილებელია. id მოდელების სიიდან. შედარება დიდი და პატარა ასოების გარჩევის გარეშეა. გამოტოვებული ან გამოუქვეყნებელი id აბრუნებს 400 unknown model. | ყველა მოდელი | |
input | string | array | სტრიქონი, რომელიც იკითხება როგორც ერთი user შეტყობინება, ან input ელემენტების მასივი. იხილეთ ქვემოთ Input items. | ყველა მოდელი | |
instructions | string | მითითებები მოდელისთვის, ამ ფორმატის სისტემური პრომპტი. | Hosted open-weight მოდელები, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
stream | boolean | false | true პასუხს server-sent events-ის სახით აგზავნის. იხილეთ ქვემოთ Streaming. | ყველა მოდელი |
max_output_tokens | integer | 4096 | პასუხის ზედა ზღვარი, ტოკენებში. 1-დან 65,536-მდე დიაპაზონს გარეთ მყოფი მნიშვნელობა ამ დიაპაზონში გადაიტანება. ეს ასევე ის რაოდენობაა, რომელიც მოთხოვნის შესრულებისას თქვენი ბალანსიდან გვერდზე გადადის. იხილეთ ქვემოთ Output limit. | Hosted open-weight მოდელები, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | number | სემპლირების ტემპერატურა. hosted open-weight მოდელებზე მნიშვნელობები 0-სა და 2-ს შორის რჩება. | Hosted open-weight მოდელები; shannon-1.6-*, shannon-2-* და shannon-coder-1 სტრიმის გარეშე მიღებულ პასუხებზე | |
top_p | number | Nucleus სემპლირება. მნიშვნელობები 0-სა და 1-ს შორის რჩება. | Hosted open-weight მოდელები | |
tools | array | ფუნქციები, რომლებიც მოდელმა შეიძლება გამოიძახოს, ამ ფორმატის ბრტყელი ფორმით: {"type": "function", "name", "description", "parameters"}. იხილეთ ქვემოთ Tools. | ყველა მოდელი | |
tool_choice | string | object | auto | "auto" გადაწყვეტილებას მოდელს უტოვებს. "required" აიძულებს ინსტრუმენტი გამოიძახოს. {"type": "function", "name": "…"} აიძულებს, ზუსტად ის ინსტრუმენტი გამოიძახოს. | Hosted open-weight მოდელები |
reasoning | object | {"effort": "…"} მნიშვნელობით off, low, medium ან high. ნებისმიერი სხვა მნიშვნელობა აბრუნებს 400-ს. | Hosted open-weight მოდელები | |
text | object | {"format": {…}} JSON პასუხს ითხოვს. იხილეთ ქვემოთ Structured output. | ყველა Shannon დონე; hosted open-weight მოდელები id-ების მიხედვით, როგორც ჩამოთვლილია |
previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user და prompt_cache_key მიიღება იმისთვის, რომ არსებული კლიენტის კოდი უცვლელად იმუშაოს. ისინი პასუხს არ ცვლიან. რადგან საუბარი არ ინახება, მომდევნო მოთხოვნა წინა ბიჯებს input-ში შეიცავს.
Input items
input ელემენტი არის ან შეტყობინება role-ითა და content-ით, ან ტიპიზებული ელემენტი, რომელიც ინსტრუმენტის გამოძახებას ან მის შედეგს შეიცავს. content არის სტრიქონი ან ნაწილების მასივი.
| ელემენტი | აღწერა | ვისთან მოქმედებს |
|---|---|---|
{"role": "user", "content": …} | რასაც თქვენ ეკითხებით. content არის სტრიქონი, ან input_text და input_image ნაწილები. | ყველა მოდელი |
{"role": "assistant", "content": …} | მოდელის ადრინდელი პასუხი. content არის სტრიქონი, ან output_text ნაწილები. | ყველა მოდელი |
{"role": "system", "content": …}{"role": "developer", "content": …} | მითითებები საუბრის შიგნით. | Hosted open-weight მოდელები |
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} | ინსტრუმენტის გამოძახება, რომელიც მოდელმა ადრინდელ პასუხში გააკეთა. arguments არის JSON სტრიქონი. | ყველა მოდელი |
{"type": "function_call_output", "call_id": "…", "output": "…"} | ამ გამოძახების შედეგი. call_id არის გამოძახების id, ხოლო output შედეგი სტრიქონის სახით. | ყველა მოდელი |
მითითებები ჩაწერეთ ველში instructions. Shannon 3-ის ოჯახის id-ის შემთხვევაში, მითითებები, რომლებიც აუცილებლად უნდა შესრულდეს, ჩაწერეთ user შეტყობინებაში.
პასუხის output-ის ელემენტები input-ში უცვლელად შეიძლება დაბრუნდეს: message და function_call ელემენტები იკითხება, reasoning ელემენტები გამოიტოვება.
Content ნაწილები
| ნაწილი | აღწერა | ხელმისაწვდომია |
|---|---|---|
{"type": "input_text", "text": "…"} | user შეტყობინების ტექსტი. | ყველა მოდელი |
{"type": "output_text", "text": "…"} | assistant შეტყობინების ტექსტი. | ყველა მოდელი |
{"type": "input_image", "image_url": "…"} | სურათი, როგორც data: URL base64 შიგთავსით ან როგორც http(s) URL. | Shannon 3-ის ოჯახი, shannon-1.6-lite, shannon-1.6-pro და hosted open-weight მოდელები, რომლებიც სურათის შეყვანას მხარს უჭერენ |
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} | დოკუმენტი (PDF, Word, PowerPoint ან Excel): file_data შეიცავს data: URL-ს, ან file_url შეიცავს http(s) URL-ს. | Shannon 3-ის ოჯახი |
Shannon დონეებზე სურათები და ფაილები იკითხება input-ის ბოლო user ელემენტიდან. ზომები და ლიმიტები ცალკე გვერდზეა. სურათები და ფაილები
მოთხოვნა instructions-ითა და პარამეტრებით
ეს მოთხოვნა აგზავნის მითითებებს, საუბარს input ელემენტების სახით, გამოტანის ლიმიტს, ტემპერატურას და მსჯელობის effort-ს. ის იყენებს hosted open-weight მოდელს, რომელიც ყველა მათგანს იყენებს.
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"}
}' hosted open-weight მოდელის პასუხს აქვს id, object, model, created_at, status, output და usage. მისი usage დამატებით შეიცავს ქეშიდან წაკითხულ ტოკენებს და მსჯელობაზე დახარჯულ ტოკენებს:
{
"usage": {
"input_tokens": 58,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 67,
"output_tokens_details": {
"reasoning_tokens": 19
},
"total_tokens": 125
}
} response ობიექტი
id, object, status, output და usage ყველა პასუხშია. თქვენი კოდი მათზე ააგეთ.
| ველი | ტიპი | აღწერა | ვინ აგზავნის |
|---|---|---|---|
id | string | resp_, რომელსაც მოჰყვება 32 თექვსმეტობითი სიმბოლო. | ყველა მოდელი |
object | string | ყოველთვის response. | ყველა მოდელი |
status | string | completed. სტრიმში ჯერ in_progress არის, ხოლო failed - response.failed მოვლენაში. | ყველა მოდელი |
output | array | output ელემენტები იმ თანმიმდევრობით, როგორც მოდელმა შექმნა: reasoning, message, function_call. | ყველა მოდელი |
usage | object | input_tokens, output_tokens და total_tokens. | ყველა მოდელი |
usage.input_tokens_details | object | cached_tokens: შემავალი ტოკენები, რომლებიც პრომპტის ქეშიდან წაიკითხა. | Hosted open-weight მოდელები |
usage.output_tokens_details | object | reasoning_tokens: გამომავალი ტოკენები, რომლებიც მსჯელობაზე დაიხარჯა. | Hosted open-weight მოდელები |
model | string | პასუხის გამცემი მოდელის კანონიკური id. | Shannon 3-ის ოჯახი, hosted open-weight მოდელები |
created_at | integer | პასუხის დრო, Unix წამებში. | Shannon 3-ის ოჯახი, hosted open-weight მოდელები |
instructions, tools, temperature, … | instructions, tools და temperature მოთხოვნას იმეორებენ. error და incomplete_details არის null, metadata არის {}, parallel_tool_calls არის true, tool_choice არის auto და top_p არის null. | Shannon 3-ის ოჯახი |
Output ელემენტები
| ელემენტი | აღწერა |
|---|---|
{"id": "rs_…", "type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} | მოდელის მსჯელობა ერთი summary_text ნაწილის სახით. გვხვდება მხოლოდ მაშინ, როცა მოდელმა იმსჯელა. |
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} | პასუხი: ერთი output_text ნაწილი ტექსტით. |
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} | ინსტრუმენტის გამოძახება. arguments არის JSON სტრიქონი. შედეგი უკან გაგზავნეთ იმავე call_id-ით. |
OpenAI SDK-ები შეტყობინების ტექსტს თქვენ მაგივრად აერთიანებენ ველში response.output_text.
სტრიმინგი
დააყენეთ stream მნიშვნელობაზე true, რომ მიიღოთ server-sent events. ყოველ ფრეიმს აქვს ხაზი event: მოვლენის სახელით და ხაზი data: JSON ობიექტით; ობიექტი სახელს type-ში იმეორებს. დელტები თავიანთ ელემენტს output_index-ით შეუსაბამეთ.
OpenAI SDK-ით მოვლენები მათი 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
}' მოვლენები ამ თანმიმდევრობით მოდის. მსჯელობის, შეტყობინებისა და ინსტრუმენტების გამოძახებების ჯგუფები მხოლოდ მაშინ ჩნდება, როცა პასუხს ისინი აქვს.
| მოვლენა | Payload | როდის |
|---|---|---|
response.created | response | ყოველთვის პირველია. response.status არის in_progress, ხოლო response.output ცარიელია. |
response.in_progress | response | ყოველთვის მეორეა, იმავე ობიექტით. |
response.output_item.added | output_index, item | მსჯელობა იწყება: reasoning ელემენტი ცარიელი summary-ით. |
response.reasoning_summary_text.delta | output_index, summary_index, delta | მსჯელობის ნაწილი. |
response.reasoning_summary_text.done | output_index, summary_index, text | მსჯელობა სრულია: მისი მთელი text. |
response.output_item.done | output_index, item | დასრულებული reasoning ელემენტი. |
response.output_item.added | output_index, item | პასუხი იწყება: message ელემენტი სტატუსით in_progress და შიგთავსის გარეშე. |
response.content_part.added | output_index, content_index, part | იხსნება ცარიელი output_text ნაწილი. |
response.output_text.delta | output_index, content_index, delta | პასუხის ნაწილი. |
response.output_text.done | output_index, content_index, text | პასუხი სრულია: მისი მთელი text. |
response.content_part.done | output_index, content_index, part | დასრულებული output_text ნაწილი. |
response.output_item.done | output_index, item | დასრულებული message ელემენტი, სტატუსით completed. |
response.output_item.added | output_index, item | ინსტრუმენტის გამოძახება იწყება: function_call ელემენტი call_id-ით, name-ით და ცარიელი arguments-ით. |
response.function_call_arguments.delta | output_index, delta | გამოძახების არგუმენტები, სრულად ერთ დელტაში. |
response.function_call_arguments.done | output_index, arguments | იგივე არგუმენტები, როგორც arguments. |
response.output_item.done | output_index, item | დასრულებული function_call ელემენტი. |
response.completed | response | წარმატების შემთხვევაში ყოველთვის ბოლოა: მთელი response ობიექტი output-ითა და 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}, …}} სტრიმი, რომელიც წარუმატებლად სრულდება
Shannon დონეებზე წარუმატებელი პასუხი მთავრდება response.failed-ით response.completed-ის ნაცვლად. მისი response.status არის failed, ხოლო response.error შეიცავს code-ს, rate_limit_exceeded ან server_error, და message-ს.
hosted open-weight მოდელებზე წარუმატებლობა არის error მოვლენა code-ით api_error და message-ით. მას მაინც მოჰყვება response.completed.
სტრიმი წარუმატებლად ჩათვალეთ, თუ ის შეიცავს response.failed ან error მოვლენას, და მოთხოვნა ხელახლა გაგზავნეთ.
ინსტრუმენტები
ინსტრუმენტი არის ფუნქცია, რომელსაც თქვენი კოდი ასრულებს. აღწერეთ ის tools-ში; როცა მოდელს ის სჭირდება, პასუხი შეტყობინების ნაცვლად ან მის გვერდით function_call ელემენტს შეიცავს.
ინსტრუმენტის განსაზღვრება tools-ში:
[
{
"type": "function",
"name": "get_weather",
"description": "Current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] პასუხის output, რომელიც მას იძახებს:
[
{
"id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"type": "function_call",
"name": "get_weather",
"call_id": "call_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"arguments": "{\"city\":\"Paris\"}"
}
] შეასრულეთ ფუნქცია და მოთხოვნა ხელახლა გაგზავნეთ, 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\"}"
}
] იკითხება მხოლოდ ტიპის function ინსტრუმენტები. shannon-1.6-*, shannon-2-* და shannon-coder-1 მოდელებზე სქემა parameters შემცირდება საერთო JSON Schema საკვანძო სიტყვებამდე: oneOf იკითხება როგორც anyOf, ხოლო ისეთი საკვანძო სიტყვები, როგორიცაა $ref, additionalProperties, const, default და title, მოდელს არ გადაეცემა.
tool_choice-ის მნიშვნელობებს required და დასახელებული ფუნქცია hosted open-weight მოდელები იყენებენ.
ინსტრუმენტების ციკლი სრულად ცალკე გვერდზეა აღწერილი. ფუნქციის გამოძახება
სტრუქტურირებული შედეგი
ეს ფორმატი სტრუქტურირებულ შედეგს წერს როგორც text.format. სქემა პირდაპირ format-შია, name-ისა და strict-ის გვერდით და არა json_schema წევრის ქვეშ, როგორც Chat Completions-ზე.
{"type": "json_object"}ნებისმიერ JSON ობიექტს ითხოვს.{"type": "json_schema", "name", "schema", "strict"}ითხოვს JSON-ს, რომელიც თქვენს სქემას მისდევს. თუstrict-ს გამოტოვებთ, ის არისtrue.
{
"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 მოდის ტექსტად შეტყობინების output_text ნაწილში; პარსინგი თავად გააკეთეთ. hosted open-weight მოდელი სტრუქტურირებული შედეგის გარეშე აბრუნებს 400-ს.
{"city": "Lisbon", "date": "2027-05-12"} რომელი მოდელი რომელ ფორმას იღებს, ცალკე გვერდზეა ჩამოთვლილი. სტრუქტურირებული შედეგები
მსჯელობა
მოდელი, რომელიც მსჯელობს, თავის მსჯელობას აბრუნებს output ელემენტის სახით ტიპით reasoning, შეტყობინებამდე. სტრიმში ის მოდის როგორც response.reasoning_summary_text.delta მოვლენები.
hosted open-weight მოდელები იყენებენ reasoning.effort-ს: off, low, medium ან high; თუ არაფერს გაგზავნით, ძალაშია high. off reasoning ელემენტს არ აბრუნებს. გაგზავნეთ ობიექტის სახით; უბრალო სტრიქონი ამ endpoint-ზე არ იკითხება.
effort-ები ცალკე გვერდზეა აღწერილი. მსჯელობის effort
გამოტანის ლიმიტი
max_output_tokens არის 4,096, თუ მას არ გაგზავნით. ეს არის ტოკენების რაოდენობა, რომელიც მოთხოვნის დაწყებისას თქვენი ბალანსიდან გვერდზე გადადის; პასუხის დასრულებისას ეს რაოდენობა იცვლება იმით, რაც მოთხოვნამ რეალურად გამოიყენა. მნიშვნელობა, რომელიც თქვენს დარჩენილ ბალანსში არ ეტევა, აბრუნებს 429 Quota exceeded.
ის ზღუდავს პასუხის სიგრძეს shannon-1.6-*, shannon-2-* და shannon-coder-1 მოდელებზე და პასუხის ტექსტის სიგრძეს hosted open-weight მოდელებზე.
ამ endpoint-ზე shannon-coder-1 იანგარიშება ტოკენებში თქვენი ბალანსიდან, ისევე როგორც ყველა სხვა მოდელი.
მოთხოვნის სხეული შეიძლება იყოს 32 MiB-მდე. ლიმიტები და ბალანსი
შეცდომები
შეცდომები იყენებენ OpenAI-ის შეცდომის სხეულს: ობიექტი error ველებით type და message; ზოგს ასევე აქვს code და param მნიშვნელობით null. ცხრილში ჩამოთვლილია ის, რასაც ეს endpoint ყველაზე ხშირად აბრუნებს. სრული სია, იმ მითითებით, რა უნდა განმეორდეს, ცალკე გვერდზეა. შეცდომების დამუშავება
| სტატუსი | ტიპი | შეტყობინება | როდის |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | API გასაღები არ გაიგზავნა, ან გასაღები უცნობია ან გაუქმებულია. |
400 | invalid_request_error | unknown model: <id> | model აკლია ან გამოქვეყნებული id არ არის. |
400 | invalid_request_error | No user message provided. | Shannon დონეები: input მომხმარებლის ტექსტს არ შეიცავს. |
400 | invalid_request_error | <id> does not accept image input | სურათი გაიგზავნა hosted open-weight მოდელზე, რომელსაც სურათის შეყვანა არ აქვს. |
400 | invalid_request_error | <id> does not accept response_format | text.format გაიგზავნა hosted open-weight მოდელზე, რომელსაც სტრუქტურირებული შედეგი არ აქვს. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | reasoning.effort სიის გარეთ მყოფ მნიშვნელობას შეიცავს. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | სხეული ვალიდური JSON-ია, მაგრამ ველს არასწორი ტიპი აქვს. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_output_tokens აღემატება თქვენი ბალანსის დარჩენილ ნაწილს. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection: თქვენს ანგარიშზე ერთ წუთში 120-ზე მეტი მოთხოვნა. |
500 | api_error | The model backend failed to answer. Please retry. | მოდელმა პასუხი ვერ შექმნა. გაგზავნეთ მოთხოვნა ხელახლა. |
502 | api_error | The model backend failed to answer. Please retry. | იგივე, hosted open-weight მოდელებზე. |
504 | api_error | upstream timed out | hosted open-weight მოდელს დასჭირდა მეტი დრო, ვიდრე სტრიმის გარეშე მიღებული პასუხის დროის ლიმიტია. გაგზავნეთ stream-ით true. |