Langkau ke kandungan
SDK

SDK

Mana-mana SDK OpenAI atau Anthropic berfungsi terus.

Shannon bertutur dalam format wayar OpenAI dan Anthropic, jadi anda menggunakan SDK rasmi kedua-duanya seadanya. Anda menukar tiga nilai dalam klien: base URL, kunci API dan id model. Kod anda yang lain kekal sama.

Apa yang perlu ditetapkan

Tetapan SDK OpenAI SDK Anthropic
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Kunci API Kunci Shannon anda. SDK menghantarnya sebagai Authorization: Bearer. Kunci Shannon anda. SDK menghantarnya sebagai x-api-key.
Model Id model yang diterbitkan, contohnya shannon-3. Id model yang diterbitkan, contohnya shannon-1.6-lite.
Endpoint yang dicapainya /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Pemboleh ubah persekitaran OPENAI_API_KEY dan OPENAI_BASE_URL, dibaca oleh SDK Python dan JavaScript apabila anda tidak memberikan nilai. ANTHROPIC_API_KEY dan ANTHROPIC_BASE_URL, dibaca oleh SDK Python dan TypeScript apabila anda tidak memberikan nilai.

Kedua-dua base URL berbeza dengan /v1: SDK OpenAI menambah /chat/completions pada base URL-nya, SDK Anthropic menambah /v1/messages. Nama model yang tidak diterbitkan oleh Shannon dijawab dengan 400 dan unknown model. Model & harga

Kunci anda terdapat pada halaman Kunci & penggunaan. Kunci & penggunaan

SDK OpenAI

SDK OpenAI rasmi memanggil POST /v1/chat/completions dan POST /v1/responses. Setiap sampel menghantar satu mesej pengguna dan mencetak jawapannya.

# 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)
Bahasa Pasang Pilihan base URL Sumber
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

Setiap medan bagi kedua-dua endpoint diterangkan pada halamannya sendiri. Chat Completions API Responses

SDK Anthropic

SDK Anthropic rasmi memanggil POST /v1/messages. Ia memerlukan max_tokens pada setiap panggilan, jadi sampel menggunakan shannon-1.6-lite, yang menggunakannya. Setiap sampel mencetak blok teks jawapan.

# 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)
Bahasa Pasang Pilihan base URL Sumber
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

Format Messages dan perbezaannya terdapat pada halaman keserasian Anthropic. Format Antropik

Apa yang boleh diharapkan oleh SDK

  • Medan permintaan yang tidak digunakan oleh API diterima. Medan yang dikenali oleh API, dihantar dengan jenis yang salah, dijawab dengan 422.
  • Header version dan beta yang ditambah oleh SDK (anthropic-version, anthropic-beta, openai-beta) diterima. Tiada satu pun wajib.
  • model dalam balasan ialah id yang diterbitkan, jadi anda boleh menghantarnya kembali seadanya.
  • Pada /v1/messages, balasan boleh bermula dengan blok thinking. Baca blok berjenis text dan bukannya mengambil blok pertama.
  • Streaming berfungsi melalui pembantu stream SDK sendiri. Usage tiba pada penghujung setiap stream.
  • Setiap balasan membawa header x-request-id. Hantar x-request-id anda sendiri dan nilai yang sama dikembalikan.

SDK komuniti

Klien yang ditulis untuk API OpenAI oleh pengarang lain berfungsi dengan cara yang sama: berikan klien base URL dengan /v1, kunci anda dan id model Shannon. Ini diselenggara oleh pengarangnya, bukan oleh Shannon.

Bahasa Pasang Klien
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

Tanpa SDK

Anda tidak memerlukan SDK. Mana-mana klien HTTP yang boleh menghantar JSON berfungsi:

  • POST dengan badan JSON dan header Content-Type: application/json. Tanpanya, permintaan dijawab dengan 415.
  • Kunci anda dalam Authorization: Bearer <key> atau dalam x-api-key: <key>. Kedua-duanya berfungsi pada setiap endpoint.
  • Badan sehingga 32 MiB.
  • Dengan "stream": true, balasan ialah stream server-sent event (text/event-stream). Bacanya baris demi baris dan jangan buffer.
  • Ralat ialah badan JSON dengan error.type dan error.message, di sebelah status 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!"}]
  }'

Untuk peristiwa stream dan jenis ralat, lihat: Penstriman Pengendalian Ralat