Pereiti prie turinio
SDK

SDK

Bet kuris OpenAI ar Anthropic SDK veikia iškart.

Shannon kalba OpenAI ir Anthropic ryšio formatais, todėl abiejų oficialius SDK naudojate tokius, kokie jie yra. Kliente pakeičiate tris reikšmes: bazinį URL, API raktą ir modelio id. Likęs kodas nesikeičia.

Ką nustatyti

Nustatymas OpenAI SDK Anthropic SDK
Bazinis URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API raktas Jūsų Shannon raktas. SDK siunčia jį kaip Authorization: Bearer. Jūsų Shannon raktas. SDK siunčia jį kaip x-api-key.
Modelis Paskelbtas modelio id, pavyzdžiui, shannon-3. Paskelbtas modelio id, pavyzdžiui, shannon-1.6-lite.
Kuriuos galinius taškus pasiekia /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Aplinkos kintamieji OPENAI_API_KEY ir OPENAI_BASE_URL, kuriuos Python ir JavaScript SDK nuskaito, kai nepaduodate reikšmės. ANTHROPIC_API_KEY ir ANTHROPIC_BASE_URL, kuriuos Python ir TypeScript SDK nuskaito, kai nepaduodate reikšmės.

Du baziniai URL skiriasi /v1: OpenAI SDK prie bazinio URL prideda /chat/completions, Anthropic SDK – /v1/messages. Į modelio pavadinimą, kurio Shannon neskelbia, atsakoma 400 ir unknown model. Modeliai ir kainos

Jūsų raktas yra puslapyje Raktai ir naudojimas. Raktai ir naudojimas

OpenAI SDK

Oficialūs OpenAI SDK kviečia POST /v1/chat/completions ir POST /v1/responses. Kiekvienas pavyzdys išsiunčia vieną naudotojo pranešimą ir išspausdina atsakymą.

# 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)
Kalba Diegimas Bazinio URL parinktis Šaltinis
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

Kiekvienas abiejų galinių taškų laukas aprašytas jų puslapiuose. Chat Completions Responses API

Anthropic SDK

Oficialūs Anthropic SDK kviečia POST /v1/messages. Jie kiekviename kreipinyje reikalauja max_tokens, todėl pavyzdžiuose naudojamas shannon-1.6-lite, kuris jį taiko. Kiekvienas pavyzdys išspausdina atsakymo teksto blokus.

# 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)
Kalba Diegimas Bazinio URL parinktis Šaltinis
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 formatas ir jo skirtumai aprašyti Anthropic suderinamumo puslapyje. Anthropic

Ką SDK gali laikyti garantuota

  • Užklausos laukas, kurio API nenaudoja, priimamas. Į žinomą API lauką, išsiųstą netinkamo tipo, atsakoma 422.
  • SDK pridedamos versijos ir beta antraštės (anthropic-version, anthropic-beta, openai-beta) priimamos. Nė viena iš jų nėra privaloma.
  • Atsakymo model yra paskelbtas id, todėl galite jį siųsti atgal tokį, koks yra.
  • Kelyje /v1/messages atsakymas gali prasidėti thinking bloku. Skaitykite tipo text blokus, o ne imkite pirmąjį bloką.
  • Srautinis perdavimas veikia per paties SDK srauto pagalbines funkcijas. Naudojimo duomenys ateina kiekvieno srauto pabaigoje.
  • Kiekvienas atsakymas turi antraštę x-request-id. Siųskite savo x-request-id ir ta pati reikšmė grįš.

Bendruomenės SDK

Kitų autorių OpenAI API parašyti klientai veikia taip pat: duokite klientui bazinį URL su /v1, savo raktą ir Shannon modelio id. Juos prižiūri jų autoriai, o ne Shannon.

Kalba Diegimas Klientas
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

Be SDK

SDK nereikia. Veikia bet kuris HTTP klientas, galintis siųsti JSON:

  • POST su JSON turiniu ir antraštė Content-Type: application/json. Be jos į užklausą atsakoma 415.
  • Jūsų raktas Authorization: Bearer <key> arba x-api-key: <key>. Abu veikia kiekviename galiniame taške.
  • Iki 32 MiB turinys.
  • Su "stream": true atsakymas yra serverio siunčiamų įvykių srautas (text/event-stream). Skaitykite jį eilutė po eilutės ir nebuferiuokite.
  • Klaida yra JSON turinys su error.type ir error.message, šalia HTTP būsenos.
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!"}]
  }'

Srauto įvykius ir klaidų tipus rasite čia: Srautinė transliacija Klaidų tvarkymas