Перейти к содержимому
SDK

SDK

Любой SDK OpenAI или Anthropic работает сразу, без настройки.

Shannon понимает форматы OpenAI и Anthropic, поэтому официальные SDK обоих можно использовать как есть. В клиенте меняются три значения: базовый URL, API-ключ и id модели. Остальной код остается прежним.

Что настроить

Настройка OpenAI SDK Anthropic SDK
Базовый 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: OpenAI SDK добавляет к своему базовому URL /chat/completions, а Anthropic SDK — /v1/messages. На имя модели, которое Shannon не публикует, приходит ответ 400 и unknown model. Модели и цены

Ваш ключ находится на странице Keys & usage. Keys & usage

OpenAI SDK

Официальные OpenAI SDK вызывают 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

Anthropic SDK

Официальные Anthropic SDK вызывают 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 для потоков. Данные об использовании приходят в конце каждого потока.
  • В каждом ответе есть заголовок x-request-id. Отправьте свой x-request-id, и то же значение вернется.

SDK сообщества

Клиенты для OpenAI API, написанные другими авторами, работают так же: передайте клиенту базовый 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!"}]
  }'

О событиях потока и типах ошибок см.: Потоковая передача Обработка ошибок