Hoppa till innehållet
SDK:er

SDK:er

Valfri OpenAI- eller Anthropic-SDK fungerar direkt.

Shannon talar både OpenAI:s och Anthropics wire-format, så du använder de officiella SDK:erna för båda som de är. Du ändrar tre värden i klienten: bas-URL:en, API-nyckeln och modell-id:t. Resten av din kod är oförändrad.

Vad som ska ställas in

Inställning OpenAI-SDK:er Anthropic-SDK:er
Bas-URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-nyckel Din Shannon-nyckel. SDK:n skickar den som Authorization: Bearer. Din Shannon-nyckel. SDK:n skickar den som x-api-key.
Modell Ett publicerat modell-id, till exempel shannon-3. Ett publicerat modell-id, till exempel 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 och OPENAI_BASE_URL, som läses av Python- och JavaScript-SDK:erna när du inte anger något värde. ANTHROPIC_API_KEY och ANTHROPIC_BASE_URL, som läses av Python- och TypeScript-SDK:erna när du inte anger något värde.

De två bas-URL:erna skiljer sig med /v1: en OpenAI-SDK lägger till /chat/completions på sin bas-URL, en Anthropic-SDK lägger till /v1/messages. Ett modellnamn som Shannon inte publicerar besvaras med 400 och unknown model. Modeller och priser

Din nyckel finns på sidan Nycklar och användning. Nycklar och användning

OpenAI-SDK:er

De officiella OpenAI-SDK:erna anropar POST /v1/chat/completions och POST /v1/responses. Varje exempel skickar ett användarmeddelande och 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 Installation Alternativ för bas-URL Källa
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

Varje fält i de två endpointsen beskrivs på deras egna sidor. Chat Completions Responses API

Anthropic-SDK:er

De officiella Anthropic-SDK:erna anropar POST /v1/messages. De kräver max_tokens i varje anrop, så exemplen använder shannon-1.6-lite, som tillämpar det. Varje exempel skriver ut svarets textblock.

# 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 Installation Alternativ för bas-URL Källa
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 och dess skillnader finns på sidan om Anthropic-kompatibilitet. Anthropic‑format

Vad SDK:erna kan lita på

  • Ett begäranfält som API:et inte använder accepteras. Ett fält som API:et känner till, skickat med fel typ, besvaras med 422.
  • Version- och beta-headrarna som SDK:erna lägger till (anthropic-version, anthropic-beta, openai-beta) accepteras. Ingen av dem är obligatorisk.
  • Ett svars model är det publicerade id:t, så du kan skicka tillbaka det som det är.
  • På /v1/messages kan ett svar börja med ett thinking-block. Läs blocken av typen text i stället för att ta det första blocket.
  • Streaming fungerar genom SDK:ns egna stream-hjälpfunktioner. Usage kommer i slutet av varje ström.
  • Varje svar bär en x-request-id-header. Skicka din egen x-request-id så kommer samma värde tillbaka.

Community-SDK:er

Klienter skrivna för OpenAI-API:et av andra upphovsmän fungerar på samma sätt: ge klienten bas-URL:en med /v1, din nyckel och ett Shannon-modell-id. De underhålls av sina upphovsmän, inte av Shannon.

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

Utan en SDK

Du behöver ingen SDK. Vilken HTTP-klient som helst som kan skicka JSON fungerar:

  • POST med en JSON-body och headern Content-Type: application/json. Utan den besvaras begäran med 415.
  • Din nyckel i Authorization: Bearer <key> eller i x-api-key: <key>. Båda fungerar på varje endpoint.
  • En body på upp till 32 MiB.
  • Med "stream": true är svaret en server-sent event-ström (text/event-stream). Läs den rad för rad och buffra den inte.
  • Ett fel är en JSON-body med error.type och error.message, bredvid 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!"}]
  }'

För en strömmens händelser och feltyperna, se: Streaming Felhantering