Hopp til innholdet
SDK-er

SDK-er

Alle OpenAI- og Anthropic-SDK-er fungerer rett ut av boksen.

Shannon snakker både OpenAI- og Anthropic-formatene, så du bruker de offisielle SDK-ene fra begge som de er. Du endrer tre verdier i klienten: base-URL-en, API-nøkkelen og modell-id-en. Resten av koden din forblir den samme.

Hva du skal sette

Innstilling OpenAI-SDK-er Anthropic-SDK-er
Base-URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-nøkkel Shannon-nøkkelen din. SDK-en sender den som Authorization: Bearer. Shannon-nøkkelen din. SDK-en sender den som x-api-key.
Modell En publisert modell-id, for eksempel shannon-3. En publisert modell-id, for eksempel shannon-1.6-lite.
Endepunkter 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, lest av Python- og JavaScript-SDK-ene når du ikke sender noen verdi. ANTHROPIC_API_KEY og ANTHROPIC_BASE_URL, lest av Python- og TypeScript-SDK-ene når du ikke sender noen verdi.

De to base-URL-ene skiller seg med /v1: en OpenAI-SDK legger /chat/completions til base-URL-en sin, en Anthropic-SDK legger til /v1/messages. Et modellnavn som Shannon ikke publiserer, besvares med 400 og unknown model. Modeller og priser

Nøkkelen din finner du på siden Keys & usage. Nøkler og bruk

OpenAI-SDK-er

De offisielle OpenAI-SDK-ene kaller POST /v1/chat/completions og POST /v1/responses. Hvert eksempel sender én brukermelding og skriver ut 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)
Språk Installer Valg 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 endepunktene er beskrevet på sine egne sider. Chat Completions Responses API

Anthropic-SDK-er

De offisielle Anthropic-SDK-ene kaller POST /v1/messages. De krever max_tokens i hvert kall, så eksemplene bruker shannon-1.6-lite, som tar hensyn til det. Hvert eksempel skriver ut tekstblokkene i svaret.

# 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)
Språk Installer Valg 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 forskjellene er på siden om Anthropic-kompatibilitet. Anthropic-format

Hva SDK-ene kan stole på

  • Et forespørselsfelt som API-et ikke bruker, godtas. Et felt API-et kjenner, sendt med feil type, besvares med 422.
  • Versjons- og beta-headerne SDK-ene legger til (anthropic-version, anthropic-beta, openai-beta) godtas. Ingen av dem er påkrevd.
  • model i et svar er den publiserte id-en, så du kan sende den tilbake som den er.
  • På /v1/messages kan et svar begynne med en thinking-blokk. Les blokkene av typen text i stedet for å ta den første blokken.
  • Streaming fungerer gjennom SDK-ens egne strømhjelpere. Usage kommer på slutten av hver strøm.
  • Hvert svar har en x-request-id-header. Send din egen x-request-id, så kommer den samme verdien tilbake.

SDK-er fra fellesskapet

Klienter skrevet for OpenAI-API-et av andre forfattere fungerer på samme måte: gi klienten base-URL-en med /v1, nøkkelen din og en Shannon-modell-id. Disse vedlikeholdes av forfatterne sine, ikke av Shannon.

Språk Installer 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

Uten SDK

Du trenger ikke en SDK. Enhver HTTP-klient som kan sende JSON, fungerer:

  • POST med en JSON-kropp og headeren Content-Type: application/json. Uten den besvares forespørselen med 415.
  • Nøkkelen din i Authorization: Bearer <key> eller i x-api-key: <key>. Begge fungerer på alle endepunkter.
  • En kropp på opptil 32 MiB.
  • Med "stream": true er svaret en server-sent event-strøm (text/event-stream). Les den linje for linje og ikke buffer den.
  • En feil er en JSON-kropp med error.type og error.message, ved siden av HTTP-statusen.
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 hendelsene i en strøm og feiltypene, se: Strømming Feilhåndtering