Chat Completions
Mae POST /v1/chat/completions yn cymryd sgwrs ac yn dychwelyd neges nesaf y model yn fformat OpenAI Chat Completions. Defnyddiwch ef o unrhyw SDK OpenAI neu dros HTTP plaen; y dudalen hon yw'r cyfeirnod maes wrth faes.
POST https://api.shannon-ai.com/v1/chat/completions
Y cais lleiaf yw id model ac un neges defnyddiwr.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1",
)
response = client.chat.completions.create(
model="shannon-3",
messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
print(response.choices[0].message.content) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(response.choices[0].message.content); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}' Un gwrthrych JSON yw'r ateb:
{
"id": "chatcmpl-5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
"object": "chat.completion",
"created": 1791625200,
"model": "shannon-3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello, it is good to meet you.",
"reasoning_content": "The user wants a greeting in one sentence. Keep it short and friendly."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1184,
"completion_tokens": 46,
"total_tokens": 1230
}
} Penawdau
Penawdau'r cais
| Pennawd | Gwerth | Disgrifiad |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Eich allwedd API. Derbynnir x-api-key: YOUR_API_KEY yn ei lle ar bob pwynt terfyn. |
Content-Type | application/json | Gofynnol. Mae unrhyw werth arall yn dychwelyd 415. |
x-request-id | Dewisol. Eich id eich hun ar gyfer y cais. Daw yn ôl heb ei newid ar yr ateb. |
Penawdau'r ateb
| Pennawd | Disgrifiad |
|---|---|
x-request-id | Ar bob ateb, gwallau a ffrydiau yn gynwysedig: y gwerth a anfonwyd gennych, neu 12 nod hecsadegol pan na anfonoch yr un. Dyfynnwch ef pan fyddwch yn adrodd problem. |
content-type | application/json, neu text/event-stream pan fo stream yn true. |
Meysydd y cais
Dim ond messages sy'n ofynnol. Mae'r golofn Yn cael ei gymhwyso gan yn enwi'r modelau lle mae maes yn newid yr ateb. Y modelau pwysau agored a gynhelir yw deuddeg id y rhestr fodelau; teulu Shannon 3 yw shannon-3, shannon-3-pro, shannon-3.1 a shannon-3.1-pro. Modelau a phrisiau
| Maes | Math | Rhagosodiad | Disgrifiad | Yn cael ei gymhwyso gan |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Y model sy'n ateb: id o'r rhestr fodelau. Anfonwch ef gyda phob cais. Nid yw'r paru yn sensitif i briflythrennau. Mae id nad yw wedi'i gyhoeddi yn dychwelyd 400 unknown model. | Pob model |
messages | array | Gofynnol. Y sgwrs, y neges hynaf yn gyntaf. Gweler Negeseuon isod. | Pob model | |
stream | boolean | false | Mae true yn anfon yr ateb fel digwyddiadau a anfonir gan y gweinydd wrth iddo gael ei ysgrifennu. | Pob model |
max_tokens | integer | 4096 | Terfyn uchaf yr ateb, mewn tokenau. Symudir gwerth y tu allan i 1 i 65,536 i mewn i'r ystod honno. Hefyd dyma'r swm a neilltuir o'ch balans tra bydd y cais yn rhedeg. Gweler Hyd yr allbwn isod. | Modelau pwysau agored a gynhelir, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Yr un peth â max_tokens. Pan anfonir y ddau, defnyddir max_tokens. | Modelau pwysau agored a gynhelir, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Tymheredd samplu. Ar y modelau pwysau agored a gynhelir y rhagosodiad yw 1 a chedwir y gwerthoedd rhwng 0 a 2. | Modelau pwysau agored a gynhelir, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Samplu cnewyllyn. Cedwir y gwerthoedd rhwng 0 ac 1. | Modelau pwysau agored a gynhelir |
seed | integer | Hedyn y samplwr, unrhyw gyfanrif. Hebddo, deilliodd yr hedyn o'r model a'r sgwrs, felly mae'r un cais a anfonir ddwywaith yn defnyddio'r un hedyn. | Modelau pwysau agored a gynhelir | |
stop | string | array | Llinyn neu arae o linynnau. Defnyddir hyd at 4. Daw'r ateb i ben cyn y cyntaf sy'n ymddangos; ni ddychwelir testun y stop ei hun. | Modelau pwysau agored a gynhelir | |
reasoning_effort | string | high | Faint mae'r model yn rhesymu cyn iddo ateb: off, low, medium neu high. Mae none a minimal yn golygu off, mae default yn golygu medium, mae max yn golygu high. Mae unrhyw werth arall yn dychwelyd 400. | Modelau pwysau agored a gynhelir |
reasoning | object | Yr un gosodiad ar ffurf gwrthrych: {"effort": "low"}. Pan anfonir y ddau, defnyddir reasoning_effort. | Modelau pwysau agored a gynhelir | |
tools | array | Y ffwythiannau y caiff y model eu galw, pob un fel {"type": "function", "function": {"name", "description", "parameters"}}. Daw galwadau'r model yn ôl yn tool_calls; mae eich cod yn eu rhedeg. | Pob model | |
tool_choice | string | object | auto | Mae "auto" yn gadael i'r model benderfynu. Mae "required" yn gwneud iddo alw offeryn. Mae {"type": "function", "function": {"name": "…"}} yn gwneud iddo alw'r offeryn hwnnw. | Modelau pwysau agored a gynhelir |
response_format | object | {"type": "json_object"} ar gyfer ateb JSON, neu {"type": "json_schema", "json_schema": {…}} ar gyfer ateb sy'n dilyn eich sgema. | Pob haen Shannon; modelau pwysau agored a gynhelir fel y rhestrir fesul id | |
web_search | boolean | false | Mae true yn gadael i'r model chwilio'r we cyn iddo ateb. | shannon-1.6-*, shannon-2-*, teulu Shannon 3 |
Derbynnir meysydd OpenAI eraill, megis n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store a prompt_cache_key, fel bod cod cleient presennol yn rhedeg heb newid. Nid ydynt yn newid yr ateb: mae un dewis bob amser, ac mae ffrwd bob amser yn gorffen gyda'r defnydd.
Mae maes â'r math JSON anghywir, er enghraifft "max_tokens": "100", yn dychwelyd 422. Felly hefyd cais heb messages.
Mae gan offer, allbwn strwythuredig, rhesymu a chwilio'r we eu tudalen eu hunain: Galw swyddogaeth, Allbynnau strwythuredig, Ymdrech rhesymu, Chwilio gwe.
Cais gyda dewisiadau
Mae'r cais hwn yn gosod neges system, y meysydd samplu a'r ymdrech rhesymu. Mae'n defnyddio model pwysau agored a gynhelir, sy'n cymhwyso pob un ohonynt.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1",
)
response = client.chat.completions.create(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
messages=[
{"role": "system", "content": "You are a physics teacher. Answer in two sentences."},
{"role": "user", "content": "Why is the sky blue?"},
],
max_tokens=512,
temperature=0.3,
top_p=0.9,
seed=7,
stop=["\n\n"],
reasoning_effort="low",
)
message = response.choices[0].message
print(message.reasoning_content) # the reasoning
print(message.content) # the answer
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.chat.completions.create({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
messages: [
{ role: "system", content: "You are a physics teacher. Answer in two sentences." },
{ role: "user", content: "Why is the sky blue?" },
],
max_tokens: 512,
temperature: 0.3,
top_p: 0.9,
seed: 7,
stop: ["\n\n"],
reasoning_effort: "low",
});
const message = response.choices[0].message;
console.log(message.reasoning_content); // the reasoning
console.log(message.content); // the answer
console.log(response.usage); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"messages": [
{"role": "system", "content": "You are a physics teacher. Answer in two sentences."},
{"role": "user", "content": "Why is the sky blue?"}
],
"max_tokens": 512,
"temperature": 0.3,
"top_p": 0.9,
"seed": 7,
"stop": ["\n\n"],
"reasoning_effort": "low"
}' Mae gan yr ateb yr un ffurf â'r uchod. Mae ei usage yn ychwanegu dau fanylyn ar y modelau pwysau agored a gynhelir: y tokenau prompt a ddarllenwyd o'r cache a'r tokenau a wariwyd ar resymu.
{
"usage": {
"prompt_tokens": 31,
"completion_tokens": 62,
"total_tokens": 93,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 21
}
}
} Hyd yr allbwn
Mae max_tokens yn gwneud dau beth. Yn gyntaf, dyma nifer y tokenau a neilltuir o'ch balans pan fydd y cais yn dechrau. Pan fydd yr ateb yn gyflawn, caiff y swm hwnnw ei ddisodli gan y tokenau a ddefnyddiodd y cais. Os yw max_tokens yn fwy na'r hyn sydd ar ôl o'ch balans, mae'r cais yn dychwelyd 429 Quota exceeded hyd yn oed pe bai'r ateb ei hun wedi ffitio. Anfonwch max_tokens is i neilltuo llai.
Cyfrifir shannon-coder-1 yn wahanol ar y pwynt terfyn hwn: mae pob cais yn un o alwadau Shannon Coder eich cynllun, ac ni neilltuir tokenau ar ei gyfer. Terfynau a balans
Yn ail, mae'n cyfyngu hyd yr ateb ar y modelau hyn:
| Modelau | Beth mae max_tokens yn ei wneud |
|---|---|
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Mae'r ateb yn stopio pan fydd yn cyrraedd y terfyn. Yna mae ffrwd yn gorffen gyda finish_reason length. |
| Modelau pwysau agored a gynhelir | Mae testun yr ateb yn stopio ar max_tokens. Ni chyfrifir rhesymu yn ei erbyn. Mae gwerthoedd o dan 256 yn gweithredu fel 256. |
Heb max_tokens na max_completion_tokens, y gwerth yw 4,096. Ar shannon-coder-1 mae'n 65,536.
Negeseuon
Mae pob neges yn wrthrych gyda role a content. Mae content yn llinyn, neu'n arae o rannau pan fo'r neges yn cario mwy na thestun.
| Rôl | Disgrifiad | Yn cael ei gymhwyso gan |
|---|---|---|
system | Cyfarwyddiadau i'r model. Rhowch ef yn gyntaf. Ar haenau Shannon y neges system gyntaf yw'r un a ddefnyddir. | Modelau pwysau agored a gynhelir, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Darllenir fel system. | Modelau pwysau agored a gynhelir |
user | Yr hyn rydych yn ei ofyn. Ar haenau Shannon y neges user olaf yw'r prompt a'r negeseuon o'i blaen yw'r hanes. | Pob model |
assistant | Atebion cynharach y model. Cadwch ei tool_calls pan anfonwch ganlyniad offeryn ar ei ôl. | Pob model |
tool | Canlyniad galwad offeryn: mae tool_call_id yn dal id yr alwad ac mae content yn dal y canlyniad fel llinyn. | Pob model |
Gydag id o deulu Shannon 3, rhowch gyfarwyddiadau y mae'n rhaid iddynt ddal yn y neges user.
Ar haenau Shannon mae cais heb destun defnyddiwr a heb tools yn dychwelyd 400 No user message provided.
Rhannau cynnwys
| Rhan | Disgrifiad | Ar gael ar |
|---|---|---|
{"type": "text", "text": "…"} | Testun plaen. | Pob model |
{"type": "image_url", "image_url": {"url": "…"}} | Delwedd, fel URL data: gyda chynnwys base64 neu fel URL http(s). | Teulu Shannon 3, shannon-1.6-lite, shannon-1.6-pro, a'r modelau pwysau agored a gynhelir sy'n rhestru mewnbwn delweddau |
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Dogfen (PDF, Word, PowerPoint neu Excel), fel base64 neu drwy URL. | Teulu Shannon 3 |
Mae gan feintiau, terfynau a'r rhestr lawn o ffurfiau eu tudalen eu hunain. Delweddau a ffeiliau
Gwrthrych yr ateb
| Maes | Math | Disgrifiad |
|---|---|---|
id | string | chatcmpl- ac yna 32 nod hecsadegol. |
object | string | Bob amser chat.completion. |
created | integer | Amser yr ateb, mewn eiliadau Unix. |
model | string | Id canonaidd y model a atebodd. Gall fod yn wahanol o ran sillafu i'r id a anfonoch. |
choices | array | Bob amser un dewis yn union, gydag index 0. |
choices[0].message.role | string | Bob amser assistant. |
choices[0].message.content | string | null | Testun yr ateb. Gyda tool_calls mae'n null ar haenau Shannon; gall y modelau pwysau agored a gynhelir anfon testun wrth ymyl y galwadau. |
choices[0].message.reasoning_content | string | null | Y rhesymu a ysgrifennodd y model cyn yr ateb, neu null pan nad oes un. |
choices[0].message.tool_calls | array | Yn bresennol dim ond pan fo'r model yn galw offer. Mae gan bob cofnod id, type function, a function gyda'r name a'r arguments fel llinyn JSON. |
choices[0].message.annotations | array | Dim ond ar gais gyda web_search: true y daeth ei chwiliad o hyd i rywbeth. Un url_citation ar gyfer pob ffynhonnell y mae marciwr yn content yn ei henwi, gydag url, title, start_index ac end_index (safle'r marciwr, wedi'i gyfrif mewn nodau, heb gynnwys y diwedd). |
choices[0].finish_reason | string | Pam y daeth yr ateb i ben. Gweler Rhesymau gorffen. |
usage | object | Tokenau'r cais. Gweler Defnydd. |
sources | array | Dim ond ar gais gyda web_search: true y daeth ei chwiliad o hyd i rywbeth: y canlyniadau a roddwyd i'r model, pob un gydag index, title ac url. Mae [1] yn yr ateb yn gofnod gydag index 1. |
Rhesymau gorffen
| finish_reason | Disgrifiad |
|---|---|
stop | Gorffennodd y model ei ateb, neu ymddangosodd llinyn stop. |
tool_calls | Mae'r model yn galw un neu fwy o offer. Rhedwch nhw ac anfonwch y canlyniadau mewn negeseuon tool. |
length | Torrwyd yr ateb ar y terfyn allbwn. Adroddir ar ffrydiau shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 a theulu Shannon 3. |
Mae ateb nad yw wedi'i ffrydio yn adrodd stop neu tool_calls.
Defnydd
| Maes | Math | Disgrifiad | Ar gael ar |
|---|---|---|---|
usage.prompt_tokens | integer | Tokenau mewnbwn. | Pob model |
usage.completion_tokens | integer | Tokenau allbwn: rhesymu, ateb a galwadau offer gyda'i gilydd. | Pob model |
usage.total_tokens | integer | prompt_tokens ynghyd â completion_tokens. | Pob model |
usage.prompt_tokens_details.cached_tokens | integer | Y rhan o prompt_tokens a ddarllenwyd o'r cache prompt. | Modelau pwysau agored a gynhelir |
usage.completion_tokens_details.reasoning_tokens | integer | Y rhan o completion_tokens a wariwyd ar resymu. | Modelau pwysau agored a gynhelir |
Ar y modelau pwysau agored a gynhelir, prompt_tokens yw eich negeseuon a'ch diffiniadau offer wedi'u cyfrif â thokeneiddiwr y model ei hun, ynghyd â thokenau unrhyw ddelweddau. Mae'r pwyntiau terfyn cyfrif tokenau yn dychwelyd yr un rhif cyn i chi anfon. Cyfrif tokenau
Ar haenau Shannon, mae prompt_tokens yn cyfrif popeth a ddarllenodd y model i ysgrifennu'r ateb, felly mae'n fwy na thestun eich negeseuon yn unig.
Ffrydio
Gyda stream wedi'i osod i true mae'r ateb yn cyrraedd fel digwyddiadau chat.completion.chunk ac yn gorffen gyda data: [DONE]. Mae'r talp olaf o'i flaen yn cario finish_reason a usage; nid oes angen stream_options. Mae gan ffurfiau'r talpiau, llinellau cadw'n fyw a gwallau y tu mewn i ffrwd eu tudalen eu hunain. Ffrydio
Gwallau
Gwrthrych JSON gydag aelod error yw gwall. Mae'r gwiriadau'n rhedeg yn y drefn hon: allwedd API, corff y cais, id y model, yna balans. Mae'r tabl yn rhestru'r hyn y mae'r pwynt terfyn hwn yn ei ddychwelyd amlaf. Mae gan y rhestr lawn, gyda'r hyn i'w ailgeisio, ei thudalen ei hun. Rheoli gwallau
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Statws | Math | Neges | Pryd |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Ni anfonwyd allwedd API, neu mae'r allwedd yn anhysbys neu wedi'i dirymu. |
400 | invalid_request_error | unknown model: <id> | Nid yw model yn id cyhoeddedig. |
400 | invalid_request_error | No user message provided | Haenau Shannon: nid oes gan y cais destun defnyddiwr na tools. |
400 | invalid_request_error | <id> does not accept image input | Anfonwyd rhan delwedd at fodel pwysau agored a gynhelir heb fewnbwn delweddau. |
400 | invalid_request_error | <id> does not accept response_format | Anfonwyd response_format at fodel pwysau agored a gynhelir heb allbwn strwythuredig. |
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Mae reasoning_effort yn dal gwerth y tu allan i'r rhestr. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | Mae messages ar goll, neu mae gan faes y math JSON anghywir. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | Mae max_tokens yn fwy na'r hyn sydd ar ôl o'ch balans. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Amddiffyniad rhag llifogydd: mwy na 120 o geisiadau mewn un munud ar eich cyfrif. |
500 | server_error | The model backend failed to answer. Please retry. | Ni chynhyrchodd y model ateb. Anfonwch y cais eto. |
502 | api_error | The model backend failed to answer. Please retry. | Yr un peth, ar deulu Shannon 3 a'r modelau pwysau agored a gynhelir. |