Naar de inhoud
SDK's

SDK's

Elke OpenAI- of Anthropic-SDK werkt direct.

Shannon spreekt de wire-formaten van OpenAI en Anthropic, dus je gebruikt de officiële SDK's van beide zoals ze zijn. Je wijzigt drie waarden in de client: de basis-URL, de API-sleutel en de model-id. De rest van je code blijft hetzelfde.

Wat je instelt

Instelling OpenAI-SDK's Anthropic-SDK's
Basis-URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-sleutel Je Shannon-sleutel. De SDK verstuurt hem als Authorization: Bearer. Je Shannon-sleutel. De SDK verstuurt hem als x-api-key.
Model Een gepubliceerde model-id, bijvoorbeeld shannon-3. Een gepubliceerde model-id, bijvoorbeeld shannon-1.6-lite.
Endpoints die het bereikt /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Omgevingsvariabelen OPENAI_API_KEY en OPENAI_BASE_URL, gelezen door de Python- en JavaScript-SDK's als je geen waarde meegeeft. ANTHROPIC_API_KEY en ANTHROPIC_BASE_URL, gelezen door de Python- en TypeScript-SDK's als je geen waarde meegeeft.

De twee basis-URL's verschillen door /v1: een OpenAI-SDK voegt /chat/completions toe aan zijn basis-URL, een Anthropic-SDK voegt /v1/messages toe. Een modelnaam die Shannon niet publiceert, wordt beantwoord met 400 en unknown model. Modellen en prijzen

Je sleutel staat op de pagina Keys & usage. Sleutels en gebruik

OpenAI-SDK's

De officiële OpenAI-SDK's roepen POST /v1/chat/completions en POST /v1/responses aan. Elk voorbeeld verstuurt één gebruikersbericht en drukt het antwoord af.

# 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)
Taal Installatie Optie voor basis-URL Bron
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

Elk veld van de twee endpoints wordt beschreven op hun eigen pagina's. Chat Completions Responses API

Anthropic-SDK's

De officiële Anthropic-SDK's roepen POST /v1/messages aan. Ze vereisen max_tokens bij elke call, dus de voorbeelden gebruiken shannon-1.6-lite, dat het toepast. Elk voorbeeld drukt de tekstblokken van het antwoord af.

# 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)
Taal Installatie Optie voor basis-URL Bron
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

Het Messages-formaat en de verschillen staan op de pagina Anthropic-compatibiliteit. Anthropic‑formaat

Waarop de SDK's kunnen vertrouwen

  • Een aanvraagveld dat de API niet gebruikt, wordt geaccepteerd. Een veld dat de API kent en met het verkeerde type is verstuurd, wordt beantwoord met 422.
  • De versie- en beta-headers die de SDK's toevoegen (anthropic-version, anthropic-beta, openai-beta) worden geaccepteerd. Geen ervan is vereist.
  • Het model van een antwoord is de gepubliceerde id, dus je kunt hem ongewijzigd terugsturen.
  • Op /v1/messages kan een antwoord beginnen met een thinking-blok. Lees de blokken van het type text in plaats van het eerste blok te nemen.
  • Streaming werkt via de eigen streamhelpers van de SDK. Het gebruik komt aan het eind van elke stream binnen.
  • Elk antwoord bevat een x-request-id-header. Stuur je eigen x-request-id mee en dezelfde waarde komt terug.

Community-SDK's

Clients die door andere auteurs voor de OpenAI-API zijn geschreven, werken op dezelfde manier: geef de client de basis-URL met /v1, je sleutel en een Shannon-model-id. Deze worden onderhouden door hun auteurs, niet door Shannon.

Taal Installatie 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

Zonder SDK

Je hebt geen SDK nodig. Elke HTTP-client die JSON kan versturen, werkt:

  • POST met een JSON-body en de header Content-Type: application/json. Zonder deze header wordt de aanvraag beantwoord met 415.
  • Je sleutel in Authorization: Bearer <key> of in x-api-key: <key>. Beide werken op elk endpoint.
  • Een body tot 32 MiB.
  • Met "stream": true is het antwoord een server-sent event-stream (text/event-stream). Lees hem regel voor regel en buffer hem niet.
  • Een fout is een JSON-body met error.type en error.message, naast de HTTP-status.
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!"}]
  }'

Voor de events van een stream en de fouttypen, zie: Streaming Foutafhandeling