Мазмұнға өту
Жылдам бастау

Жылдам бастау

Алғашқы сұрауды жасаңыз: кілтіңізді алыңыз, бір хабарлама жіберіңіз және жауапты оқыңыз. API OpenAI және Anthropic форматтарында сөйлеседі, сондықтан өзіңіз қолданатын SDK базалық URL мен кілтті ауыстырғаннан кейін жұмыс істейді.

1. Кілтіңізді алыңыз

Әр аккаунтта бір API кілті бар. Кіріңіз, Keys & usage бетін ашып, оны көшіріңіз. Кілт әр endpoint пен әр модельде жұмыс істейді. Keys & usage

2. Клиентіңізді API-ге бағыттаңыз

Барлық endpoint-тер бір базалық URL астында тұрады. OpenAI SDK оны соңында /v1 мен алады; Anthropic SDK оны онсыз алады, өйткені /v1/messages жолын өзі қосады.

Клиент Базалық URL
OpenAI SDK-лары және OpenAI үйлесімді клиенттер https://api.shannon-ai.com/v1
Anthropic SDK-лары https://api.shannon-ai.com

Мәтінді үш endpoint шығарады. Олар бір модельдерге жетеді; кодыңыз қазірдің өзінде қолданатын форматтағысын таңдаңыз.

Endpoint Формат
POST /v1/chat/completions OpenAI Chat Completions
POST /v1/messages Anthropic Messages
POST /v1/responses OpenAI Responses

3. Алғашқы сұрауды жіберіңіз

Chat Completions endpoint-інде shannon-3 моделіне бір user хабарламасын жіберіңіз. YOUR_API_KEY орнына кілтіңізді қойыңыз.

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

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": "Hello, Shannon!"}
    ],
    max_tokens=1024
)

print(response.choices[0].message.content)
Өріс Түрі Әдепкі Сипаттама
model string Жауап беретін модельдің id-і. id-лер «Модельдер және бағалар» бетінде тізімделген.
messages array Осы уақытқа дейінгі сөйлесу: role және content бар нысандар. Соңғы user хабарламасы — промпт. Міндетті.
max_tokens integer 4096 Сұраудың шығыс бюджеті, 1-ден 65,536-ға дейін. Сұрау осы соманы балансыңыздан резервтейді және нақты жұмсағаны үшін есептеледі.
stream boolean false true жауапты жазылып жатқанда бөлек-бөлек жібереді.

Сұрау денесі — JSON және Content-Type: application/json тақырыбын қажет етеді. Өрістердің толық тізімі endpoint бетінде. Chat Completions

Жауап

stream жоқ шақыру жауап толық болғанда бір JSON нысанын қайтарады. Төмендегі мәтіндер мен сандар — мысалдар.

200 JSON
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! What would you like to work on?",
        "reasoning_content": "A greeting. A short, friendly reply fits."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1386,
    "completion_tokens": 74,
    "total_tokens": 1460
  }
}
Өріс Түрі Сипаттама
id string chatcmpl- және одан кейін 32 оналтылық таңба.
object string Әрқашан chat.completion.
created integer Жауап уақыты, Unix секундтарымен.
model string Жауап берген модельдің жарияланған id-і, бүркеншік ат немесе басқа жазылуды жіберсеңіз де.
choices array Әрқашан бір жазба, index мәні 0.
choices[0].message.role string Әрқашан assistant.
choices[0].message.content string | null Жауап. Жауап tool_calls алып жүргенде ол null болуы мүмкін.
choices[0].message.reasoning_content string | null Модельдің жауабының алдындағы пайымдауы, немесе ол болмаса null.
choices[0].message.tool_calls array Тек модель жариялаған құралдардың бірін шақырғанда болады.
choices[0].finish_reason string Жауап үшін stop, модель құралды шақырғанда tool_calls.
usage.prompt_tokens integer Модель осы жауап үшін оқыған токендер. shannon-2-* және Shannon 3 отбасында бұл жіберген мәтіннен көп болуы мүмкін.
usage.completion_tokens integer Модель жазған токендер.
usage.total_tokens integer Жиыны. Shannon моделінің ақысы осы саннан есептеледі.
  • usage ақшаны емес, токен санын қамтиды. Шақыру балансыңыздан не алғаны Keys & usage ішінде сұрау бойынша көрсетіледі; оның қалай есептелетіні «Шектеулер және баланс» бетінде. Шектеулер және баланс
  • Әр жауапта, қате мен стримде де, x-request-id тақырыбы бар. Сұрауыңыз x-request-id тақырыбын алып жүрсе, оның мәні қайтады; әйтпесе мән 12 оналтылық таңба болады. Оны журналдарыңызда сақтаңыз: ол дәл осы бір сұрауды атайды.

Сол шақыру стрим ретінде

Жауапты жазылып жатқанда оқу үшін stream мәнін true етіп орнатыңыз. Сұраудың қалған бөлігі өзгеріссіз қалады.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1"
)

stream = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ],
    max_tokens=1024,
    stream=True
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Стримнің әр кадры — data: әрпінен басталатын және JSON нысанын қамтитын бір жол. Бір кадр, бірнеше жолға басылған:

Бір кадр
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Кадрлар, ретімен delta finish_reason
Модель пайымдап жатқанда. Нөл немесе одан көп кадр. {"reasoning_content": "…"} null
Жауап бөлік-бөлігімен. Нөл немесе одан көп кадр. {"content": "…"} null
Соңғы JSON кадры. Ол usage мәліметін де алып жүреді; оны сұрау қажет емес. {} "stop"
Стримнің соңы: data: [DONE] жолы.
  • Жауаптың мәртебесі 200 және content-type: text/event-stream. Әр кадр — data: <json> жолы және одан кейін бос жол.
  • : ping жолы әр 15 секунд сайын келеді. Бұл қосылымды ашық ұстайтын түсініктеме; SSE клиенттері оны өткізіп жібереді.
  • Стрим ашылғаннан кейінгі ақау data: {"error": {…}} кадры ретінде келеді. Мәртебе 200 күйінде қалады, сондықтан кадрларды тексеріңіз.

Стриминг

Шақыру сәтсіз болса

Қате — type және message бар error өрісі бар JSON нысаны. Бұл — алғашқы шақыру ең жиі кездестіретін жауаптар.

Мәртебе Түрі Хабарлама Нені білдіреді
401 authentication_error Missing authentication API-ге ешбір кілт жетпеді. Authorization: Bearer және одан кейін кілтіңізді жіберіңіз.
401 authentication_error Invalid API key Кілт аккаунттың ағымдағы кілті емес. Оны Keys & usage бетінен қайта көшіріңіз.
400 invalid_request_error unknown model: <id> model жарияланған id емес. «Модельдер және бағалар» бетіндегі id-ді қолданыңыз.
422 invalid_request_error Failed to deserialize the JSON body into the target type… Өрістің JSON түрі қате, немесе messages жоқ.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Сұраудың шығыс бюджеті балансыңызға сыймайды.

Қателерді өңдеу

Әрі қарай қайда баруға болады

  • Модельдер және бағалар — Модельді таңдаңыз: id-лер, контекст терезелері және бағалар.
  • Chat Completions — Шақырған endpoint-тің әр сұрау өрісі, жауап өрісі және стрим оқиғасы.
  • Стриминг — Стрим кадрлары, keep-alive жолдары және стрим ішіндегі қателер.
  • Функция шақыру — Модель функцияларыңызды шақырсын.
  • Шектеулер және баланс — Сұрау нені резервтейді және қанша тұрады, және қанша сұрау жібере аласыз.
  • API Playground — Сұрауларды браузерде кілтіңізбен байқап көріңіз.