Sari la conținut
SDK-uri

SDK-uri

Orice SDK OpenAI sau Anthropic funcționează din start.

Shannon vorbește formatele de comunicare OpenAI și Anthropic, deci folosești SDK-urile oficiale ale ambelor așa cum sunt. Schimbi trei valori în client: base URL, cheia API și id-ul modelului. Restul codului rămâne la fel.

Ce setezi

Setare SDK-uri OpenAI SDK-uri Anthropic
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Cheie API Cheia ta Shannon. SDK-ul o trimite ca Authorization: Bearer. Cheia ta Shannon. SDK-ul o trimite ca x-api-key.
Model Un id de model publicat, de exemplu shannon-3. Un id de model publicat, de exemplu shannon-1.6-lite.
Endpoint-uri pe care le atinge /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Variabile de mediu OPENAI_API_KEY și OPENAI_BASE_URL, citite de SDK-urile Python și JavaScript când nu transmiți nicio valoare. ANTHROPIC_API_KEY și ANTHROPIC_BASE_URL, citite de SDK-urile Python și TypeScript când nu transmiți nicio valoare.

Cele două base URL-uri diferă prin /v1: un SDK OpenAI adaugă /chat/completions la base URL, un SDK Anthropic adaugă /v1/messages. Un nume de model pe care Shannon nu îl publică primește răspuns 400 și unknown model. Modele și prețuri

Cheia ta se află pe pagina Keys & usage. Chei și utilizare

SDK-uri OpenAI

SDK-urile oficiale OpenAI apelează POST /v1/chat/completions și POST /v1/responses. Fiecare exemplu trimite un mesaj de utilizator și afișează răspunsul.

# 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)
Limbaj Instalare Opțiunea pentru base URL Sursă
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

Fiecare câmp al celor două endpoint-uri este descris pe paginile lor. Chat Completions Responses API

SDK-uri Anthropic

SDK-urile oficiale Anthropic apelează POST /v1/messages. Ele cer max_tokens la fiecare apel, deci exemplele folosesc shannon-1.6-lite, care îl aplică. Fiecare exemplu afișează blocurile de text ale răspunsului.

# 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)
Limbaj Instalare Opțiunea pentru base URL Sursă
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

Formatul Messages și diferențele lui se află pe pagina de compatibilitate Anthropic. Format Anthropic

Pe ce se pot baza SDK-urile

  • Un câmp de cerere pe care API-ul nu îl folosește este acceptat. Un câmp pe care API-ul îl cunoaște, trimis cu tipul greșit, primește răspuns 422.
  • Header-ele de versiune și beta pe care le adaugă SDK-urile (anthropic-version, anthropic-beta, openai-beta) sunt acceptate. Niciunul nu este obligatoriu.
  • model dintr-un răspuns este id-ul publicat, deci îl poți trimite înapoi așa cum este.
  • Pe /v1/messages, un răspuns poate începe cu un bloc thinking. Citește blocurile de tip text în loc să iei primul bloc.
  • Streaming-ul funcționează prin helper-ele de stream ale SDK-ului. Utilizarea sosește la finalul fiecărui stream.
  • Fiecare răspuns conține un header x-request-id. Trimite propriul x-request-id și aceeași valoare revine.

SDK-uri comunitare

Clienții scriși pentru API-ul OpenAI de alți autori funcționează la fel: dă-i clientului base URL cu /v1, cheia ta și un id de model Shannon. Aceștia sunt întreținuți de autorii lor, nu de Shannon.

Limbaj Instalare 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

Fără SDK

Nu ai nevoie de un SDK. Funcționează orice client HTTP care poate trimite JSON:

  • POST cu un corp JSON și header-ul Content-Type: application/json. Fără el, cererea primește răspuns 415.
  • Cheia ta în Authorization: Bearer <key> sau în x-api-key: <key>. Ambele funcționează pe fiecare endpoint.
  • Un corp de până la 32 MiB.
  • Cu "stream": true, răspunsul este un stream de server-sent events (text/event-stream). Citește-l linie cu linie și nu îl pune în buffer.
  • O eroare este un corp JSON cu error.type și error.message, alături de statusul 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!"}]
  }'

Pentru evenimentele unui stream și tipurile de erori, vezi: Streaming Gestionare erori