අන්තර්ගතයට යන්න
Chat Completions

Chat Completions

POST /v1/chat/completions සංවාදයක් ගෙන model එකේ ඊළඟ පණිවිඩය OpenAI Chat Completions format එකෙන් ආපසු දෙයි. එය ඕනෑම OpenAI SDK එකකින් හෝ සරල HTTP හරහා භාවිතා කරන්න; මෙම පිටුව field-by-field යොමුවයි.

POST https://api.shannon-ai.com/v1/chat/completions

කුඩාම ඉල්ලීම යනු model id එකක් සහ එක user පණිවිඩයකි.

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)

පිළිතුර එක JSON object එකකි:

200 JSON
{
  "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
  }
}

Headers

ඉල්ලීම් headers

Header අගය විස්තරය
Authorization Bearer YOUR_API_KEY ඔබේ API key එක. සෑම endpoint එකකම එය වෙනුවට x-api-key: YOUR_API_KEY පිළිගනී.
Content-Type application/json අවශ්‍යයි. වෙනත් ඕනෑම අගයකට 415 ලැබේ.
x-request-id විකල්ප. ඉල්ලීම සඳහා ඔබේම id එක. එය පිළිතුරේ වෙනස් නොවී ආපසු එයි.

පිළිතුරු headers

Header විස්තරය
x-request-id දෝෂ සහ streams ඇතුළුව සෑම පිළිතුරකම: ඔබ යැවූ අගය, නැතහොත් ඔබ කිසිවක් නොයැවූ විට hexadecimal අක්ෂර 12ක්. ගැටලුවක් වාර්තා කරන විට එය සඳහන් කරන්න.
content-type application/json, නැතහොත් stream true වන විට text/event-stream.

ඉල්ලීම් fields

අවශ්‍ය වන්නේ messages පමණි. Applied by තීරුවේ field එකක් පිළිතුර වෙනස් කරන models නම් කර ඇත. අපගේ සේවාදායකවල ධාවනය වන open-weight models යනු model ලැයිස්තුවේ ඇති id දොළහයි; Shannon 3 පවුල යනු shannon-3, shannon-3-pro, shannon-3.1 සහ shannon-3.1-pro ය. Models සහ මිල ගණන්

Field වර්ගය පෙරනිමිය විස්තරය ක්‍රියාත්මක කරන්නේ
model string shannon-1.6-lite පිළිතුරු දෙන model එක: model ලැයිස්තුවේ id එකක්. එය සෑම ඉල්ලීමක්ම සමඟ යවන්න. ගැලපීම case-sensitive නොවේ. ප්‍රකාශිත නොවන id එකකට 400 unknown model ලැබේ. සියලු models
messages array අවශ්‍යයි. සංවාදය, පැරණිම පණිවිඩය පළමුව. පහත Messages බලන්න. සියලු models
stream boolean false true මගින් පිළිතුර ලියැවෙන අතරතුර server-sent events ලෙස යවයි. සියලු models
max_tokens integer 4096 පිළිතුරේ ඉහළ සීමාව, tokens වලින්. 1 සිට 65,536 දක්වා පරාසයෙන් පිටත අගයක් එම පරාසයට ගෙන එනු ලැබේ. ඉල්ලීම ධාවනය වන අතරතුර ඔබේ ශේෂයෙන් වෙන් කර තබන ප්‍රමාණය ද එයයි. පහත Output length බලන්න. අපගේ සේවාදායකවල ධාවනය වන open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens හා සමානයි. දෙකම යවන විට max_tokens භාවිතා වේ. අපගේ සේවාදායකවල ධාවනය වන open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling temperature. අපගේ සේවාදායකවල ධාවනය වන open-weight models මත පෙරනිමිය 1 වන අතර අගයන් 0 සහ 2 අතර තබා ගනී. අපගේ සේවාදායකවල ධාවනය වන open-weight models, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. අගයන් 0 සහ 1 අතර තබා ගනී. අපගේ සේවාදායකවල ධාවනය වන open-weight models
seed integer Sampler එකේ seed එක, ඕනෑම පූර්ණ සංඛ්‍යාවක්. එය නොමැති විට, seed එක model එකෙන් සහ සංවාදයෙන් ව්‍යුත්පන්න කෙරේ, එබැවින් එකම ඉල්ලීම දෙවරක් යැවූ විට එකම seed එක භාවිතා වේ. අපගේ සේවාදායකවල ධාවනය වන open-weight models
stop string | array String එකක් හෝ strings array එකක්. 4ක් දක්වා භාවිතා වේ. පිළිතුර අවසන් වන්නේ මතු වන පළමු එකට පෙරය; stop පෙළ ආපසු නොදෙයි. අපගේ සේවාදායකවල ධාවනය වන open-weight models
reasoning_effort string high පිළිතුරු දීමට පෙර model එක කොතරම් තර්ක කරයිද: off, low, medium හෝ high. none සහ minimal යනු off ය, default යනු medium ය, max යනු high ය. වෙනත් ඕනෑම අගයකට 400 ලැබේ. අපගේ සේවාදායකවල ධාවනය වන open-weight models
reasoning object එම සැකසුමම object ආකාරයෙන්: {"effort": "low"}. දෙකම යවන විට reasoning_effort භාවිතා වේ. අපගේ සේවාදායකවල ධාවනය වන open-weight models
tools array Model එකට call කළ හැකි functions, ඒ සෑම එකක්ම {"type": "function", "function": {"name", "description", "parameters"}} ලෙස. Model එකේ calls tool_calls හි ආපසු එයි; ඒවා ක්‍රියාත්මක කරන්නේ ඔබේ code එකයි. සියලු models
tool_choice string | object auto "auto" model එකට තීරණය කිරීමට ඉඩ දෙයි. "required" tool එකක් call කිරීමට සලස්වයි. {"type": "function", "function": {"name": "…"}} එම tool එක call කිරීමට සලස්වයි. අපගේ සේවාදායකවල ධාවනය වන open-weight models
response_format object JSON පිළිතුරක් සඳහා {"type": "json_object"}, නැතහොත් ඔබේ schema එක අනුගමනය කරන පිළිතුරක් සඳහා {"type": "json_schema", "json_schema": {…}}. සියලු Shannon tiers; අපගේ සේවාදායකවල ධාවනය වන open-weight models id එකකට ලැයිස්තුගත කළ පරිදි
web_search boolean false true මගින් model එකට පිළිතුරු දීමට පෙර වෙබ් එක සෙවීමට ඉඩ දෙයි. shannon-1.6-*, shannon-2-*, Shannon 3 පවුල

n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store සහ prompt_cache_key වැනි අනෙකුත් OpenAI fields, දැනට ඇති client code වෙනසක් නොමැතිව ක්‍රියා කිරීම සඳහා පිළිගනී. ඒවා පිළිතුර වෙනස් නොකරයි: සෑම විටම එක choice එකක් පමණක් ඇති අතර, stream එකක් සෑම විටම usage සමඟ අවසන් වේ.

වැරදි JSON type එකක් ඇති field එකකට, උදාහරණයක් ලෙස "max_tokens": "100", 422 ලැබේ. messages නැති ඉල්ලීමකට ද එසේමය.

Tools, ව්‍යුහගත output, තර්කනය සහ web search වලට එකිනෙකට තමන්ගේම පිටුවක් ඇත: කාර්ය කැඳවීම, ව්‍යුහගත ප්‍රතිදාන, Reasoning effort, වෙබ් සෙවීම.

විකල්ප සහිත ඉල්ලීමක්

මෙම ඉල්ලීම system පණිවිඩයක්, sampling fields සහ reasoning effort එක සකසයි. එය ඒ සියල්ල ක්‍රියාත්මක කරන, අපගේ සේවාදායකවල ධාවනය වන open-weight model එකක් භාවිතා කරයි.

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)

පිළිතුරේ හැඩය ඉහත පරිදිමය. අපගේ සේවාදායකවල ධාවනය වන open-weight models මත එහි usage විස්තර දෙකක් එකතු කරයි: cache එකෙන් කියවූ prompt tokens සහ තර්කනයට වැය වූ tokens.

200 JSON
{
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 62,
    "total_tokens": 93,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 21
    }
  }
}

Output දිග

max_tokens දේවල් දෙකක් කරයි. පළමුව, ඉල්ලීම ආරම්භ වන විට ඔබේ ශේෂයෙන් වෙන් කර තබන tokens ගණන එයයි. පිළිතුර සම්පූර්ණ වූ විට, එම ප්‍රමාණය ඉල්ලීම භාවිතා කළ tokens මගින් ප්‍රතිස්ථාපනය වේ. max_tokens ඔබේ ශේෂයේ ඉතිරි ප්‍රමාණයට වඩා විශාල නම්, පිළිතුරම ඊට ඇතුළත් වුවත් ඉල්ලීමට 429 Quota exceeded ලැබේ. අඩුවෙන් වෙන් කිරීමට අඩු max_tokens යවන්න.

මෙම endpoint හි shannon-coder-1 වෙනස් ලෙස ගණන් කෙරේ: සෑම ඉල්ලීමක්ම ඔබේ සැලසුමේ Shannon Coder calls වලින් එකක් වන අතර ඒ සඳහා tokens වෙන් කර නොතබයි. සීමා සහ ශේෂය

දෙවනුව, එය මෙම models මත පිළිතුරේ දිග සීමා කරයි:

Models max_tokens කරන්නේ කුමක්ද
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 සීමාවට ළඟා වූ විට පිළිතුර නතර වේ. ඉන්පසු stream එක finish_reason length සමඟ අවසන් වේ.
අපගේ සේවාදායකවල ධාවනය වන open-weight models පිළිතුරේ පෙළ max_tokens හිදී නතර වේ. තර්කනය ඊට ගණන් ගන්නේ නැත. 256ට අඩු අගයන් 256 ලෙස ක්‍රියා කරයි.

max_tokens හෝ max_completion_tokens නොමැතිව අගය 4,096 වේ. shannon-coder-1 මත එය 65,536 වේ.

පණිවිඩ

සෑම පණිවිඩයක්ම role එකක් සහ content එකක් ඇති object එකකි. content යනු string එකක්, නැතහොත් පණිවිඩය පෙළට වඩා යමක් රැගෙන යන විට කොටස් array එකකි.

Role විස්තරය ක්‍රියාත්මක කරන්නේ
system Model එක සඳහා උපදෙස්. එය මුලින්ම තබන්න. Shannon tiers මත භාවිතා වන්නේ පළමු system පණිවිඩයයි. අපගේ සේවාදායකවල ධාවනය වන open-weight models, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system ලෙස කියවයි. අපගේ සේවාදායකවල ධාවනය වන open-weight models
user ඔබ අසන දේ. Shannon tiers මත අවසාන user පණිවිඩය prompt එක වන අතර එයට පෙර පණිවිඩ ඉතිහාසයයි. සියලු models
assistant Model එකේ පෙර පිළිතුරු. ඉන් පසුව tool ප්‍රතිඵලයක් යවන විට එහි tool_calls තබා ගන්න. සියලු models
tool Tool call එකක ප්‍රතිඵලය: tool_call_id හි call එකේ id එක ද content හි ප්‍රතිඵලය string එකක් ලෙස ද ඇත. සියලු models

Shannon 3 පවුලේ id එකක් සමඟ, අනිවාර්යයෙන් පිළිපැදිය යුතු උපදෙස් user පණිවිඩයට ඇතුළත් කරන්න.

Shannon tiers මත user පෙළක් සහ tools නැති ඉල්ලීමකට 400 No user message provided ලැබේ.

අන්තර්ගත කොටස්

කොටස විස්තරය ලබා ගත හැක්කේ
{"type": "text", "text": "…"} සරල පෙළ. සියලු models
{"type": "image_url", "image_url": {"url": "…"}} රූපයක්, base64 අන්තර්ගතය සහිත data: URL එකක් ලෙස හෝ http(s) URL එකක් ලෙස. Shannon 3 පවුල, shannon-1.6-lite, shannon-1.6-pro, සහ රූප ආදානය ලැයිස්තුගත කරන, අපගේ සේවාදායකවල ධාවනය වන open-weight models
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} ලේඛනයක් (PDF, Word, PowerPoint හෝ Excel), base64 ලෙස හෝ URL එකකින්. Shannon 3 පවුල

ප්‍රමාණ, සීමා සහ ආකාර සියල්ලේ සම්පූර්ණ ලැයිස්තුවට තමන්ගේම පිටුවක් ඇත. රූප සහ ගොනු

පිළිතුරු object එක

Field වර්ගය විස්තරය
id string chatcmpl- ට පසුව hexadecimal අක්ෂර 32ක්.
object string සෑම විටම chat.completion.
created integer පිළිතුරේ වේලාව, Unix තත්පරවලින්.
model string පිළිතුරු දුන් model එකේ canonical id එක. එහි අකුරු වින්‍යාසය ඔබ යැවූ id එකෙන් වෙනස් විය හැක.
choices array සෑම විටම හරියටම එක choice එකක්, index 0 සහිතව.
choices[0].message.role string සෑම විටම assistant.
choices[0].message.content string | null පිළිතුරේ පෙළ. tool_calls සමඟ Shannon tiers මත එය null වේ; අපගේ සේවාදායකවල ධාවනය වන open-weight models වලට calls අසල පෙළ යැවිය හැක.
choices[0].message.reasoning_content string | null Model එක පිළිතුරට පෙර ලියූ තර්කනය, නැතහොත් එකක් නැති විට null.
choices[0].message.tool_calls array Model එක tools call කරන විට පමණක් ඇත. සෑම entry එකකටම id, type function, සහ name සහ JSON string එකක් ලෙස arguments සහිත function ඇත.
choices[0].message.annotations array web_search: true සහිත, සෙවීමෙන් යමක් සොයාගත් ඉල්ලීමක දී පමණි. content තුළ සලකුණකින් නම් කරන සෑම මූලාශ්‍රයකටම එක් url_citation බැගින්, url, title, start_index සහ end_index සමඟ (සලකුණේ පිහිටීම, අක්ෂර වලින් ගණන් කර, අවසානය ඇතුළත් නොවේ).
choices[0].finish_reason string පිළිතුර අවසන් වූ හේතුව. අවසන් වීමේ හේතු බලන්න.
usage object ඉල්ලීමේ tokens. භාවිතය (Usage) බලන්න.
sources array web_search: true සහිත, සෙවීමෙන් යමක් සොයාගත් ඉල්ලීමක දී පමණි: model එකට දුන් ප්‍රතිඵල, සෑම එකකටම index, title සහ url සමඟ. පිළිතුරේ [1] යනු index 1 ඇති ඇතුළත් කිරීමයි.

අවසන් වීමේ හේතු

finish_reason විස්තරය
stop Model එක තම පිළිතුර අවසන් කළා, නැතහොත් stop string එකක් මතු විය.
tool_calls Model එක tools එකක් හෝ කිහිපයක් call කරයි. ඒවා ක්‍රියාත්මක කර ප්‍රතිඵල tool පණිවිඩවල යවන්න.
length පිළිතුර output සීමාවේදී කපා හරින ලදී. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 සහ Shannon 3 පවුලේ streams වල වාර්තා කෙරේ.

Stream නොකළ පිළිතුරක් stop හෝ tool_calls වාර්තා කරයි.

භාවිතය (Usage)

Field වර්ගය විස්තරය ලබා ගත හැක්කේ
usage.prompt_tokens integer Input tokens. සියලු models
usage.completion_tokens integer Output tokens: තර්කනය, පිළිතුර සහ tool calls එකට. සියලු models
usage.total_tokens integer prompt_tokens එකතු completion_tokens. සියලු models
usage.prompt_tokens_details.cached_tokens integer Prompt cache එකෙන් කියවූ prompt_tokens කොටස. අපගේ සේවාදායකවල ධාවනය වන open-weight models
usage.completion_tokens_details.reasoning_tokens integer තර්කනයට වැය වූ completion_tokens කොටස. අපගේ සේවාදායකවල ධාවනය වන open-weight models

අපගේ සේවාදායකවල ධාවනය වන open-weight models මත, prompt_tokens යනු ඔබේ පණිවිඩ සහ tool අර්ථ දැක්වීම් model එකේම tokenizer එකෙන් ගණනය කළ ප්‍රමාණයට රූපවල tokens එකතු කිරීමයි. Token ගණන් කිරීමේ endpoints ඔබ යැවීමට පෙර එම අගයම ආපසු දෙයි. Token ගණන් කිරීම

Shannon tiers මත, prompt_tokens පිළිතුර ලිවීමට model එක කියවූ සියල්ල ගණන් ගනී, එබැවින් එය ඔබේ පණිවිඩවල පෙළට පමණක් වඩා විශාල වේ.

Streaming

stream true ලෙස සකසා ඇති විට පිළිතුර chat.completion.chunk events ලෙස පැමිණ data: [DONE] සමඟ අවසන් වේ. ඊට පෙර අවසාන chunk එක finish_reason සහ usage රැගෙන යයි; stream_options අවශ්‍ය නැත. Chunk හැඩතල, keep-alive පේළි සහ stream එකක් තුළ දෝෂ සඳහා තමන්ගේම පිටුවක් ඇත. ස්ට්‍රීමිං

දෝෂ

දෝෂයක් යනු error member එකක් සහිත JSON object එකකි. පරීක්ෂා ක්‍රියාත්මක වන්නේ මෙම පිළිවෙලටයි: API key, ඉල්ලීමේ body, model id, ඉන්පසු ශේෂය. වගුවේ මෙම endpoint එක බොහෝ විට ආපසු දෙන දේ ලැයිස්තුගත කර ඇත. නැවත උත්සාහ කළ යුතු දේ සහිත සම්පූර්ණ ලැයිස්තුවට තමන්ගේම පිටුවක් ඇත. දෝෂ

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Status Type පණිවිඩය කවදාද
401 authentication_error Missing authentication
Invalid API key
API key එකක් යවා නැත, නැතහොත් key එක නොදන්නා හෝ අවලංගු කළ එකකි.
400 invalid_request_error unknown model: <id> model ප්‍රකාශිත id එකක් නොවේ.
400 invalid_request_error No user message provided Shannon tiers: ඉල්ලීමේ user පෙළක් නැත සහ tools නැත.
400 invalid_request_error <id> does not accept image input රූප ආදානය නැති, අපගේ සේවාදායකවල ධාවනය වන open-weight model එකකට රූප කොටසක් යවා ඇත.
400 invalid_request_error <id> does not accept response_format ව්‍යුහගත output නැති, අපගේ සේවාදායකවල ධාවනය වන open-weight model එකකට response_format යවා ඇත.
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: … messages නැත, නැතහොත් field එකක JSON type එක වැරදිය.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens ඔබේ ශේෂයේ ඉතිරි ප්‍රමාණයට වඩා විශාලය.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: ඔබේ ගිණුමෙන් විනාඩියකින් ඉල්ලීම් 120කට වඩා.
500 server_error The model backend failed to answer. Please retry. Model එක පිළිතුරක් නිපදවූයේ නැත. ඉල්ලීම නැවත යවන්න.
502 api_error The model backend failed to answer. Please retry. Shannon 3 පවුලේ සහ අපගේ සේවාදායකවල ධාවනය වන open-weight models වලද එයම.