Məzmuna keç
Sürətli başlanğıc

Sürətli başlanğıc

İlk sorğunu edin: açarınızı alın, bir mesaj göndərin və cavabı oxuyun. API OpenAI və Anthropic formatlarında danışır, ona görə artıq istifadə etdiyiniz SDK əsas URL-i və açarı dəyişdikdən sonra işləyir.

1. Açarınızı alın

Hər hesabın bir API açarı var. Daxil olun, Keys & usage səhifəsini açın və kopyalayın. Açar hər endpoint-də və hər modeldə işləyir. Keys & usage

2. Klientinizi API-yə yönəldin

Bütün endpoint-lər bir əsas URL altındadır. OpenAI SDK onu sonunda /v1 ilə qəbul edir; Anthropic SDK onsuz qəbul edir, çünki /v1/messages-i özü əlavə edir.

Klient Əsas URL
OpenAI SDK-ları və OpenAI ilə uyğun klientlər https://api.shannon-ai.com/v1
Anthropic SDK-ları https://api.shannon-ai.com

Mətni üç endpoint yaradır. Onlar eyni modellərə çıxış verir; kodunuzun artıq istifadə etdiyi formatı seçin.

Endpoint Format
POST /v1/chat/completions OpenAI Chat Completions
POST /v1/messages Anthropic Messages
POST /v1/responses OpenAI Responses

3. İlk sorğunu göndərin

Chat Completions endpoint-ində shannon-3-ə bir user mesajı göndərin. YOUR_API_KEY-i öz açarınızla əvəz edin.

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)
Sahə Tip Defolt Təsvir
model string Cavab verən modelin id-si. İd-lər Models & pricing səhifəsində siyahıya alınıb.
messages array Hələlik söhbət: role və content olan obyektlər. Son user mesajı prompt-dur. Məcburidir.
max_tokens integer 4096 Sorğunun output büdcəsi, 1-dən 65,536-ya qədər. Sorğu bu miqdarı balansınızdan rezerv edir və real istifadə etdiyi üçün hesablanır.
stream boolean false true cavabı yazıldıqca hissə-hissə göndərir.

Sorğu gövdəsi JSON-dur və Content-Type: application/json başlığı tələb edir. Sahələrin tam siyahısı endpoint səhifəsindədir. Chat Completions

Cavab

stream-siz çağırış cavab tamamlandıqda bir JSON obyekti qaytarır. Aşağıdakı mətnlər və ədədlər nümunədir.

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
  }
}
Sahə Tip Təsvir
id string chatcmpl- və ardınca 32 hexadecimal simvol.
object string Həmişə chat.completion.
created integer Cavabın vaxtı Unix saniyələri ilə.
model string Cavab verən modelin dərc edilmiş id-si, alias və ya başqa yazılış göndərdiyiniz zaman da.
choices array Həmişə bir element, index 0.
choices[0].message.role string Həmişə assistant.
choices[0].message.content string | null Cavab. Cavab tool_calls daşıdıqda null ola bilər.
choices[0].message.reasoning_content string | null Modelin cavabından əvvəlki reasoning-i, yoxdursa null.
choices[0].message.tool_calls array Yalnız model elan etdiyiniz alətlərdən birini çağırdıqda olur.
choices[0].finish_reason string Cavab üçün stop, model alət çağırdıqda tool_calls.
usage.prompt_tokens integer Modelin bu cavab üçün oxuduğu tokenlər. shannon-2-* və Shannon 3 ailəsində bu, göndərdiyiniz mətndən çox ola bilər.
usage.completion_tokens integer Modelin yazdığı tokenlər.
usage.total_tokens integer Cəmi. Shannon modelinin ödənişi bu ədəddən hesablanır.
  • usage token saylarını saxlayır, pulu yox. Çağırışın balansınızdan nə götürdüyü Keys & usage səhifəsində hər sorğu üzrə göstərilir; necə hesablandığı Limitlər və balans səhifəsindədir. Limitlər və balans
  • Hər cavabda, xəta və axında da, x-request-id başlığı var. Sorğunuz x-request-id başlığı daşıyırsa, onun dəyəri geri qayıdır; əks halda dəyər 12 hexadecimal simvoldur. Onu loglarınızda saxlayın: o, məhz bu sorğunu adlandırır.

Eyni çağırış axın kimi

Cavabı yazıldıqca oxumaq üçün stream-i true təyin edin. Sorğuda qalan hər şey eyni qalır.

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)

Axının hər frame-i data: ilə başlayan və JSON obyekti saxlayan bir sətirdir. Bir neçə sətirdə çap edilmiş bir frame:

Bir frame
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Frame-lər, ardıcıllıqla delta finish_reason
Model reasoning edərkən. Sıfır və ya daha çox frame. {"reasoning_content": "…"} null
Cavab, hissə-hissə. Sıfır və ya daha çox frame. {"content": "…"} null
Son JSON frame-i. O, həmçinin usage daşıyır; onu istəməyə ehtiyac yoxdur. {} "stop"
Axının sonu: data: [DONE] sətri.
  • Cavabın statusu 200, content-type: text/event-stream-dir. Hər frame data: <json> sətri və ardınca boş sətirdir.
  • : ping sətri hər 15 saniyədən bir gəlir. Bu, bağlantını açıq saxlayan şərhdir; SSE klientləri onu keçir.
  • Axın açıldıqdan sonrakı uğursuzluq data: {"error": {…}} frame-i kimi gəlir. Status 200 olaraq qalır, ona görə frame-ləri yoxlayın.

Axın

Çağırış uğursuz olduqda

Xəta type və message saxlayan error olan JSON obyektidir. Bunlar ilk çağırışın ən çox rastlaşdığı cavablardır.

Status Tip Mesaj Mənası
401 authentication_error Missing authentication API-yə heç bir açar çatmadı. Authorization: Bearer və ardınca açarınızı göndərin.
401 authentication_error Invalid API key Açar hesabın cari açarı deyil. Onu Keys & usage səhifəsindən yenidən kopyalayın.
400 invalid_request_error unknown model: <id> model dərc edilmiş id deyil. Models & pricing səhifəsindən id istifadə edin.
422 invalid_request_error Failed to deserialize the JSON body into the target type… Sahənin JSON tipi yanlışdır və ya messages yoxdur.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Sorğunun output büdcəsi balansınıza sığmır.

Xəta idarəetməsi

Sonra hara getmək

  • Modellər və qiymətlər — Model seçin: id-lər, kontekst pəncərələri və qiymətlər.
  • Chat Completions — Çağırdığınız endpoint-in hər sorğu sahəsi, cavab sahəsi və axın hadisəsi.
  • Axın — Axının frame-ləri, keep-alive sətirləri və axın daxilindəki xətalar.
  • Funksiya çağırışı — Modelin funksiyalarınızı çağırmasına icazə verin.
  • Limitlər və balans — Sorğunun nəyi rezerv etdiyi və nəyə başa gəldiyi, neçə sorğu göndərə biləcəyiniz.
  • API oyun meydanı — Sorğuları brauzerdə açarınızla sınayın.