Salta al contingut
SDKs

SDKs

Qualsevol SDK d'OpenAI o d'Anthropic funciona tal qual.

Shannon parla els formats de transmissió d'OpenAI i d'Anthropic, així que fas servir els SDK oficials dels dos tal com són. Canvies tres valors al client: la URL base, la clau API i l'id del model. La resta del teu codi continua igual.

Què cal definir

Ajust SDK d'OpenAI SDK d'Anthropic
URL base https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Clau API La teva clau Shannon. L'SDK l'envia com a Authorization: Bearer. La teva clau Shannon. L'SDK l'envia com a x-api-key.
Model Un id de model publicat, per exemple shannon-3. Un id de model publicat, per exemple shannon-1.6-lite.
Endpoints que assoleix /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Variables d'entorn OPENAI_API_KEY i OPENAI_BASE_URL, que llegeixen els SDK de Python i JavaScript quan no passes cap valor. ANTHROPIC_API_KEY i ANTHROPIC_BASE_URL, que llegeixen els SDK de Python i TypeScript quan no passes cap valor.

Les dues URL base es diferencien per /v1: un SDK d'OpenAI afegeix /chat/completions a la seva URL base, un SDK d'Anthropic afegeix /v1/messages. Un nom de model que Shannon no publica es respon amb 400 i unknown model. Models i preus

La teva clau és a la pàgina Keys & usage. Keys & usage

SDK d'OpenAI

Els SDK oficials d'OpenAI criden POST /v1/chat/completions i POST /v1/responses. Cada exemple envia un missatge d'usuari i imprimeix la resposta.

# 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)
Llenguatge Instal·lació Opció de URL base Font
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

Tots els camps dels dos endpoints es descriuen a les seves pròpies pàgines. Chat Completions API Responses

SDK d'Anthropic

Els SDK oficials d'Anthropic criden POST /v1/messages. Requereixen max_tokens a cada crida, així que els exemples fan servir shannon-1.6-lite, que l'aplica. Cada exemple imprimeix els blocs de text de la resposta.

# 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)
Llenguatge Instal·lació Opció de URL base Font
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

El format Messages i les seves diferències són a la pàgina de compatibilitat amb Anthropic. Anthropic

En què es poden basar els SDK

  • Un camp de sol·licitud que l'API no fa servir s'accepta. Un camp que l'API coneix, enviat amb un tipus incorrecte, es respon amb 422.
  • Les capçaleres de versió i beta que afegeixen els SDK (anthropic-version, anthropic-beta, openai-beta) s'accepten. Cap no és obligatòria.
  • El model d'una resposta és l'id publicat, així que el pots tornar a enviar tal com és.
  • A /v1/messages, una resposta pot començar amb un bloc thinking. Llegeix els blocs del tipus text en lloc de prendre el primer bloc.
  • El streaming funciona amb les eines de stream pròpies de l'SDK. L'ús arriba al final de cada stream.
  • Cada resposta porta una capçalera x-request-id. Envia el teu propi x-request-id i torna el mateix valor.

SDK de la comunitat

Els clients escrits per a l'API d'OpenAI per altres autors funcionen igual: dona al client la URL base amb /v1, la teva clau i un id de model Shannon. Els mantenen els seus autors, no Shannon.

Llenguatge Instal·lació Client
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

Sense SDK

No necessites cap SDK. Qualsevol client HTTP que pugui enviar JSON funciona:

  • POST amb un cos JSON i la capçalera Content-Type: application/json. Sense ella la sol·licitud es respon amb 415.
  • La teva clau a Authorization: Bearer <key> o a x-api-key: <key>. Les dues funcionen a tots els endpoints.
  • Un cos de fins a 32 MiB.
  • Amb "stream": true la resposta és un stream de server-sent events (text/event-stream). Llegeix-lo línia a línia i no el posis en buffer.
  • Un error és un cos JSON amb error.type i error.message, al costat de l'estat 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!"}]
  }'

Per als esdeveniments d'un stream i els tipus d'error, vegeu: Streaming Gestió d’errors