Към съдържанието
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 добавя /chat/completions към своя базов URL, SDK на Anthropic добавя /v1/messages. Име на модел, което Shannon не публикува, получава отговор 400 и unknown model. Модели и цени

Ключът Ви е на страницата Keys & usage. 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 и същата стойност се връща.

Community 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!"}]
  }'

За събитията на стрийм и типовете грешки вижте: Стрийминг Обработка на грешки