Responses API
ໃໝ່POST /v1/responses ຮັບຄຳແນະນຳ ແລະ ລາຍການ input ແລ້ວສົ່ງ object response ທີ່ປະກອບດ້ວຍລາຍການ output ກັບຄືນ, ໃນຮູບແບບ OpenAI Responses. ໃຊ້ມັນກັບ responses API ຂອງ OpenAI SDK ແລະ ກັບ tool ທີ່ສ້າງເທິງມັນ, ເຊັ່ນ Codex CLI. endpoint ບໍ່ເກັບສະຖານະ: ສົ່ງການສົນທະນາທັງໝົດມາກັບທຸກຄຳຮ້ອງຂໍ.
POST https://api.shannon-ai.com/v1/responses
ຄຳຮ້ອງຂໍທີ່ນ້ອຍທີ່ສຸດແມ່ນ id ຂອງ model ແລະ ຂໍ້ຄວາມ. ຄຳຕອບບໍ່ stream ເວັ້ນແຕ່ທ່ານຂໍ.
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."
}' ຄຳຕອບແມ່ນ object response. output ຂອງມັນມີ reasoning, ເມື່ອ model ໄດ້ຄິດຫາເຫດຜົນ, ແລະ ຂໍ້ຄວາມ:
{
"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 ບອກຊື່ model ທີ່ຟີລດ໌ປ່ຽນຄຳຕອບ. Hosted open-weight models ແມ່ນສິບສອງ id ຂອງລາຍຊື່ model; ຕະກູນ Shannon 3 ແມ່ນ shannon-3, shannon-3-pro, shannon-3.1 ແລະ shannon-3.1-pro. Model ແລະ ລາຄາ
| ຟີລດ໌ | ປະເພດ | ຄ່າເລີ່ມຕົ້ນ | ຄຳອະທິບາຍ | ນຳໃຊ້ໂດຍ |
|---|---|---|---|---|
model | string | ຈຳເປັນ. id ຈາກລາຍຊື່ model. ການຈັບຄູ່ບໍ່ແຍກຕົວພິມນ້ອຍ-ໃຫຍ່. id ທີ່ຂາດ ຫຼື ບໍ່ໄດ້ເຜີຍແຜ່ຈະສົ່ງ 400 unknown model ກັບຄືນ. | ທຸກ model | |
input | string | array | string, ເຊິ່ງຖືກອ່ານເປັນຂໍ້ຄວາມ user ໜຶ່ງອັນ, ຫຼື array ຂອງລາຍການ input. ເບິ່ງລາຍການ input ຂ້າງລຸ່ມ. | ທຸກ model | |
instructions | string | ຄຳແນະນຳສຳລັບ model, system prompt ຂອງຮູບແບບນີ້. | Hosted open-weight models, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
stream | boolean | false | true ສົ່ງຄຳຕອບເປັນ server-sent events. ເບິ່ງ Streaming ຂ້າງລຸ່ມ. | ທຸກ model |
max_output_tokens | integer | 4096 | ຂີດຈຳກັດສູງສຸດຂອງຄຳຕອບ, ເປັນ tokens. ຄ່າທີ່ຢູ່ນອກ 1 ຫາ 65,536 ຖືກຍ້າຍເຂົ້າຊ່ວງນັ້ນ. ມັນຍັງເປັນຈຳນວນທີ່ກັນໄວ້ຈາກຍອດເງິນຂອງທ່ານໃນຂະນະທີ່ຄຳຮ້ອງຂໍເຮັດວຽກ. ເບິ່ງຂີດຈຳກັດ output ຂ້າງລຸ່ມ. | Hosted open-weight models, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | number | Sampling temperature. ໃນ hosted open-weight models ຄ່າຖືກຮັກສາໄວ້ລະຫວ່າງ 0 ຫາ 2. | Hosted open-weight models; shannon-1.6-*, shannon-2-* ແລະ shannon-coder-1 ໃນຄຳຕອບທີ່ບໍ່ stream | |
top_p | number | Nucleus sampling. ຄ່າຖືກຮັກສາໄວ້ລະຫວ່າງ 0 ຫາ 1. | Hosted open-weight models | |
tools | array | function ທີ່ model ອາດເອີ້ນ, ໃນຮູບແບບແບນຂອງຮູບແບບນີ້: {"type": "function", "name", "description", "parameters"}. ເບິ່ງ Tools ຂ້າງລຸ່ມ. | ທຸກ model | |
tool_choice | string | object | auto | "auto" ໃຫ້ model ຕັດສິນໃຈເອງ. "required" ບັງຄັບໃຫ້ມັນເອີ້ນ tool. {"type": "function", "name": "…"} ບັງຄັບໃຫ້ມັນເອີ້ນ tool ນັ້ນ. | Hosted open-weight models |
reasoning | object | {"effort": "…"} ໂດຍມີ off, low, medium ຫຼື high. ຄ່າອື່ນໃດຈະສົ່ງ 400 ກັບຄືນ. | Hosted open-weight models | |
text | object | {"format": {…}} ຂໍຄຳຕອບແບບ JSON. ເບິ່ງ Structured output ຂ້າງລຸ່ມ. | ທຸກລະດັບ Shannon; ສຳລັບ hosted open-weight models ແມ່ນຕາມທີ່ລະບຸໄວ້ຂອງແຕ່ລະ id |
previous_response_id, store, metadata, parallel_tool_calls, truncation, include, user ແລະ prompt_cache_key ຖືກຮັບໄວ້ເພື່ອໃຫ້ໂຄ້ດ client ທີ່ມີຢູ່ເຮັດວຽກໂດຍບໍ່ຕ້ອງປ່ຽນ. ພວກມັນບໍ່ປ່ຽນຄຳຕອບ. ເນື່ອງຈາກບໍ່ມີການເກັບການສົນທະນາ, ຄຳຮ້ອງຂໍຕິດຕາມຕ້ອງນຳຮອບກ່ອນໜ້າມາໃນ input.
ລາຍການ input
ລາຍການ input ແມ່ນຂໍ້ຄວາມ, ທີ່ມີ role ແລະ content, ຫຼື ລາຍການທີ່ມີປະເພດທີ່ນຳການເອີ້ນ tool ຫຼື ຜົນລັບຂອງມັນ. content ເປັນ string ຫຼື array ຂອງສ່ວນຕ່າງໆ.
| ລາຍການ | ຄຳອະທິບາຍ | ນຳໃຊ້ໂດຍ |
|---|---|---|
{"role": "user", "content": …} | ສິ່ງທີ່ທ່ານຖາມ. content ເປັນ string, ຫຼື ສ່ວນ input_text ແລະ input_image. | ທຸກ model |
{"role": "assistant", "content": …} | ຄຳຕອບກ່ອນໜ້ານີ້ຂອງ model. content ເປັນ string, ຫຼື ສ່ວນ output_text. | ທຸກ model |
{"role": "system", "content": …}{"role": "developer", "content": …} | ຄຳແນະນຳພາຍໃນການສົນທະນາ. | Hosted open-weight models |
{"type": "function_call", "call_id": "…", "name": "…", "arguments": "…"} | ການເອີ້ນ tool ທີ່ model ເຮັດໃນຄຳຕອບກ່ອນໜ້າ. arguments ເປັນ string JSON. | ທຸກ model |
{"type": "function_call_output", "call_id": "…", "output": "…"} | ຜົນລັບຂອງການເອີ້ນນັ້ນ. call_id ແມ່ນ id ຂອງການເອີ້ນ ແລະ output ແມ່ນຜົນລັບເປັນ string. | ທຸກ model |
ໃສ່ຄຳແນະນຳໃນຟີລດ໌ instructions. ກັບ id ໃນຕະກູນ Shannon 3, ໃຫ້ໃສ່ຄຳແນະນຳທີ່ຕ້ອງປະຕິບັດຕາມໄວ້ໃນຂໍ້ຄວາມ user.
ລາຍການຂອງ output ໃນຄຳຕອບສາມາດສົ່ງກັບເຂົ້າ input ຕາມທີ່ມັນເປັນ: ລາຍການ message ແລະ function_call ຖືກອ່ານ, ລາຍການ reasoning ຖືກຂ້າມ.
ສ່ວນຂອງເນື້ອຫາ
| ສ່ວນ | ຄຳອະທິບາຍ | ໃຊ້ໄດ້ກັບ |
|---|---|---|
{"type": "input_text", "text": "…"} | ຂໍ້ຄວາມຂອງຂໍ້ຄວາມ user. | ທຸກ model |
{"type": "output_text", "text": "…"} | ຂໍ້ຄວາມຂອງຂໍ້ຄວາມ assistant. | ທຸກ model |
{"type": "input_image", "image_url": "…"} | ຮູບພາບ, ເປັນ data: URL ທີ່ມີເນື້ອຫາ base64 ຫຼື ເປັນ URL http(s). | ຕະກູນ Shannon 3, shannon-1.6-lite, shannon-1.6-pro, ແລະ hosted open-weight models ທີ່ລະບຸ input ຮູບພາບ |
{"type": "input_file", "file_data": "data:application/pdf;base64,…"} | ເອກະສານ (PDF, Word, PowerPoint ຫຼື Excel): file_data ເກັບ data: URL, ຫຼື file_url ເກັບ URL http(s). | ຕະກູນ Shannon 3 |
ໃນລະດັບ Shannon ຮູບພາບ ແລະ ໄຟລ໌ຖືກອ່ານຈາກລາຍການ user ສຸດທ້າຍຂອງ input. ຂະໜາດ ແລະ ຂີດຈຳກັດມີໜ້າຂອງຕົນເອງ. ຮູບພາບ ແລະ ໄຟລ໌
ຄຳຮ້ອງຂໍທີ່ມີ instructions ແລະ options
ຄຳຮ້ອງຂໍນີ້ສົ່ງຄຳແນະນຳ, ການສົນທະນາເປັນລາຍການ input, ຂີດຈຳກັດ output, temperature ແລະ reasoning effort. ມັນໃຊ້ hosted open-weight model ເຊິ່ງນຳໃຊ້ທັງໝົດນີ້.
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 model ມີ id, object, model, created_at, status, output ແລະ usage. usage ຂອງມັນເພີ່ມ tokens ທີ່ອ່ານຈາກ cache ແລະ tokens ທີ່ໃຊ້ກັບ reasoning:
{
"usage": {
"input_tokens": 58,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 67,
"output_tokens_details": {
"reasoning_tokens": 19
},
"total_tokens": 125
}
} object ຂອງ response
id, object, status, output ແລະ usage ມີໃນທຸກຄຳຕອບ. ສ້າງໂຄ້ດຂອງທ່ານເທິງຟີລດ໌ເຫຼົ່ານັ້ນ.
| ຟີລດ໌ | ປະເພດ | ຄຳອະທິບາຍ | ສົ່ງໂດຍ |
|---|---|---|---|
id | string | resp_ ຕາມດ້ວຍຕົວອັກສອນເລກຖານສິບຫົກ 32 ຕົວ. | ທຸກ model |
object | string | ເປັນ response ສະເໝີ. | ທຸກ model |
status | string | completed. ໃນ stream ມັນເປັນ in_progress ກ່ອນ, ແລະ failed ໃນ event response.failed. | ທຸກ model |
output | array | ລາຍການ output ຕາມລຳດັບທີ່ model ສ້າງ: reasoning, message, function_call. | ທຸກ model |
usage | object | input_tokens, output_tokens ແລະ total_tokens. | ທຸກ model |
usage.input_tokens_details | object | cached_tokens: ຈຳນວນ input tokens ທີ່ອ່ານມາຈາກ prompt cache. | Hosted open-weight models |
usage.output_tokens_details | object | reasoning_tokens: ຈຳນວນ output tokens ທີ່ໃຊ້ໄປກັບການຄິດຫາເຫດຜົນ (reasoning). | Hosted open-weight models |
model | string | id ມາດຕະຖານຂອງ model ທີ່ຕອບ. | ຕະກູນ Shannon 3 ແລະ model open-weight ທີ່ host ໄວ້ |
created_at | integer | ເວລາຂອງຄຳຕອບ, ເປັນວິນາທີ Unix. | ຕະກູນ Shannon 3 ແລະ model open-weight ທີ່ host ໄວ້ |
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": "…"}]} | reasoning ຂອງ model ເປັນສ່ວນ summary_text ໜຶ່ງອັນ. ມີສະເພາະເມື່ອ model ໄດ້ຄິດຫາເຫດຜົນ. |
{"id": "msg_…", "type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "…"}]} | ຄຳຕອບ: ສ່ວນ output_text ໜຶ່ງອັນທີ່ມີຂໍ້ຄວາມ. |
{"id": "fc_…", "type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"} | ການເອີ້ນ tool. arguments ເປັນ string JSON. ສົ່ງຜົນລັບກັບຄືນດ້ວຍ call_id ດຽວກັນ. |
SDK ຂອງ OpenAI ຕໍ່ຂໍ້ຄວາມຂອງຂໍ້ຄວາມໃຫ້ທ່ານໃນ response.output_text.
Streaming
ຕັ້ງ stream ເປັນ true ເພື່ອຮັບ server-sent events. ແຕ່ລະ frame ມີແຖວ event: ທີ່ມີຊື່ຂອງ event ແລະ ແຖວ data: ທີ່ມີ object JSON; object ຊ້ຳຊື່ໃນ type. ຈັບຄູ່ delta ກັບລາຍການຂອງມັນດ້ວຍ output_index.
ກັບ SDK ຂອງ OpenAI, ອ່ານ event ຕາມ 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
}' event ມາຕາມລຳດັບນີ້. ກຸ່ມສຳລັບ reasoning, ຂໍ້ຄວາມ ແລະ ການເອີ້ນ tool ປາກົດສະເພາະເມື່ອຄຳຕອບມີມັນ.
| Event | Payload | ເມື່ອໃດ |
|---|---|---|
response.created | response | ເປັນອັນທຳອິດສະເໝີ. response.status ແມ່ນ in_progress ແລະ response.output ວ່າງ. |
response.in_progress | response | ເປັນອັນທີສອງສະເໝີ, ດ້ວຍ object ດຽວກັນ. |
response.output_item.added | output_index, item | reasoning ເລີ່ມ: ລາຍການ reasoning ທີ່ມີ summary ວ່າງ. |
response.reasoning_summary_text.delta | output_index, summary_index, delta | ສ່ວນໜຶ່ງຂອງ reasoning. |
response.reasoning_summary_text.done | output_index, summary_index, text | reasoning ສົມບູນ: text ທັງໝົດຂອງມັນ. |
response.output_item.done | output_index, item | ລາຍການ reasoning ທີ່ສຳເລັດແລ້ວ. |
response.output_item.added | output_index, item | ຄຳຕອບເລີ່ມ: ລາຍການ message ທີ່ມີ status 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 ທີ່ສຳເລັດແລ້ວ, ດ້ວຍ status completed. |
response.output_item.added | output_index, item | ການເອີ້ນ tool ເລີ່ມ: ລາຍການ function_call ທີ່ມີ call_id, name ແລະ arguments ວ່າງ. |
response.function_call_arguments.delta | output_index, delta | arguments ຂອງການເອີ້ນ, ຄົບຖ້ວນໃນ delta ດຽວ. |
response.function_call_arguments.done | output_index, arguments | arguments ດຽວກັນ, ເປັນ arguments. |
response.output_item.done | output_index, item | ລາຍການ function_call ທີ່ສຳເລັດແລ້ວ. |
response.completed | response | ເປັນອັນສຸດທ້າຍສະເໝີເມື່ອສຳເລັດ: object 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}, …}} stream ທີ່ລົ້ມເຫຼວ
ໃນລະດັບ Shannon ຄຳຕອບທີ່ລົ້ມເຫຼວຈົບດ້ວຍ response.failed ແທນ response.completed. response.status ຂອງມັນເປັນ failed ແລະ response.error ມີ code, rate_limit_exceeded ຫຼື server_error, ແລະ message.
ໃນ hosted open-weight models ຄວາມລົ້ມເຫຼວແມ່ນ event error ທີ່ມີ code api_error ແລະ message. response.completed ຍັງຕາມມາ.
ຖືວ່າ stream ລົ້ມເຫຼວເມື່ອມັນມີ event response.failed ຫຼື error, ແລະ ສົ່ງຄຳຮ້ອງຂໍອີກ.
Tools
tool ແມ່ນ function ທີ່ໂຄ້ດຂອງທ່ານຮັນ. ອະທິບາຍມັນໃນ tools; ເມື່ອ model ຕ້ອງການມັນ, ຄຳຕອບມີລາຍການ function_call ແທນ, ຫຼື ຄຽງຂ້າງ, ຂໍ້ຄວາມ.
ຄຳນິຍາມ tool ໃນ 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\"}"
}
] ຮັນ function, ແລ້ວສົ່ງຄຳຮ້ອງຂໍອີກໂດຍເພີ່ມການເອີ້ນ ແລະ ຜົນລັບຂອງມັນເຂົ້າໃນ 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\"}"
}
] ອ່ານສະເພາະ tool ປະເພດ function. ໃນ shannon-1.6-*, shannon-2-* ແລະ shannon-coder-1 schema parameters ຖືກຫຼຸດເຫຼືອ keyword ທົ່ວໄປຂອງ JSON Schema: oneOf ຖືກອ່ານເປັນ anyOf, ແລະ keyword ເຊັ່ນ $ref, additionalProperties, const, default ແລະ title ຈະບໍ່ຖືກສົ່ງໃຫ້ model.
ຄ່າ tool_choice required ແລະ function ທີ່ລະບຸຊື່ຖືກນຳໃຊ້ໂດຍ hosted open-weight models.
loop ຂອງ tool ຖືກອະທິບາຍຄົບຖ້ວນໃນໜ້າຂອງຕົນເອງ. ການເອີ້ນຟັງຊັນ
Structured output
ຮູບແບບນີ້ຂຽນ structured output ເປັນ text.format. schema ຢູ່ໂດຍກົງໃນ format, ຂ້າງ name ແລະ strict, ບໍ່ແມ່ນພາຍໃຕ້ສະມາຊິກ json_schema ຄືໃນ Chat Completions.
{"type": "json_object"}ຂໍ object JSON ໃດກໍໄດ້.{"type": "json_schema", "name", "schema", "strict"}ຂໍ JSON ທີ່ເປັນໄປຕາມ schema ຂອງທ່ານ.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 ຂອງຂໍ້ຄວາມ; ແຕກ (parse) ມັນເອງ. hosted open-weight model ທີ່ບໍ່ມີ structured output ສົ່ງ 400 ກັບຄືນ.
{"city": "Lisbon", "date": "2027-05-12"} model ໃດຮັບຮູບແບບໃດຖືກລາຍຊື່ໄວ້ໃນໜ້າຂອງຕົນເອງ. ຜົນອອກມີໂຄງສ້າງ
Reasoning
model ທີ່ຄິດຫາເຫດຜົນສົ່ງ reasoning ຂອງມັນເປັນລາຍການ output ປະເພດ reasoning, ກ່ອນຂໍ້ຄວາມ. ໃນ stream ມັນມາເປັນ event response.reasoning_summary_text.delta.
Hosted open-weight models ນຳໃຊ້ reasoning.effort: off, low, medium ຫຼື high, ແລະ ເປັນ high ເມື່ອທ່ານບໍ່ສົ່ງຫຍັງ. off ບໍ່ສົ່ງລາຍການ reasoning. ສົ່ງມັນເປັນ object; string ເປົ່າບໍ່ຖືກອ່ານໃນ endpoint ນີ້.
ແຕ່ລະ effort ຖືກອະທິບາຍໄວ້ໃນໜ້າຂອງຕົນເອງ. Reasoning effort
ຂີດຈຳກັດ output
max_output_tokens ແມ່ນ 4,096 ເມື່ອທ່ານບໍ່ສົ່ງມັນ. ມັນແມ່ນຈຳນວນ tokens ທີ່ກັນໄວ້ຈາກຍອດເງິນຂອງທ່ານເມື່ອຄຳຮ້ອງຂໍເລີ່ມ; ເມື່ອຄຳຕອບສົມບູນ, ຈຳນວນນັ້ນຖືກແທນທີ່ດ້ວຍສິ່ງທີ່ຄຳຮ້ອງຂໍໃຊ້. ຄ່າທີ່ບໍ່ພໍດີກັບຍອດເງິນທີ່ເຫຼືອຈະສົ່ງ 429 Quota exceeded ກັບຄືນ.
ມັນຈຳກັດຄວາມຍາວຂອງຄຳຕອບໃນ shannon-1.6-*, shannon-2-* ແລະ shannon-coder-1, ແລະ ຄວາມຍາວຂອງຂໍ້ຄວາມຄຳຕອບໃນ hosted open-weight models.
ໃນ endpoint ນີ້ shannon-coder-1 ຖືກຄິດເງິນເປັນ tokens ຈາກຍອດເງິນຂອງທ່ານ, ຄືກັບ model ອື່ນທັງໝົດ.
body ຂອງຄຳຮ້ອງຂໍໃຫຍ່ໄດ້ເຖິງ 32 MiB. ຂີດຈຳກັດ ແລະ ຍອດເງິນ
ຂໍ້ຜິດພາດ
ຂໍ້ຜິດພາດໃຊ້ body ຂໍ້ຜິດພາດຂອງ OpenAI: object error ທີ່ມີ type ແລະ message; ບາງອັນມີ code ແລະ param ທີ່ມີຄ່າ null ນຳ. ຕາຕະລາງລາຍຊື່ສິ່ງທີ່ endpoint ນີ້ສົ່ງກັບເລື້ອຍທີ່ສຸດ. ລາຍຊື່ເຕັມ, ພ້ອມສິ່ງທີ່ຄວນລອງໃໝ່, ມີໜ້າຂອງຕົນເອງ. ການຈັດການຂໍ້ຜິດພາດ
| Status | ປະເພດ | ຂໍ້ຄວາມ | ເມື່ອໃດ |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | ບໍ່ໄດ້ສົ່ງ API key, ຫຼື key ບໍ່ຮູ້ຈັກ ຫຼື ຖືກຖອນແລ້ວ. |
400 | invalid_request_error | unknown model: <id> | ຂາດ model ຫຼື ບໍ່ແມ່ນ id ທີ່ເຜີຍແຜ່. |
400 | invalid_request_error | No user message provided. | ລະດັບ Shannon: input ບໍ່ມີຂໍ້ຄວາມຂອງ user. |
400 | invalid_request_error | <id> does not accept image input | ສົ່ງຮູບພາບໄປຫາ hosted open-weight model ທີ່ບໍ່ຮັບ input ຮູບພາບ. |
400 | invalid_request_error | <id> does not accept response_format | ສົ່ງ text.format ໄປຫາ hosted open-weight model ທີ່ບໍ່ຮອງຮັບ structured output (ຜົນລັບແບບມີໂຄງສ້າງ). |
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: … | body ເປັນ 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. | model ບໍ່ໄດ້ສ້າງຄຳຕອບ. ສົ່ງຄຳຮ້ອງຂໍອີກ. |
502 | api_error | The model backend failed to answer. Please retry. | ເຊັ່ນດຽວກັນ, ສຳລັບ model open-weight ທີ່ host ໄວ້. |
504 | api_error | upstream timed out | hosted open-weight model ໃຊ້ເວລາດົນກວ່າຂີດຈຳກັດເວລາຂອງຄຳຕອບທີ່ບໍ່ stream. ສົ່ງມັນດ້ວຍ stream ທີ່ຕັ້ງເປັນ true. |