Прескокни до содржината
SDK

SDK

Секој OpenAI или Anthropic SDK работи веднаш.

Shannon ги зборува форматите на OpenAI и Anthropic, па ги користите официјалните SDK-а на двете каква што се. Во клиентот менувате три вредности: основниот URL, API клучот и идот на моделот. Остатокот од вашиот код останува ист.

Што да поставите

Поставка 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.
Модел Објавен ид на модел, на пример shannon-3. Објавен ид на модел, на пример 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. Модели и цени

Вашиот клуч е на страницата Клучеви и употреба. Клучеви и употреба

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.
  • Header-ите за верзија и beta што ги додаваат SDK-ата (anthropic-version, anthropic-beta, openai-beta) се прифаќаат. Ниту еден не е задолжителен.
  • model во одговорот е објавениот ид, па можете да го испратите назад каков што е.
  • На /v1/messages одговорот може да започне со блок thinking. Читајте ги блоковите од тип text наместо да го земате првиот блок.
  • Streaming работи преку сопствените помошници за streaming на SDK-то. Usage пристигнува на крајот од секој streaming.
  • Секој одговор носи header x-request-id. Испратете свој x-request-id и истата вредност се враќа.

SDK-а од заедницата

Клиентите напишани за API-то на OpenAI од други автори работат на ист начин: дајте му на клиентот основниот URL со /v1, вашиот клуч и ид на модел 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 тело и header 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!"}]
  }'

За настаните на streaming и типовите на грешки, видете: Стриминг Ракување со грешки