Preskoči na sadržaj
SDK

SDK

Svaki OpenAI ili Anthropic SDK radi odmah.

Shannon govori OpenAI i Anthropic mrežne formate, pa zvanične SDK-ove oba koristite onakve kakvi jesu. U klijentu menjate tri vrednosti: osnovni URL, API ključ i id modela. Ostatak vašeg koda ostaje isti.

Šta podesiti

Podešavanje OpenAI SDK-ovi Anthropic SDK-ovi
Osnovni URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API ključ Vaš Shannon ključ. SDK ga šalje kao Authorization: Bearer. Vaš Shannon ključ. SDK ga šalje kao x-api-key.
Model Objavljeni id modela, na primer shannon-3. Objavljeni id modela, na primer shannon-1.6-lite.
Endpointi do kojih dopire /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Promenljive okruženja OPENAI_API_KEY i OPENAI_BASE_URL, čitaju ih Python i JavaScript SDK-ovi kada ne prosledite vrednost. ANTHROPIC_API_KEY i ANTHROPIC_BASE_URL, čitaju ih Python i TypeScript SDK-ovi kada ne prosledite vrednost.

Dva osnovna URL-a razlikuju se za /v1: OpenAI SDK dodaje /chat/completions na svoj osnovni URL, Anthropic SDK dodaje /v1/messages. Na ime modela koje Shannon ne objavljuje odgovara se sa 400 i unknown model. Modeli i cene

Vaš ključ je na stranici Ključevi i upotreba. Ključevi i upotreba

OpenAI SDK-ovi

Zvanični OpenAI SDK-ovi pozivaju POST /v1/chat/completions i POST /v1/responses. Svaki primer šalje jednu korisničku poruku i ispisuje odgovor.

# 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)
Jezik Instalacija Opcija osnovnog URL-a Izvor
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

Svako polje ova dva endpointa opisano je na njihovim stranicama. Chat Completions Responses API

Anthropic SDK-ovi

Zvanični Anthropic SDK-ovi pozivaju POST /v1/messages. Traže max_tokens na svakom pozivu, pa primeri koriste shannon-1.6-lite, koji ga primenjuje. Svaki primer ispisuje tekstualne blokove odgovora.

# 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)
Jezik Instalacija Opcija osnovnog URL-a Izvor
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 format i njegove razlike nalaze se na stranici o Anthropic kompatibilnosti. Anthropic format

Na šta SDK-ovi mogu da se oslone

  • Polje zahteva koje API ne koristi se prihvata. Na polje koje API poznaje, poslato sa pogrešnim tipom, odgovara se sa 422.
  • Zaglavlja verzije i beta koja SDK-ovi dodaju (anthropic-version, anthropic-beta, openai-beta) se prihvataju. Nijedno nije obavezno.
  • model u odgovoru je objavljeni id, pa ga možete poslati nazad takvog kakav jeste.
  • Na /v1/messages odgovor može da počne blokom thinking. Čitajte blokove tipa text umesto da uzimate prvi blok.
  • Streaming radi preko sopstvenih stream helpera SDK-a. Upotreba stiže na kraju svakog streama.
  • Svaki odgovor nosi zaglavlje x-request-id. Pošaljite sopstveni x-request-id i ista vrednost se vraća.

SDK-ovi zajednice

Klijenti koje su za OpenAI API napisali drugi autori rade na isti način: dajte klijentu osnovni URL sa /v1, svoj ključ i id Shannon modela. Njih održavaju njihovi autori, a ne Shannon.

Jezik Instalacija Klijent
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

Bez SDK-a

Ne treba vam SDK. Radi svaki HTTP klijent koji može da pošalje JSON:

  • POST sa JSON telom i zaglavljem Content-Type: application/json. Bez njega se na zahtev odgovara sa 415.
  • Vaš ključ u Authorization: Bearer <key> ili u x-api-key: <key>. Oba rade na svakom endpointu.
  • Telo do 32 MiB.
  • Sa "stream": true odgovor je tok server-sent events (text/event-stream). Čitajte ga liniju po liniju i ne baferujte ga.
  • Greška je JSON telo sa error.type i error.message, pored HTTP statusa.
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!"}]
  }'

Za događaje streama i tipove grešaka pogledajte: Streaming Upravljanje greškama