உள்ளடக்கத்துக்குச் செல்
Chat Completions

Chat Completions

POST /v1/chat/completions ஒரு உரையாடலை ஏற்று, மாடலின் அடுத்த செய்தியை OpenAI Chat Completions வடிவத்தில் திருப்பித் தரும். எந்த OpenAI SDK-யிலிருந்தும் அல்லது சாதாரண HTTP வழியாகவும் பயன்படுத்தலாம்; இந்தப் பக்கம் புலம் புலமாக விவரிக்கும் குறிப்புரை.

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

மிகச் சிறிய கோரிக்கை என்பது ஒரு மாடல் id மற்றும் ஒரு பயனர் செய்தி.

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 உட்பட ஒவ்வொரு பதிலிலும்: நீங்கள் அனுப்பிய மதிப்பு, எதுவும் அனுப்பாவிட்டால் 12 ஹெக்சாடெசிமல் எழுத்துகள். சிக்கலைத் தெரிவிக்கும்போது இதைக் குறிப்பிடுங்கள்.
content-type application/json, அல்லது stream true ஆக இருந்தால் text/event-stream.

கோரிக்கைப் புலங்கள்

messages மட்டுமே கட்டாயம். செயல்படுத்துவது நெடுவரிசை, ஒரு புலம் பதிலை மாற்றும் மாடல்களைக் குறிப்பிடுகிறது. ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள் என்பவை மாடல் பட்டியலிலுள்ள பன்னிரண்டு id-கள்; Shannon 3 குடும்பம் என்பது shannon-3, shannon-3-pro, shannon-3.1 மற்றும் shannon-3.1-pro. மாடல்கள் & விலை

புலம் வகை இயல்புநிலை விளக்கம் செயல்படுத்துவது
model string shannon-1.6-lite பதிலளிக்கும் மாடல்: மாடல் பட்டியலிலிருந்து ஒரு id. ஒவ்வொரு கோரிக்கையுடனும் அனுப்புங்கள். பெரிய/சிறிய எழுத்து வேறுபாடு பார்க்கப்படாது. வெளியிடப்படாத id 400 unknown model தரும். அனைத்து மாடல்கள்
messages array கட்டாயம். உரையாடல், பழைய செய்தி முதலில். கீழே உள்ள செய்திகள் பகுதியைப் பாருங்கள். அனைத்து மாடல்கள்
stream boolean false true பதிலை எழுதப்படும்போதே server-sent events ஆக அனுப்பும். அனைத்து மாடல்கள்
max_tokens integer 4096 பதிலின் உச்ச வரம்பு, டோக்கன்களில். 1 முதல் 65,536 வரம்புக்கு வெளியே உள்ள மதிப்பு அந்த வரம்புக்குள் கொண்டுவரப்படும். கோரிக்கை ஓடும்போது உங்கள் இருப்பிலிருந்து ஒதுக்கி வைக்கப்படும் அளவும் இதுவே. கீழே உள்ள வெளியீட்டு நீளம் பகுதியைப் பாருங்கள். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள், shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens-க்கு இணையானது. இரண்டும் அனுப்பப்பட்டால் max_tokens பயன்படுத்தப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள், shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling temperature. ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்களில் இயல்புநிலை 1, மதிப்புகள் 0 முதல் 2 வரை வைக்கப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள், shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. மதிப்புகள் 0 முதல் 1 வரை வைக்கப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
seed integer sampler-ன் seed, ஏதேனும் முழு எண். அது இல்லையென்றால், seed மாடலிலிருந்தும் உரையாடலிலிருந்தும் பெறப்படும்; எனவே ஒரே கோரிக்கையை இரண்டு முறை அனுப்பினால் அதே seed பயன்படுத்தப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
stop string | array ஒரு string அல்லது strings-ன் array. 4 வரை பயன்படுத்தப்படும். தோன்றும் முதல் string-க்கு முன்பே பதில் முடியும்; stop உரை திருப்பித் தரப்படாது. ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
reasoning_effort string high மாடல் பதிலளிக்கும் முன் எவ்வளவு reasoning செய்கிறது: off, low, medium அல்லது high. none மற்றும் minimal என்பவை off என்றும், default என்பது medium என்றும், max என்பது high என்றும் பொருள். வேறு எந்த மதிப்பும் 400 தரும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
reasoning object அதே அமைப்பு object வடிவில்: {"effort": "low"}. இரண்டும் அனுப்பப்பட்டால் reasoning_effort பயன்படுத்தப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
tools array மாடல் அழைக்கக்கூடிய செயல்பாடுகள், ஒவ்வொன்றும் {"type": "function", "function": {"name", "description", "parameters"}} வடிவில். மாடலின் அழைப்புகள் tool_calls-ல் திரும்பி வரும்; உங்கள் குறியீடு அவற்றை இயக்கும். அனைத்து மாடல்கள்
tool_choice string | object auto "auto" மாடலே முடிவு செய்யும். "required" ஒரு tool-ஐ அழைக்க வைக்கும். {"type": "function", "function": {"name": "…"}} அந்த tool-ஐயே அழைக்க வைக்கும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
response_format object JSON பதிலுக்கு {"type": "json_object"}, அல்லது உங்கள் schema-வைப் பின்பற்றும் பதிலுக்கு {"type": "json_schema", "json_schema": {…}}. அனைத்து Shannon நிலைகள்; ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள் ஒவ்வொரு id-க்கும் பட்டியலிட்டபடி
web_search boolean false true மாடல் பதிலளிக்கும் முன் இணையத்தில் தேட அனுமதிக்கும். 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 புலங்கள் ஏற்கப்படுகின்றன, எனவே ஏற்கனவே உள்ள கிளையன்ட் குறியீடு மாற்றமின்றி இயங்கும். அவை பதிலை மாற்றாது: எப்போதும் ஒரே choice இருக்கும், stream எப்போதும் usage உடன் முடியும்.

தவறான JSON வகை கொண்ட புலம், எடுத்துக்காட்டாக "max_tokens": "100", 422 தரும். messages இல்லாத கோரிக்கையும் அவ்வாறே.

Tools, கட்டமைக்கப்பட்ட வெளியீடு, reasoning மற்றும் இணையத் தேடல் ஒவ்வொன்றுக்கும் தனிப் பக்கம் உண்டு: செயல்பாடு அழைப்பு, கட்டமைக்கப்பட்ட வெளியீடுகள், Reasoning effort, உள்ளமைக்கப்பட்ட இணைய தேடல்.

விருப்பங்களுடன் ஒரு கோரிக்கை

இந்தக் கோரிக்கை ஒரு system செய்தி, sampling புலங்கள் மற்றும் reasoning effort ஆகியவற்றை அமைக்கிறது. இது ஹோஸ்ட் செய்யப்பட்ட open-weight மாடலைப் பயன்படுத்துகிறது; அது இவை அனைத்தையும் செயல்படுத்தும்.

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 மாடல்களில் அதன் usage இரண்டு விவரங்களைச் சேர்க்கும்: cache-லிருந்து படிக்கப்பட்ட prompt டோக்கன்கள், மற்றும் reasoning-க்குச் செலவான டோக்கன்கள்.

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

வெளியீட்டு நீளம்

max_tokens இரண்டு வேலைகளைச் செய்கிறது. முதலில், கோரிக்கை தொடங்கும்போது உங்கள் இருப்பிலிருந்து ஒதுக்கி வைக்கப்படும் டோக்கன்களின் எண்ணிக்கை அது. பதில் முடிந்ததும், அந்த அளவு கோரிக்கை பயன்படுத்திய டோக்கன்களால் மாற்றப்படும். max_tokens உங்கள் இருப்பில் மீதமுள்ளதை விடப் பெரிதாக இருந்தால், பதிலே பொருந்தியிருந்தாலும் கோரிக்கை 429 Quota exceeded தரும். குறைவாக ஒதுக்க, குறைந்த max_tokens அனுப்புங்கள்.

இந்த endpoint-ல் shannon-coder-1 வேறுவிதமாகக் கணக்கிடப்படுகிறது: ஒவ்வொரு கோரிக்கையும் உங்கள் திட்டத்தின் Shannon Coder அழைப்புகளில் ஒன்று, அதற்கு டோக்கன்கள் ஒதுக்கப்படுவதில்லை. வரம்புகளும் இருப்பும்

இரண்டாவதாக, இந்த மாடல்களில் அது பதிலின் நீளத்தை வரையறுக்கிறது:

மாடல்கள் max_tokens என்ன செய்கிறது
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 பதில் வரம்பை அடைந்ததும் நின்றுவிடும். stream பின்னர் finish_reason length உடன் முடியும்.
ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள் பதில் உரை max_tokens-ல் நிற்கும். Reasoning இதில் கணக்கிடப்படாது. 256-க்குக் கீழுள்ள மதிப்புகள் 256 ஆகச் செயல்படும்.

max_tokens அல்லது max_completion_tokens இல்லாவிட்டால் மதிப்பு 4,096. shannon-coder-1-ல் 65,536.

செய்திகள்

ஒவ்வொரு செய்தியும் role மற்றும் content கொண்ட object. செய்தி உரையைத் தவிர வேறும் கொண்டிருந்தால் content ஒரு string அல்லது பகுதிகளின் array.

Role விளக்கம் செயல்படுத்துவது
system மாடலுக்கான அறிவுறுத்தல்கள். இதை முதலில் வையுங்கள். Shannon நிலைகளில் முதல் system செய்தியே பயன்படுத்தப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள், shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system ஆகப் படிக்கப்படும். ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
user நீங்கள் கேட்பது. Shannon நிலைகளில் கடைசி user செய்தியே prompt, அதற்கு முந்தைய செய்திகள் வரலாறு. அனைத்து மாடல்கள்
assistant மாடலின் முந்தைய பதில்கள். அதற்குப் பிறகு tool முடிவை அனுப்பும்போது அதன் tool_calls-ஐ வைத்திருங்கள். அனைத்து மாடல்கள்
tool ஒரு tool அழைப்பின் முடிவு: tool_call_id அழைப்பின் id-யையும், content முடிவை string ஆகவும் கொண்டிருக்கும். அனைத்து மாடல்கள்

Shannon 3 குடும்ப id-யுடன், கட்டாயம் பின்பற்றப்பட வேண்டிய அறிவுறுத்தல்களை user செய்தியில் வையுங்கள்.

Shannon நிலைகளில் பயனர் உரையும் tools-ம் இல்லாத கோரிக்கை 400 No user message provided தரும்.

உள்ளடக்கப் பகுதிகள்

பகுதி விளக்கம் கிடைக்கும் இடம்
{"type": "text", "text": "…"} சாதாரண உரை. அனைத்து மாடல்கள்
{"type": "image_url", "image_url": {"url": "…"}} ஒரு படம், base64 உள்ளடக்கம் கொண்ட data: URL ஆக அல்லது http(s) URL ஆக. Shannon 3 குடும்பம், shannon-1.6-lite, shannon-1.6-pro, மற்றும் பட உள்ளீட்டைப் பட்டியலிடும் ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} ஒரு ஆவணம் (PDF, Word, PowerPoint அல்லது Excel), base64 ஆக அல்லது URL மூலம். Shannon 3 குடும்பம்

அளவுகள், வரம்புகள் மற்றும் வடிவங்களின் முழுப் பட்டியலுக்குத் தனிப் பக்கம் உண்டு. படங்களும் கோப்புகளும்

பதில் object

புலம் வகை விளக்கம்
id string chatcmpl- அதன் பின் 32 ஹெக்சாடெசிமல் எழுத்துகள்.
object string எப்போதும் chat.completion.
created integer பதிலின் நேரம், Unix வினாடிகளில்.
model string பதிலளித்த மாடலின் நியமன id. எழுத்துக்கூட்டலில் நீங்கள் அனுப்பிய id-யிலிருந்து மாறுபடலாம்.
choices array எப்போதும் சரியாக ஒரு choice, index 0 உடன்.
choices[0].message.role string எப்போதும் assistant.
choices[0].message.content string | null பதில் உரை. tool_calls இருக்கும்போது Shannon நிலைகளில் இது null; ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள் அழைப்புகளுக்குப் பக்கத்தில் உரையையும் அனுப்பலாம்.
choices[0].message.reasoning_content string | null பதிலுக்கு முன் மாடல் எழுதிய reasoning, எதுவும் இல்லையென்றால் null.
choices[0].message.tool_calls array மாடல் tools-ஐ அழைக்கும்போது மட்டுமே இருக்கும். ஒவ்வொரு உள்ளீட்டிலும் 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 கோரிக்கையின் டோக்கன்கள். Usage-ஐப் பாருங்கள்.
sources array தேடல் ஏதேனும் கண்டுபிடித்த web_search: true கோரிக்கையில் மட்டும்: மாடலுக்குத் தரப்பட்ட முடிவுகள், ஒவ்வொன்றும் index, title மற்றும் url உடன். பதிலில் உள்ள [1] என்பது index 1 கொண்ட உள்ளீடு.

முடிவுக் காரணங்கள்

finish_reason விளக்கம்
stop மாடல் தன் பதிலை முடித்தது, அல்லது ஒரு stop string தோன்றியது.
tool_calls மாடல் ஒன்று அல்லது அதற்கு மேற்பட்ட tools-ஐ அழைக்கிறது. அவற்றை இயக்கி, முடிவுகளை tool செய்திகளில் அனுப்புங்கள்.
length பதில் வெளியீட்டு வரம்பில் துண்டிக்கப்பட்டது. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 மற்றும் Shannon 3 குடும்பத்தின் streams-ல் தெரிவிக்கப்படும்.

stream செய்யாத பதில் stop அல்லது tool_calls-ஐத் தெரிவிக்கும்.

Usage

புலம் வகை விளக்கம் கிடைக்கும் இடம்
usage.prompt_tokens integer உள்ளீட்டு டோக்கன்கள். அனைத்து மாடல்கள்
usage.completion_tokens integer வெளியீட்டு டோக்கன்கள்: reasoning, பதில் மற்றும் tool அழைப்புகள் சேர்த்து. அனைத்து மாடல்கள்
usage.total_tokens integer prompt_tokens கூட்டல் completion_tokens. அனைத்து மாடல்கள்
usage.prompt_tokens_details.cached_tokens integer prompt_tokens-ல் prompt cache-லிருந்து படிக்கப்பட்ட பகுதி. ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்
usage.completion_tokens_details.reasoning_tokens integer completion_tokens-ல் reasoning-க்குச் செலவான பகுதி. ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள்

ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்களில், prompt_tokens என்பது உங்கள் செய்திகளும் tool வரையறைகளும் மாடலின் சொந்த tokenizer-ஆல் எண்ணப்பட்டதுடன், படங்களின் டோக்கன்களும் சேர்ந்தது. டோக்கன் எண்ணிக்கை endpoint-கள் நீங்கள் அனுப்பும் முன்பே அதே எண்ணைத் தரும். Token எண்ணிக்கை

Shannon நிலைகளில், பதிலை எழுத மாடல் படித்த அனைத்தையும் prompt_tokens எண்ணுகிறது, எனவே அது உங்கள் செய்திகளின் உரையை மட்டும் விடப் பெரிதாக இருக்கும்.

Streaming

stream true ஆக அமைந்தால் பதில் chat.completion.chunk நிகழ்வுகளாக வந்து data: [DONE] உடன் முடியும். அதற்கு முந்தைய கடைசி chunk finish_reason மற்றும் usage-ஐக் கொண்டிருக்கும்; stream_options தேவையில்லை. chunk வடிவங்கள், keep-alive வரிகள் மற்றும் stream-க்குள் வரும் பிழைகளுக்குத் தனிப் பக்கம் உண்டு. ஸ்ட்ரீமிங்

பிழைகள்

பிழை என்பது error உறுப்பு கொண்ட JSON object. சரிபார்ப்புகள் இந்த வரிசையில் நடக்கும்: API key, கோரிக்கை body, மாடல் id, பிறகு இருப்பு. இந்த endpoint அடிக்கடி தருவதை அட்டவணை பட்டியலிடுகிறது. எதை மீண்டும் முயற்சிப்பது என்பதுடன் முழுப் பட்டியல் தனிப் பக்கத்தில் உள்ளது. கையாளுவதில் பிழை

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
நிலை வகை செய்தி எப்போது
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 நிலைகள்: கோரிக்கையில் பயனர் உரையும் இல்லை, tools-ம் இல்லை.
400 invalid_request_error <id> does not accept image input பட உள்ளீடு இல்லாத ஹோஸ்ட் செய்யப்பட்ட open-weight மாடலுக்குப் பட பகுதி அனுப்பப்பட்டது.
400 invalid_request_error <id> does not accept response_format கட்டமைக்கப்பட்ட வெளியீடு இல்லாத ஹோஸ்ட் செய்யப்பட்ட open-weight மாடலுக்கு 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 இல்லை, அல்லது ஒரு புலத்தின் JSON வகை தவறு.
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. ஃப்ளட் பாதுகாப்பு: உங்கள் கணக்கில் ஒரு நிமிடத்தில் 120-க்கும் மேற்பட்ட கோரிக்கைகள்.
500 server_error The model backend failed to answer. Please retry. மாடல் பதிலை உருவாக்கவில்லை. கோரிக்கையை மீண்டும் அனுப்புங்கள்.
502 api_error The model backend failed to answer. Please retry. அதே, Shannon 3 குடும்பத்திலும் ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்களிலும்.