Saltar ao contido
SDKs

SDKs

Funciona de serie con calquera SDK de OpenAI ou Anthropic.

Shannon fala os formatos de rede de OpenAI e de Anthropic, así que usas os SDK oficiais de ambos tal como están. Cambias tres valores no cliente: a URL base, a clave API e o id do modelo. O resto do teu código queda igual.

Que definir

Axuste SDK de OpenAI SDK de Anthropic
URL base https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Clave API A túa clave de Shannon. O SDK envíaa como Authorization: Bearer. A túa clave de Shannon. O SDK envíaa como x-api-key.
Modelo Un id de modelo publicado, por exemplo shannon-3. Un id de modelo publicado, por exemplo shannon-1.6-lite.
Endpoints aos que chega /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Variables de contorna OPENAI_API_KEY e OPENAI_BASE_URL, lidas polos SDK de Python e JavaScript cando non pasas ningún valor. ANTHROPIC_API_KEY e ANTHROPIC_BASE_URL, lidas polos SDK de Python e TypeScript cando non pasas ningún valor.

As dúas URL base difiren en /v1: un SDK de OpenAI engade /chat/completions á súa URL base, un SDK de Anthropic engade /v1/messages. Un nome de modelo que Shannon non publica recibe 400 e unknown model. Modelos e prezos

A túa clave está na páxina Claves e uso. Claves e uso

SDK de OpenAI

Os SDK oficiais de OpenAI chaman a POST /v1/chat/completions e POST /v1/responses. Cada exemplo envía unha mensaxe de usuario e imprime a 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)
Linguaxe Instalación Opción de URL base Orixe
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

Todos os campos dos dous endpoints están descritos nas súas propias páxinas. Chat Completions API Responses

SDK de Anthropic

Os SDK oficiais de Anthropic chaman a POST /v1/messages. Requiren max_tokens en cada chamada, así que os exemplos usan shannon-1.6-lite, que o aplica. Cada exemplo imprime os bloques de texto da 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)
Linguaxe Instalación Opción de URL base Orixe
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

O formato Messages e as súas diferenzas están na páxina de compatibilidade con Anthropic. Anthropic

En que poden confiar os SDK

  • Acéptase un campo de solicitude que a API non usa. Un campo que a API coñece, enviado co tipo incorrecto, recibe 422.
  • Acéptanse as cabeceiras de versión e beta que engaden os SDK (anthropic-version, anthropic-beta, openai-beta). Ningunha é obrigatoria.
  • O model dunha resposta é o id publicado, así que podes devolvelo tal cal.
  • En /v1/messages unha resposta pode comezar cun bloque thinking. Le os bloques de tipo text en vez de tomar o primeiro bloque.
  • O streaming funciona cos axudantes de stream do propio SDK. O uso chega ao final de cada stream.
  • Todas as respostas levan unha cabeceira x-request-id. Envía o teu propio x-request-id e volve o mesmo valor.

SDK da comunidade

Os clientes escritos para a API de OpenAI por outros autores funcionan da mesma maneira: dálle ao cliente a URL base con /v1, a túa clave e un id de modelo de Shannon. Mantéñenos os seus autores, non Shannon.

Linguaxe Instalación Cliente
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

Sen SDK

Non necesitas un SDK. Funciona calquera cliente HTTP que poida enviar JSON:

  • POST cun corpo JSON e a cabeceira Content-Type: application/json. Sen ela, a solicitude recibe 415.
  • A túa clave en Authorization: Bearer <key> ou en x-api-key: <key>. Ambas funcionan en todos os endpoints.
  • Un corpo de ata 32 MiB.
  • Con "stream": true a resposta é un stream de server-sent events (text/event-stream). Léo liña a liña e non o almacenes en búfer.
  • Un erro é un corpo JSON con error.type e error.message, xunto ao estado 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!"}]
  }'

Para os eventos dun stream e os tipos de erro, consulta: Streaming Xestión de erros