કન્ટેન્ટ પર જાઓ
Chat Completions

Chat Completions

POST /v1/chat/completions વાતચીત લે છે અને OpenAI Chat Completions ફોર્મેટમાં મોડેલનો આગલો મેસેજ પાછો આપે છે. તેને કોઈપણ OpenAI SDK થી અથવા સાદા HTTP પર વાપરો; આ પેજ ફીલ્ડ-દર-ફીલ્ડ રેફરન્સ છે.

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

સૌથી નાની રિક્વેસ્ટ એટલે મોડેલ 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 ઓબ્જેક્ટ છે:

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
  }
}

હેડર્સ

રિક્વેસ્ટ હેડર્સ

હેડર મૂલ્ય વર્ણન
Authorization Bearer YOUR_API_KEY તમારી API કી. દરેક એન્ડપોઇન્ટ પર તેની જગ્યાએ x-api-key: YOUR_API_KEY સ્વીકારાય છે.
Content-Type application/json જરૂરી. બીજી કોઈપણ કિંમત 415 પાછું આપે છે.
x-request-id વૈકલ્પિક. રિક્વેસ્ટ માટે તમારું પોતાનું id. તે જવાબમાં બદલાયા વિના પાછું આવે છે.

જવાબ હેડર્સ

હેડર વર્ણન
x-request-id દરેક જવાબ પર, એરર અને સ્ટ્રીમ સહિત: તમે મોકલેલી કિંમત, અથવા તમે કંઈ ન મોકલ્યું હોય ત્યારે 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 સેમ્પલિંગ 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 સેમ્પલિંગ. કિંમતો 0 અને 1 ની વચ્ચે રાખવામાં આવે છે. હોસ્ટેડ open-weight મોડેલ્સ
seed integer સેમ્પલરનો seed, કોઈપણ પૂર્ણાંક. તેના વિના seed મોડેલ અને વાતચીત પરથી બને છે, તેથી બે વાર મોકલેલી એ જ રિક્વેસ્ટ એ જ seed વાપરે છે. હોસ્ટેડ open-weight મોડેલ્સ
stop string | array સ્ટ્રિંગ અથવા સ્ટ્રિંગની એરે. વધુમાં વધુ 4 વપરાય છે. જે પહેલી દેખાય તેની પહેલાં જવાબ પૂરો થાય છે; stop ટેક્સ્ટ પોતે પાછો અપાતો નથી. હોસ્ટેડ open-weight મોડેલ્સ
reasoning_effort string high જવાબ આપતા પહેલાં મોડેલ કેટલું reasoning કરે: off, low, medium અથવા high. none અને minimal નો અર્થ off, default નો અર્થ medium, max નો અર્થ high. બીજી કોઈપણ કિંમત 400 પાછું આપે છે. હોસ્ટેડ open-weight મોડેલ્સ
reasoning object એ જ સેટિંગ ઓબ્જેક્ટ સ્વરૂપમાં: {"effort": "low"}. બંને મોકલાય ત્યારે reasoning_effort વપરાય છે. હોસ્ટેડ open-weight મોડેલ્સ
tools array મોડેલ જે ફંક્શન્સ કોલ કરી શકે, દરેક {"type": "function", "function": {"name", "description", "parameters"}} તરીકે. મોડેલના કોલ tool_calls માં પાછા આવે છે; તમારો કોડ તે ચલાવે છે. બધા મોડેલ્સ
tool_choice string | object auto "auto" મોડેલને નક્કી કરવા દે છે. "required" તેને ટૂલ કોલ કરાવે છે. {"type": "function", "function": {"name": "…"}} તેને તે જ ટૂલ કોલ કરાવે છે. હોસ્ટેડ 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 ફેમિલી

અન્ય OpenAI ફીલ્ડ્સ, જેમ કે n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store અને prompt_cache_key, સ્વીકારાય છે જેથી હાલનો ક્લાયન્ટ કોડ બદલ્યા વિના ચાલે. તે જવાબ બદલતા નથી: હંમેશા એક જ choice હોય છે, અને સ્ટ્રીમ હંમેશા વપરાશ સાથે પૂરો થાય છે.

ખોટા JSON પ્રકારવાળું ફીલ્ડ, ઉદાહરણ તરીકે "max_tokens": "100", 422 પાછું આપે છે. messages વિનાની રિક્વેસ્ટ પણ તેમ જ કરે છે.

ટૂલ્સ, સ્ટ્રક્ચર્ડ આઉટપુટ, reasoning અને વેબ સર્ચ દરેકનું પોતાનું પેજ છે: ફંક્શન કોલિંગ, રચિત આઉટપુટ્સ, Reasoning effort, Built‑in Web Search.

વિકલ્પો સાથેની રિક્વેસ્ટ

આ રિક્વેસ્ટ system મેસેજ, સેમ્પલિંગ ફીલ્ડ્સ અને 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 બે વિગતો ઉમેરે છે: કેશમાંથી વંચાયેલા 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 મોકલો.

આ એન્ડપોઇન્ટ પર shannon-coder-1 અલગ રીતે ગણાય છે: દરેક રિક્વેસ્ટ તમારા પ્લાનનો એક Shannon Coder કોલ છે, અને તેના માટે કોઈ ટોકન્સ અલગ રખાતા નથી. મર્યાદાઓ અને બેલેન્સ

બીજું, તે આ મોડેલ્સ પર જવાબની લંબાઈ મર્યાદિત કરે છે:

મોડેલ્સ max_tokens શું કરે છે
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 જવાબ મર્યાદાએ પહોંચે ત્યારે અટકે છે. સ્ટ્રીમ ત્યારે finish_reason length સાથે પૂરો થાય છે.
હોસ્ટેડ open-weight મોડેલ્સ જવાબનો ટેક્સ્ટ max_tokens પર અટકે છે. Reasoning તેમાં ગણાતું નથી. 256 થી નીચેની કિંમતો 256 જેવું કામ કરે છે.

max_tokens અથવા max_completion_tokens વિના કિંમત 4,096 છે. shannon-coder-1 પર તે 65,536 છે.

મેસેજ

દરેક મેસેજ role અને content ધરાવતો ઓબ્જેક્ટ છે. content સ્ટ્રિંગ છે, અથવા મેસેજ ટેક્સ્ટ કરતાં વધુ લઈ જતો હોય ત્યારે ભાગોની એરે.

ભૂમિકા વર્ણન કોણ લાગુ કરે છે
system મોડેલ માટે સૂચનાઓ. તેને પહેલા મૂકો. Shannon ટિયર પર પહેલો system મેસેજ જ વપરાય છે. હોસ્ટેડ open-weight મોડેલ્સ, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system તરીકે વંચાય છે. હોસ્ટેડ open-weight મોડેલ્સ
user તમે જે પૂછો છો. Shannon ટિયર પર છેલ્લો user મેસેજ prompt છે અને તેની પહેલાંના મેસેજ હિસ્ટ્રી છે. બધા મોડેલ્સ
assistant મોડેલના અગાઉના જવાબો. તેના પછી ટૂલ પરિણામ મોકલતી વખતે તેના tool_calls રાખો. બધા મોડેલ્સ
tool ટૂલ કોલનું પરિણામ: tool_call_id માં કોલનું id હોય છે અને content માં પરિણામ સ્ટ્રિંગ તરીકે. બધા મોડેલ્સ

Shannon 3 ફેમિલી id સાથે, જે સૂચનાઓ પળાવી જ જોઈએ તે user મેસેજમાં મૂકો.

Shannon ટિયર પર user ટેક્સ્ટ વિનાની અને 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 ફેમિલી

કદ, મર્યાદાઓ અને સ્વરૂપોની સંપૂર્ણ યાદીનું પોતાનું પેજ છે. ઇમેજ અને ફાઇલ્સ

જવાબ ઓબ્જેક્ટ

ફીલ્ડ પ્રકાર વર્ણન
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 માત્ર મોડેલ ટૂલ્સ કોલ કરે ત્યારે હાજર. દરેક એન્ટ્રીમાં id, type function, અને name તથા JSON સ્ટ્રિંગ તરીકે 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 રિક્વેસ્ટના ટોકન્સ. વપરાશ જુઓ.
sources array ફક્ત web_search: true વાળી એવી રિક્વેસ્ટ પર જેની શોધમાં કંઈક મળ્યું હોય: મોડેલને મળેલાં પરિણામો, દરેક index, title અને url સાથે. જવાબમાં [1] એટલે index 1 વાળી એન્ટ્રી.

સમાપ્તિનાં કારણો

finish_reason વર્ણન
stop મોડેલે જવાબ પૂરો કર્યો, અથવા કોઈ stop સ્ટ્રિંગ દેખાઈ.
tool_calls મોડેલ એક કે વધુ ટૂલ્સ કોલ કરે છે. તે ચલાવો અને પરિણામો tool મેસેજમાં મોકલો.
length જવાબ આઉટપુટ મર્યાદાએ કાપી નાખવામાં આવ્યો. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 અને Shannon 3 ફેમિલીના સ્ટ્રીમ્સમાં જણાવાય છે.

સ્ટ્રીમ ન થતો જવાબ stop અથવા tool_calls જણાવે છે.

વપરાશ

ફીલ્ડ પ્રકાર વર્ણન ક્યાં ઉપલબ્ધ
usage.prompt_tokens integer ઇનપુટ ટોકન્સ. બધા મોડેલ્સ
usage.completion_tokens integer આઉટપુટ ટોકન્સ: reasoning, જવાબ અને ટૂલ કોલ બધું મળીને. બધા મોડેલ્સ
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 એટલે તમારા મેસેજ અને ટૂલ વ્યાખ્યાઓ મોડેલના પોતાના tokenizer થી ગણેલી, ઉપરાંત કોઈ ઇમેજના ટોકન્સ. ટોકન ગણતરી એન્ડપોઇન્ટ્સ તમે મોકલો તે પહેલાં એ જ સંખ્યા પાછી આપે છે. ટોકન ગણતરી

Shannon ટિયર પર, prompt_tokens જવાબ લખવા મોડેલે જે બધું વાંચ્યું તે ગણે છે, તેથી તે તમારા મેસેજના ટેક્સ્ટ કરતાં મોટું હોય છે.

Streaming

stream ને true સેટ કરવાથી જવાબ chat.completion.chunk ઇવેન્ટ્સ તરીકે આવે છે અને data: [DONE] સાથે પૂરો થાય છે. તેની પહેલાંનો છેલ્લો chunk finish_reason અને usage લઈ જાય છે; કોઈ stream_options જરૂરી નથી. chunk ના આકારો, keep-alive લાઇન્સ અને સ્ટ્રીમની અંદરની એરરનું પોતાનું પેજ છે. સ્ટ્રીમિંગ

એરર્સ

એરર એટલે error સભ્ય ધરાવતો JSON ઓબ્જેક્ટ. તપાસ આ ક્રમમાં થાય છે: API કી, રિક્વેસ્ટ બોડી, મોડેલ id, પછી બેલેન્સ. ટેબલ આ એન્ડપોઇન્ટ સૌથી વધુ વાર શું પાછું આપે છે તે બતાવે છે. કઈ એરર ફરી અજમાવવી તે સાથેની સંપૂર્ણ યાદીનું પોતાનું પેજ છે. ભૂલ સંભાળ

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
સ્ટેટસ પ્રકાર મેસેજ ક્યારે
401 authentication_error Missing authentication
Invalid API key
કોઈ API કી મોકલાઈ નથી, અથવા કી અજાણી અથવા રદ કરેલી છે.
400 invalid_request_error unknown model: <id> model પ્રકાશિત id નથી.
400 invalid_request_error No user message provided Shannon ટિયર: રિક્વેસ્ટમાં કોઈ user ટેક્સ્ટ નથી અને કોઈ 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. Flood protection: તમારા એકાઉન્ટ પર એક મિનિટમાં 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 મોડેલ્સ પર.