Gå til indhold
SDK'er

SDK'er

Enhver OpenAI- eller Anthropic-SDK virker lige ud af kassen.

Shannon taler både OpenAI's og Anthropics wire-formater, så du bruger begges officielle SDK'er, som de er. Du ændrer tre værdier i klienten: base-URL'en, API-nøglen og model-id'et. Resten af din kode forbliver den samme.

Hvad du skal indstille

Indstilling OpenAI-SDK'er Anthropic-SDK'er
Base-URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-nøgle Din Shannon-nøgle. SDK'et sender den som Authorization: Bearer. Din Shannon-nøgle. SDK'et sender den som x-api-key.
Model Et offentliggjort model-id, f.eks. shannon-3. Et offentliggjort model-id, f.eks. shannon-1.6-lite.
Endpoints, den når /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Miljøvariabler OPENAI_API_KEY og OPENAI_BASE_URL, læst af Python- og JavaScript-SDK'erne, når du ikke angiver nogen værdi. ANTHROPIC_API_KEY og ANTHROPIC_BASE_URL, læst af Python- og TypeScript-SDK'erne, når du ikke angiver nogen værdi.

De to base-URL'er adskiller sig med /v1: et OpenAI-SDK tilføjer /chat/completions til sin base-URL, et Anthropic-SDK tilføjer /v1/messages. Et modelnavn, som Shannon ikke offentliggør, besvares med 400 og unknown model. Modeller og priser

Din nøgle står på siden Nøgler og forbrug. Nøgler og forbrug

OpenAI-SDK'er

De officielle OpenAI-SDK'er kalder POST /v1/chat/completions og POST /v1/responses. Hvert eksempel sender én brugerbesked og udskriver svaret.

# 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)
Sprog Installation Indstilling for base-URL Kilde
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

Hvert felt i de to endpoints er beskrevet på deres egne sider. Chat Completions Responses API

Anthropic-SDK'er

De officielle Anthropic-SDK'er kalder POST /v1/messages. De kræver max_tokens i hvert kald, så eksemplerne bruger shannon-1.6-lite, som anvender det. Hvert eksempel udskriver svarets tekstblokke.

# 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)
Sprog Installation Indstilling for base-URL Kilde
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

Messages-formatet og dets forskelle står på siden om Anthropic-kompatibilitet. Anthropic-format

Hvad SDK'erne kan regne med

  • Et anmodningsfelt, API'et ikke bruger, accepteres. Et felt, API'et kender, sendt med den forkerte type, besvares med 422.
  • Version- og beta-headerne, som SDK'erne tilføjer (anthropic-version, anthropic-beta, openai-beta), accepteres. Ingen af dem er påkrævet.
  • Et svars model er det offentliggjorte id, så du kan sende det tilbage, som det er.
  • På /v1/messages kan et svar starte med en thinking-blok. Læs blokkene af typen text i stedet for at tage den første blok.
  • Streaming virker via SDK'ets egne stream-hjælpere. Usage ankommer til sidst i hver stream.
  • Hvert svar har en x-request-id-header. Send din egen x-request-id, og den samme værdi kommer tilbage.

SDK'er fra fællesskabet

Klienter skrevet til OpenAI API'et af andre forfattere virker på samme måde: giv klienten base-URL'en med /v1, din nøgle og et Shannon-model-id. De vedligeholdes af deres forfattere, ikke af Shannon.

Sprog Installation 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

Uden et SDK

Du behøver ikke et SDK. Enhver HTTP-klient, der kan sende JSON, virker:

  • POST med en JSON-body og headeren Content-Type: application/json. Uden den besvares anmodningen med 415.
  • Din nøgle i Authorization: Bearer <key> eller i x-api-key: <key>. Begge virker på alle endpoints.
  • En body på op til 32 MiB.
  • Med "stream": true er svaret en server-sent event-stream (text/event-stream). Læs den linje for linje, og buffer den ikke.
  • En fejl er en JSON-body med error.type og error.message, ved siden af HTTP-statussen.
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!"}]
  }'

For en streams hændelser og fejltyperne, se: Streaming Fejlhåndtering