Перейти до вмісту
SDK

SDK

Будь-який SDK від OpenAI чи Anthropic працює одразу.

Shannon розмовляє мережевими форматами OpenAI та Anthropic, тож офіційні SDK обох ви використовуєте як є. У клієнті змінюються три значення: базовий URL, API-ключ та id моделі. Решта вашого коду лишається тією самою.

Що налаштувати

Налаштування SDK OpenAI SDK Anthropic
Базовий URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-ключ Ваш ключ Shannon. SDK надсилає його як Authorization: Bearer. Ваш ключ Shannon. SDK надсилає його як x-api-key.
Модель Опублікований id моделі, наприклад shannon-3. Опублікований id моделі, наприклад shannon-1.6-lite.
Ендпоінти, до яких він веде /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Змінні середовища OPENAI_API_KEY і OPENAI_BASE_URL, які читають SDK Python і JavaScript, якщо ви не передаєте значення. ANTHROPIC_API_KEY і ANTHROPIC_BASE_URL, які читають SDK Python і TypeScript, якщо ви не передаєте значення.

Два базові URL відрізняються на /v1: SDK OpenAI додає до свого базового URL /chat/completions, SDK Anthropic додає /v1/messages. Назва моделі, яку Shannon не публікує, отримує відповідь 400 і unknown model. Моделі та ціни

Ваш ключ — на сторінці Keys & usage. Ключі та використання

SDK OpenAI

Офіційні SDK OpenAI викликають POST /v1/chat/completions і POST /v1/responses. Кожен приклад надсилає одне повідомлення користувача й виводить відповідь.

# 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)
Мова Встановлення Опція базового URL Джерело
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

Кожне поле двох ендпоінтів описано на їхніх окремих сторінках. Chat Completions Responses API

SDK Anthropic

Офіційні SDK Anthropic викликають POST /v1/messages. Вони вимагають max_tokens у кожному виклику, тому в прикладах використано shannon-1.6-lite, який його застосовує. Кожен приклад виводить текстові блоки відповіді.

# 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)
Мова Встановлення Опція базового URL Джерело
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 і його відмінності описано на сторінці сумісності з Anthropic. Формат Anthropic

На що можуть покладатися SDK

  • Поле запиту, яке API не використовує, приймається. Поле, яке API знає, надіслане з неправильним типом, отримує відповідь 422.
  • Заголовки версії та beta, які додають SDK (anthropic-version, anthropic-beta, openai-beta), приймаються. Жоден з них не обов'язковий.
  • model у відповіді — це опублікований id, тож його можна надсилати назад як є.
  • На /v1/messages відповідь може починатися з блока thinking. Читайте блоки типу text, а не беріть перший блок.
  • Стрімінг працює через власні допоміжні засоби стріму SDK. Usage надходить наприкінці кожного стріму.
  • Кожна відповідь містить заголовок x-request-id. Надішліть власний x-request-id, і те саме значення повернеться.

SDK спільноти

Клієнти для API OpenAI, написані іншими авторами, працюють так само: вкажіть клієнту базовий URL з /v1, ваш ключ та id моделі Shannon. Їх підтримують їхні автори, а не Shannon.

Мова Встановлення Клієнт
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

Без SDK

SDK вам не потрібен. Працює будь-який HTTP-клієнт, що вміє надсилати JSON:

  • POST з тілом JSON і заголовком Content-Type: application/json. Без нього запит отримує відповідь 415.
  • Ваш ключ у Authorization: Bearer <key> або в x-api-key: <key>. Обидва працюють на кожному ендпоінті.
  • Тіло до 32 MiB.
  • З "stream": true відповідь — це потік server-sent events (text/event-stream). Читайте його по рядках і не буферизуйте.
  • Помилка — це тіло JSON з error.type і error.message поряд зі статусом 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!"}]
  }'

Про події стріму й типи помилок див.: Стримінг Обробка помилок