Агуулга руу алгасах
Түргэн эхлэх

Түргэн эхлэх

Эхний хүсэлтээ илгээнэ үү: түлхүүрээ аваад, нэг мессеж илгээж, хариуг уншина. API OpenAI ба Anthropic форматаар ярьдаг тул өөрийн ашигладаг SDK үндсэн URL, түлхүүрээ солисны дараа ажиллана.

1. Түлхүүрээ авах

Бүртгэл бүр нэг API түлхүүртэй. Нэвтэрч, Keys & usage-г нээгээд хуулна уу. Түлхүүр endpoint бүр, загвар бүр дээр ажиллана. Түлхүүр ба хэрэглээ

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-г Models & pricing дээр жагсаасан.
messages array Одоогийн харилцан яриа: role ба content-той объектууд. Сүүлийн user мессеж нь prompt. Заавал.
max_tokens integer 4096 Хүсэлтийн гаралтын төсөв, 1-ээс 65,536. Хүсэлт энэ хэмжээг үлдэгдлээс нөөцөлж, бодитоор ашигласнаа төлнө.
stream boolean false true нь хариултыг бичигдэх тусам хэсэг хэсгээр илгээнэ.

Хүсэлтийн body нь JSON бөгөөд Content-Type: application/json header шаарддаг. Талбаруудын бүрэн жагсаалт 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, та alias эсвэл өөр бичлэг илгээсэн ч мөн.
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 Загварын хариултаасаа өмнөх reasoning, байхгүй бол null.
choices[0].message.tool_calls array Загвар таны зарласан tool-ийн нэгийг дуудсан үед л байна.
choices[0].finish_reason string Хариултад stop, загвар tool дуудах үед tool_calls.
usage.prompt_tokens integer Загварын энэ хариултад уншсан токен. shannon-2-* болон Shannon 3 гэр бүл дээр энэ нь таны илгээсэн текстээс их байж болно.
usage.completion_tokens integer Загварын бичсэн токен.
usage.total_tokens integer Нийт. Shannon загварын тооцоо энэ тооноос бодогдоно.
  • usage нь мөнгө бус токены тоог агуулна. Дуудлага таны үлдэгдлээс хэчнээн авсныг Keys & usage дээр хүсэлт бүрээр харуулна; хэрхэн бодохыг Хязгаар ба үлдэгдэл хэсэгт тайлбарласан. Хязгаар ба үлдэгдэл
  • Хариу бүр, алдаа ба stream ч гэсэн x-request-id header-тэй. Таны хүсэлт x-request-id header агуулсан бол түүний утга буцаж ирнэ; үгүй бол 12 арван зургаатын тэмдэгт. Үүнийг лог дотроо хадгална уу: энэ нэг хүсэлтийг нэрлэнэ.

Ижил дуудлага stream хэлбэрээр

Хариултыг бичигдэж байх үед нь унших бол 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)

Stream-ийн frame бүр data:-аар эхэлсэн, JSON объект агуулсан нэг мөр. Нэг frame, олон мөрөөр хэвлэсэн:

Нэг frame
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Frame-үүд, дарааллаар delta finish_reason
Загвар reasoning хийж байх үед. Тэг буюу түүнээс олон frame. {"reasoning_content": "…"} null
Хариулт, хэсэг хэсгээрээ. Тэг буюу түүнээс олон frame. {"content": "…"} null
Сүүлийн JSON frame. Мөн usage агуулна; үүнийг тусад нь хүсэх шаардлагагүй. {} "stop"
Stream-ийн төгсгөл: data: [DONE] мөр.
  • Хариу 200 статус ба content-type: text/event-stream-тэй. Frame бүр data: <json> мөр бөгөөд араас нь хоосон мөр орно.
  • : ping мөр 15 секунд тутам ирнэ. Энэ нь холболтыг нээлттэй байлгадаг тайлбар мөр; SSE клиентүүд алгасна.
  • Stream нээгдсэний дараах алдаа data: {"error": {…}} frame хэлбэрээр ирнэ. Статус 200 хэвээр байх тул frame-үүдийг шалгана уу.

Дамжуулалт

Дуудлага амжилтгүй бол

Алдаа нь 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 биш. Models & pricing дэх 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-ийн хүсэлтийн талбар, хариуны талбар, stream event бүр.
  • Дамжуулалт — Stream-ийн frame, keep-alive мөр, stream доторх алдаа.
  • Функц дуудлага — Загварт өөрийн функцүүдийг дуудуулах.
  • Хязгаар ба үлдэгдэл — Хүсэлт юу нөөцөлж, хичнээн зардалтай, хэдэн хүсэлт илгээж болох.
  • API Playground — Хүсэлтүүдийг хөтөч дээр өөрийн түлхүүрээр туршина.