Přeskočit na obsah
Rychlý start

Rychlý start

Pošlete první požadavek: získejte klíč, pošlete jednu zprávu a přečtěte odpověď. API mluví formáty OpenAI a Anthropic, takže SDK, které už používáte, funguje po změně základní URL a klíče.

1. Získejte klíč

Každý účet má jeden klíč API. Přihlaste se, otevřete Klíče a využití a zkopírujte jej. Klíč funguje na každém endpointu a u každého modelu. Klíče a využití

2. Nasměrujte klienta na API

Všechny endpointy leží pod jednou základní URL. SDK OpenAI ji přijímá s /v1 na konci; SDK Anthropic bez něj, protože /v1/messages přidává samo.

Klient Základní URL
SDK OpenAI a klienti kompatibilní s OpenAI https://api.shannon-ai.com/v1
SDK Anthropic https://api.shannon-ai.com

Text vytvářejí tři endpointy. Dosáhnou na stejné modely; zvolte ten, jehož formát už váš kód používá.

Endpoint Formát
POST /v1/chat/completions OpenAI Chat Completions
POST /v1/messages Anthropic Messages
POST /v1/responses OpenAI Responses

3. Pošlete první požadavek

Pošlete jednu zprávu user modelu shannon-3 na endpoint Chat Completions. YOUR_API_KEY nahraďte svým klíčem.

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)
Pole Typ Výchozí Popis
model string Id modelu, který odpoví. Id jsou vypsána na stránce Modely a ceny.
messages array Dosavadní konverzace: objekty s role a content. Poslední zpráva user je prompt. Povinné.
max_tokens integer 4096 Výstupní rozpočet požadavku, od 1 do 65,536. Požadavek si tuto částku rezervuje ze zůstatku a účtuje se mu to, co skutečně použil.
stream boolean false true posílá odpověď po kouscích, jak se píše.

Tělo požadavku je JSON a vyžaduje hlavičku Content-Type: application/json. Úplný seznam polí je na stránce endpointu. Chat Completions

Odpověď

Volání bez stream vrátí jeden objekt JSON, když je odpověď kompletní. Texty a čísla níže jsou příklady.

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
  }
}
Pole Typ Popis
id string chatcmpl- následované 32 hexadecimálními znaky.
object string Vždy chat.completion.
created integer Čas odpovědi v sekundách Unixu.
model string Zveřejněné id modelu, který odpověděl, i když jste poslali alias nebo jiný zápis.
choices array Vždy jedna položka, s index 0.
choices[0].message.role string Vždy assistant.
choices[0].message.content string | null Odpověď. Může být null, když odpověď nese tool_calls.
choices[0].message.reasoning_content string | null Uvažování modelu před odpovědí, nebo null, když žádné není.
choices[0].message.tool_calls array Přítomno, jen když model volá některý z nástrojů, které jste deklarovali.
choices[0].finish_reason string stop pro odpověď, tool_calls, když model volá nástroj.
usage.prompt_tokens integer Tokeny, které model pro tuto odpověď přečetl. U shannon-2-* a rodiny Shannon 3 to může být víc než text, který jste poslali.
usage.completion_tokens integer Tokeny, které model napsal.
usage.total_tokens integer Součet. Poplatek modelu Shannon se počítá z tohoto čísla.
  • usage obsahuje počty tokenů, ne peníze. Co volání ze zůstatku vzalo, je u každého požadavku vidět na stránce Klíče a využití; jak se to počítá, je na stránce Limity a zůstatek. Limity a zůstatek
  • Každá odpověď, také chybová a stream, má hlavičku x-request-id. Pokud váš požadavek nese hlavičku x-request-id, vrátí se její hodnota; jinak je hodnotou 12 hexadecimálních znaků. Uchovejte ji ve svých logech: pojmenovává tento jeden požadavek.

Totéž volání jako stream

Nastavte stream na true a odpověď čtěte, zatímco se píše. Vše ostatní v požadavku zůstává stejné.

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)

Každý rámec streamu je jeden řádek, který začíná data: a obsahuje objekt JSON. Jeden rámec, vypsaný na několika řádcích:

Jeden rámec
{
  "id": "chatcmpl-9b2f6c1e4a7d4f0f8a3c5d2e1b6a7c90",
  "object": "chat.completion.chunk",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello! "
      },
      "finish_reason": null
    }
  ]
}
Rámce, v pořadí delta finish_reason
Zatímco model uvažuje. Nula nebo více rámců. {"reasoning_content": "…"} null
Odpověď, po kouscích. Nula nebo více rámců. {"content": "…"} null
Poslední rámec JSON. Nese také usage; nemusíte o něj žádat. {} "stop"
Konec streamu: řádek data: [DONE].
  • Odpověď má status 200 a content-type: text/event-stream. Každý rámec je řádek data: <json> následovaný prázdným řádkem.
  • Řádek : ping přichází každých 15 sekund. Je to komentář, který udržuje spojení otevřené; klienti SSE jej přeskakují.
  • Selhání po otevření streamu přichází jako rámec data: {"error": {…}}. Status zůstává 200, proto kontrolujte rámce.

Streamování

Když volání selže

Chyba je objekt JSON s polem error, které obsahuje type a message. Toto jsou odpovědi, na které první volání nejčastěji narazí.

Stav Typ Zpráva Co to znamená
401 authentication_error Missing authentication Na API nedorazil žádný klíč. Pošlete Authorization: Bearer a za ním svůj klíč.
401 authentication_error Invalid API key Klíč není aktuálním klíčem žádného účtu. Zkopírujte jej znovu ze stránky Klíče a využití.
400 invalid_request_error unknown model: <id> model není zveřejněné id. Použijte id ze stránky Modely a ceny.
422 invalid_request_error Failed to deserialize the JSON body into the target type… Pole má špatný typ JSON, nebo chybí messages.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan Výstupní rozpočet požadavku se nevejde do vašeho zůstatku.

Zpracování chyb

Kam dál

  • Modely a ceny — Vyberte model: id, kontextová okna a ceny.
  • Chat Completions — Každé pole požadavku, pole odpovědi a událost streamu endpointu, který jste volali.
  • Streamování — Rámce streamu, keep-alive řádky a chyby uvnitř streamu.
  • Volání funkcí — Nechte model volat vaše funkce.
  • Limity a zůstatek — Co požadavek rezervuje a kolik stojí a kolik požadavků smíte poslat.
  • Playground — Vyzkoušejte požadavky v prohlížeči se svým klíčem.