Անցնել բովանդակությանը
SDK-ներ

SDK-ներ

Ցանկացած OpenAI կամ Anthropic SDK աշխատում է անմիջապես։

Shannon-ը խոսում է OpenAI-ի և Anthropic-ի wire ձևաչափերով, ուստի երկուսի պաշտոնական SDK-ներն օգտագործում եք այնպես, ինչպես կան։ Կլիենտում փոխում եք երեք արժեք՝ base URL-ը, API բանալին և մոդելի id-ն։ Ձեր կոդի մնացած մասը մնում է նույնը։

Ինչ սահմանել

Կարգավորում OpenAI SDK-ներ Anthropic SDK-ներ
Base 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։
Endpoint-ները, որոնց այն հասնում է /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Միջավայրի փոփոխականներ OPENAI_API_KEY և OPENAI_BASE_URL. Python և JavaScript SDK-ները կարդում են դրանք, երբ արժեք չեք տալիս։ ANTHROPIC_API_KEY և ANTHROPIC_BASE_URL. Python և TypeScript SDK-ները կարդում են դրանք, երբ արժեք չեք տալիս։

Երկու base URL-ները տարբերվում են /v1-ով. OpenAI SDK-ն իր base URL-ին ավելացնում է /chat/completions, Anthropic SDK-ն՝ /v1/messages։ Մոդելի անունը, որը Shannon-ը չի հրապարակում, պատասխանվում է 400-ով և unknown model-ով։ Մոդելներ և գներ

Ձեր բանալին Keys & usage էջում է։ Բանալիներ և օգտագործում

OpenAI SDK-ներ

Պաշտոնական OpenAI SDK-ները կանչում են POST /v1/chat/completions և POST /v1/responses։ Յուրաքանչյուր օրինակ ուղարկում է մեկ user հաղորդագրություն և տպում պատասխանը։

# 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)
Լեզու Տեղադրում Base 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

Երկու endpoint-ների յուրաքանչյուր դաշտ նկարագրված է իրենց էջերում։ 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)
Լեզու Տեղադրում Base 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-ով։
  • SDK-ների ավելացրած տարբերակի և beta header-ները (anthropic-version, anthropic-beta, openai-beta) ընդունվում են։ Դրանցից ոչ մեկը պարտադիր չէ։
  • Պատասխանի model-ը հրապարակված id-ն է, ուստի կարող եք այն հետ ուղարկել այնպես, ինչպես կա։
  • /v1/messages-ում պատասխանը կարող է սկսվել thinking բլոկով։ Կարդացեք text տեսակի բլոկները՝ առաջին բլոկը վերցնելու փոխարեն։
  • Streaming-ն աշխատում է SDK-ի սեփական stream օգնականներով։ Usage-ը գալիս է յուրաքանչյուր հոսքի վերջում։
  • Յուրաքանչյուր պատասխան կրում է x-request-id header։ Ուղարկեք ձեր սեփական x-request-id-ը, և նույն արժեքը կվերադառնա։

Համայնքի SDK-ներ

Այլ հեղինակների՝ OpenAI API-ի համար գրված կլիենտները աշխատում են նույն ձևով. կլիենտին տվեք /v1-ով base URL-ը, ձեր բանալին և Shannon մոդելի id-ն։ Դրանք պահպանվում են իրենց հեղինակների կողմից, ոչ թե 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 header-ով։ Առանց դրա հարցումը պատասխանվում է 415-ով։
  • Ձեր բանալին՝ Authorization: Bearer <key>-ում կամ x-api-key: <key>-ում։ Երկուսն էլ աշխատում են յուրաքանչյուր endpoint-ի վրա։
  • Մինչև 32 MiB մարմին։
  • "stream": true-ի դեպքում պատասխանը server-sent event հոսք է (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!"}]
  }'

Հոսքի իրադարձությունների և սխալի տեսակների համար տե՛ս. Ստրիմինգ Սխալների մշակում