דילוג לתוכן
SDKs

SDKs

כל SDK של OpenAI או Anthropic עובד מיד, ללא הגדרות.

Shannon מדברת בפורמטים של OpenAI ושל Anthropic, ולכן אפשר להשתמש ב-SDK הרשמיים של שניהם כפי שהם. משנים שלושה ערכים בלקוח: ה-base URL, מפתח ה-API ומזהה המודל. שאר הקוד נשאר כפי שהוא.

מה להגדיר

הגדרה SDK של OpenAI SDK של Anthropic
Base 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.
Endpoints שהוא מגיע אליהם /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 כשאתם לא מעבירים ערך.

ההבדל בין שני ה-base URL הוא /v1: SDK של OpenAI מוסיף /chat/completions ל-base 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)
שפה התקנה אפשרות 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

כל שדה של שני ה-endpoints מתואר בדפים שלהם. 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)
שפה התקנה אפשרות 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 של תשובה הוא המזהה שפורסם, ולכן אפשר לשלוח אותו בחזרה כמות שהוא.
  • ב-/v1/messages תשובה יכולה להתחיל בבלוק thinking. קראו את הבלוקים מסוג text במקום לקחת את הבלוק הראשון.
  • Streaming עובד דרך עוזרי ה-stream של ה-SDK עצמו. ה-usage מגיע בסוף כל stream.
  • כל תשובה נושאת כותרת x-request-id. שלחו x-request-id משלכם ואותו ערך יחזור.

SDK של הקהילה

לקוחות שנכתבו ל-API של OpenAI בידי מחברים אחרים עובדים באותו אופן: תנו ללקוח את ה-base 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 והכותרת Content-Type: application/json. בלעדיה הבקשה נענית ב-415.
  • המפתח שלכם ב-Authorization: Bearer <key> או ב-x-api-key: <key>. שניהם עובדים בכל endpoint.
  • גוף של עד 32 MiB.
  • עם "stream": true התשובה היא stream של server-sent events (text/event-stream). קראו אותו שורה אחר שורה ואל תאגרו אותו ב-buffer.
  • שגיאה היא גוף 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!"}]
  }'

לאירועים של stream ולסוגי השגיאות, ראו: הזרמה טיפול בשגיאות