Przejdź do treści
SDK

SDK

Każde SDK OpenAI lub Anthropic działa od razu.

Shannon mówi formatami OpenAI i Anthropic, więc oficjalnych SDK obu używasz bez zmian. W kliencie zmieniasz trzy wartości: base URL, klucz API i id modelu. Reszta kodu pozostaje taka sama.

Co ustawić

Ustawienie SDK OpenAI SDK Anthropic
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Klucz API Twój klucz Shannon. SDK wysyła go jako Authorization: Bearer. Twój klucz Shannon. SDK wysyła go jako x-api-key.
Model Opublikowane id modelu, na przykład shannon-3. Opublikowane id modelu, na przykład shannon-1.6-lite.
Endpointy, do których dociera /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Zmienne środowiskowe OPENAI_API_KEY i OPENAI_BASE_URL, odczytywane przez SDK Python i JavaScript, gdy nie podasz wartości. ANTHROPIC_API_KEY i ANTHROPIC_BASE_URL, odczytywane przez SDK Python i TypeScript, gdy nie podasz wartości.

Oba base URL różnią się o /v1: SDK OpenAI dodaje do swojego base URL /chat/completions, SDK Anthropic dodaje /v1/messages. Nazwa modelu, której Shannon nie publikuje, dostaje odpowiedź 400 i unknown model. Modele i ceny

Twój klucz jest na stronie Keys & usage. Keys & usage

SDK OpenAI

Oficjalne SDK OpenAI wywołują POST /v1/chat/completions i POST /v1/responses. Każdy przykład wysyła jedną wiadomość użytkownika i wypisuje odpowiedź.

# pip install openai
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!"}],
)
print(response.choices[0].message.content)
Język Instalacja Opcja base URL Źródło
Python pip install openai base_url openai/openai-python
JavaScript / TypeScript npm install openai baseURL openai/openai-node
Go go get github.com/openai/openai-go/v3 option.WithBaseURL openai/openai-go
Java com.openai:openai-java baseUrl openai/openai-java
.NET dotnet add package OpenAI OpenAIClientOptions.Endpoint openai/openai-dotnet

Każde pole obu endpointów jest opisane na ich własnych stronach. Chat Completions Responses API

SDK Anthropic

Oficjalne SDK Anthropic wywołują POST /v1/messages. Wymagają max_tokens w każdym wywołaniu, więc przykłady używają shannon-1.6-lite, który je stosuje. Każdy przykład wypisuje bloki tekstowe odpowiedzi.

# pip install anthropic
import anthropic

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

message = client.messages.create(
    model="shannon-1.6-lite",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)
Język Instalacja Opcja base URL Źródło
Python pip install anthropic base_url anthropics/anthropic-sdk-python
TypeScript npm install @anthropic-ai/sdk baseURL anthropics/anthropic-sdk-typescript
Go go get github.com/anthropics/anthropic-sdk-go option.WithBaseURL anthropics/anthropic-sdk-go
Java com.anthropic:anthropic-java baseUrl anthropics/anthropic-sdk-java

Format Messages i jego różnice opisuje strona zgodności z Anthropic. Format Anthropic

Na czym mogą polegać SDK

  • Pole zapytania, którego API nie używa, jest akceptowane. Pole, które API zna, wysłane z błędnym typem, dostaje odpowiedź 422.
  • Nagłówki wersji i beta, które dodają SDK (anthropic-version, anthropic-beta, openai-beta), są akceptowane. Żaden nie jest wymagany.
  • model odpowiedzi to opublikowane id, więc możesz odesłać je bez zmian.
  • W /v1/messages odpowiedź może zaczynać się od bloku thinking. Czytaj bloki typu text zamiast brać pierwszy blok.
  • Streaming działa przez własne pomocniki streamów SDK. Użycie (usage) przychodzi na końcu każdego streamu.
  • Każda odpowiedź niesie nagłówek x-request-id. Wyślij własny x-request-id, a ta sama wartość wróci.

SDK społeczności

Klienty napisane dla API OpenAI przez innych autorów działają tak samo: podaj klientowi base URL z /v1, swój klucz i id modelu Shannon. Są utrzymywane przez swoich autorów, nie przez Shannon.

Język Instalacja Klient
Go go get github.com/sashabaranov/go-openai sashabaranov/go-openai
Ruby gem install ruby-openai alexrudall/ruby-openai
PHP composer require openai-php/client openai-php/client
Rust cargo add async-openai 64bit/async-openai

Bez SDK

Nie potrzebujesz SDK. Działa każdy klient HTTP, który potrafi wysłać JSON:

  • POST z treścią JSON i nagłówkiem Content-Type: application/json. Bez niego zapytanie dostaje odpowiedź 415.
  • Twój klucz w Authorization: Bearer <key> lub w x-api-key: <key>. Oba działają w każdym endpoincie.
  • Treść do 32 MiB.
  • Z "stream": true odpowiedź jest strumieniem server-sent events (text/event-stream). Czytaj ją wiersz po wierszu i nie buforuj.
  • Błąd to treść JSON z error.type i error.message, obok statusu HTTP.
curl https://api.shannon-ai.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "messages": [{"role": "user", "content": "Hello, Shannon!"}]
  }'

Zdarzenia streamu i typy błędów opisują strony: Streaming Obsługa błędów