გადასვლა შინაარსზე
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.
Endpoints, რომლებსაც აღწევს /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-ით.
  • ვერსიისა და beta სათაურები, რომლებსაც SDK-ები ამატებენ (anthropic-version, anthropic-beta, openai-beta), მიიღება. არც ერთი მათგანი სავალდებულო არ არის.
  • პასუხის model არის გამოქვეყნებული id, ამიტომ მისი უცვლელად დაბრუნება შეგიძლიათ.
  • /v1/messages-ზე პასუხი შეიძლება thinking ბლოკით დაიწყოს. წაიკითხეთ ტიპის text ბლოკები და ნუ აიღებთ პირველ ბლოკს.
  • სტრიმინგი SDK-ის საკუთარი stream helper-ებით მუშაობს. usage ყოველი სტრიმის ბოლოს მოდის.
  • ყოველი პასუხი შეიცავს სათაურს x-request-id. გაგზავნეთ საკუთარი x-request-id და იგივე მნიშვნელობა დაბრუნდება.

Community SDK-ები

OpenAI API-სთვის სხვა ავტორების დაწერილი კლიენტები ანალოგიურად მუშაობენ: მიეცით კლიენტს base URL /v1-ით, თქვენი გასაღები და 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. მის გარეშე მოთხოვნა პასუხდება 415-ით.
  • თქვენი გასაღები Authorization: Bearer <key>-ში ან x-api-key: <key>-ში. ორივე მუშაობს ყველა endpoint-ზე.
  • სხეული 32 MiB-მდე.
  • "stream": true-ს შემთხვევაში პასუხი არის server-sent event stream (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!"}]
  }'

სტრიმის მოვლენებისა და შეცდომის ტიპებისთვის იხილეთ: სტრიმინგი შეცდომების დამუშავება