Pāriet uz saturu
Ātrais sākums

Ātrais sākums

Veiciet pirmo pieprasījumu: iegūstiet atslēgu, nosūtiet vienu ziņojumu un izlasiet atbildi. API runā OpenAI un Anthropic formātos, tāpēc SDK, ko jau lietojat, darbojas pēc tam, kad nomaināt tā bāzes URL un atslēgu.

1. Iegūstiet atslēgu

Katram kontam ir viena API atslēga. Pierakstieties, atveriet Atslēgas un izmantošana un nokopējiet to. Atslēga darbojas katrā galapunktā un ar katru modeli. Atslēgas un izmantošana

2. Norādiet klientam API

Visi galapunkti atrodas zem viena bāzes URL. OpenAI SDK to pieņem ar /v1 beigās; Anthropic SDK pieņem bez tā, jo /v1/messages pievieno pats.

Klients Bāzes URL
OpenAI SDK un ar OpenAI savietojami klienti https://api.shannon-ai.com/v1
Anthropic SDK https://api.shannon-ai.com

Tekstu veido trīs galapunkti. Tie sasniedz tos pašus modeļus; izvēlieties to, kura formātu jūsu kods jau izmanto.

Endpoints Formāts
POST /v1/chat/completions OpenAI Chat Completions
POST /v1/messages Anthropic Messages
POST /v1/responses OpenAI Responses

3. Nosūtiet pirmo pieprasījumu

Nosūtiet vienu user ziņojumu modelim shannon-3 galapunktā Chat Completions. Aizstājiet YOUR_API_KEY ar savu atslēgu.

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)
Lauks Tips Noklusējums Apraksts
model string Modeļa, kas atbild, id. Id ir uzskaitīti lapā Modeļi un cenas.
messages array Saruna līdz šim: objekti ar role un content. Pēdējais user ziņojums ir uzvedne. Obligāts.
max_tokens integer 4096 Pieprasījuma izvades budžets, no 1 līdz 65,536. Pieprasījums rezervē šo summu no jūsu atlikuma un tiek rēķināts par to, ko patiešām izmantoja.
stream boolean false true sūta atbildi pa gabaliem, kamēr tā tiek rakstīta.

Pieprasījuma pamatteksts ir JSON, un tam vajadzīga galvene Content-Type: application/json. Pilns lauku saraksts ir galapunkta lapā. Chat Completions

Atbilde

Izsaukums bez stream atgriež vienu JSON objektu, kad atbilde ir pilnīga. Tālāk redzamie teksti un skaitļi ir piemēri.

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
  }
}
Lauks Tips Apraksts
id string chatcmpl-, kam seko 32 heksadecimālas rakstzīmes.
object string Vienmēr chat.completion.
created integer Atbildes laiks Unix sekundēs.
model string Modeļa, kas atbildēja, publicētais id, arī tad, ja nosūtījāt aizstājvārdu vai citu pierakstu.
choices array Vienmēr viens ieraksts ar index 0.
choices[0].message.role string Vienmēr assistant.
choices[0].message.content string | null Atbilde. Tā var būt null, ja atbilde nes tool_calls.
choices[0].message.reasoning_content string | null Modeļa spriešana pirms atbildes vai null, ja tās nav.
choices[0].message.tool_calls array Ir tikai tad, ja modelis izsauc vienu no jūsu deklarētajiem rīkiem.
choices[0].finish_reason string stop atbildei, tool_calls, kad modelis izsauc rīku.
usage.prompt_tokens integer Tokeni, ko modelis nolasīja šai atbildei. Modeļiem shannon-2-* un Shannon 3 saimei tas var būt vairāk nekā jūsu nosūtītais teksts.
usage.completion_tokens integer Tokeni, ko modelis uzrakstīja.
usage.total_tokens integer Kopsumma. Shannon modeļa maksa tiek aprēķināta no šī skaitļa.
  • usage satur tokenu skaitu, nevis naudu. Ko izsaukums paņēma no jūsu atlikuma, redzams katram pieprasījumam lapā Atslēgas un izmantošana; kā tas tiek aprēķināts, ir lapā Ierobežojumi un atlikums. Ierobežojumi un atlikums
  • Katrai atbildei, arī kļūdai un straumei, ir galvene x-request-id. Ja jūsu pieprasījumam ir galvene x-request-id, tās vērtība atgriežas; citādi vērtība ir 12 heksadecimālas rakstzīmes. Glabājiet to savos žurnālos: tā nosauc tieši šo pieprasījumu.

Tas pats izsaukums kā straume

Iestatiet stream uz true, lai lasītu atbildi, kamēr tā tiek rakstīta. Viss pārējais pieprasījumā paliek nemainīts.

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)

Katrs straumes kadrs ir viena rinda, kas sākas ar data: un satur JSON objektu. Viens kadrs, izdrukāts vairākās rindās:

Viens kadrs
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Kadri secībā delta finish_reason
Kamēr modelis spriež. Nulle vai vairāk kadru. {"reasoning_content": "…"} null
Atbilde pa gabaliem. Nulle vai vairāk kadru. {"content": "…"} null
Pēdējais JSON kadrs. Tas nes arī usage; tā pieprasīšana nav vajadzīga. {} "stop"
Straumes beigas: rinda data: [DONE].
  • Atbildei ir statuss 200 un content-type: text/event-stream. Katrs kadrs ir rinda data: <json>, kam seko tukša rinda.
  • Rinda : ping ierodas ik pēc 15 sekundēm. Tas ir komentārs, kas patur savienojumu atvērtu; SSE klienti to izlaiž.
  • Kļūme pēc straumes atvēršanas ierodas kā kadrs data: {"error": {…}}. Statuss paliek 200, tāpēc pārbaudiet kadrus.

Straumēšana

Ja izsaukums neizdodas

Kļūda ir JSON objekts ar error, kas satur type un message. Šīs ir atbildes, ar kurām pirmais izsaukums sastopas visbiežāk.

Statuss Veids Ziņojums Ko tas nozīmē
401 authentication_error Missing authentication Neviena atslēga API nesasniedza. Sūtiet Authorization: Bearer, kam seko jūsu atslēga.
401 authentication_error Invalid API key Atslēga nav konta pašreizējā atslēga. Nokopējiet to vēlreiz no lapas Atslēgas un izmantošana.
400 invalid_request_error unknown model: <id> model nav publicēts id. Izmantojiet id no lapas Modeļi un cenas.
422 invalid_request_error Failed to deserialize the JSON body into the target type… Laukam ir nepareizs JSON tips, vai trūkst messages.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Pieprasījuma izvades budžets neietilpst jūsu atlikumā.

Kļūdu apstrāde

Kur iet tālāk