ወደ ይዘቱ እለፍ
SDKዎች

SDKዎች

ማንኛውም የOpenAI ወይም የAnthropic SDK ሳይስተካከል ይሰራል።

Shannon የOpenAI እና የAnthropic wire ፎርማቶችን ይናገራል፣ ስለዚህ የሁለቱንም ኦፊሴላዊ SDKs እንዳሉ ይጠቀማሉ። በclient ውስጥ ሦስት እሴቶችን ይቀይራሉ፦ base URL፣ API ቁልፍ እና የሞዴል id። የቀረው ኮድዎ አይቀየርም።

ምን ማዘጋጀት

ቅንብር OpenAI SDKs Anthropic SDKs
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 SDKs ይነበባሉ። ANTHROPIC_API_KEY እና ANTHROPIC_BASE_URL፣ እሴት ካላስተላለፉ በPython እና በTypeScript SDKs ይነበባሉ።

ሁለቱ base URLs በ/v1 ይለያያሉ፦ የOpenAI SDK ወደ base URL /chat/completions ይጨምራል፣ የAnthropic SDK /v1/messages ይጨምራል። Shannon የማያትመው የሞዴል ስም በ400 እና በunknown model ይመለሳል። ሞዴሎችና ዋጋ

ቁልፍዎ በKeys & usage ገጽ ላይ ነው። Keys & usage

OpenAI SDKs

ኦፊሴላዊ የOpenAI SDKs 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

Anthropic SDKs

ኦፊሴላዊ የAnthropic SDKs POST /v1/messages ይጠራሉ። በእያንዳንዱ ጥሪ max_tokens ይጠይቃሉ፣ ስለዚህ ናሙናዎቹ የሚተገብረውን shannon-1.6-lite ይጠቀማሉ። እያንዳንዱ ናሙና የመልሱን text blocks ያትማል።

# 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 ፎርማት

SDKs የሚመኩባቸው

  • API የማይጠቀምበት የጥያቄ መስክ ተቀባይነት አለው። API የሚያውቀው መስክ በተሳሳተ አይነት ከተላከ በ422 ይመለሳል።
  • SDKs የሚጨምሯቸው የስሪት እና የbeta headers (anthropic-version፣ anthropic-beta፣ openai-beta) ተቀባይነት አላቸው። አንዳቸውም ግዴታ አይደሉም።
  • የምላሽ model የታተመው id ነው፣ ስለዚህ እንዳለ መልሰው ሊልኩት ይችላሉ።
  • በ/v1/messages ላይ ምላሽ በthinking block ሊጀምር ይችላል። የመጀመሪያውን block ከመውሰድ ይልቅ text አይነት ያላቸውን blocks ያንብቡ።
  • Streaming በSDK የራሱ stream helpers ይሰራል። Usage በእያንዳንዱ stream መጨረሻ ይደርሳል።
  • እያንዳንዱ ምላሽ x-request-id header ይይዛል። የራስዎን x-request-id ይላኩ እና ተመሳሳዩ እሴት ይመለሳል።

የማህበረሰብ SDKs

በሌሎች ደራሲዎች ለOpenAI API የተጻፉ clients በተመሳሳይ መንገድ ይሰራሉ፦ ለclient base URL ን ከ/v1 ጋር፣ ቁልፍዎን እና የShannon ሞዴል id ይስጡት። እነዚህ የሚጠበቁት በደራሲዎቻቸው ነው እንጂ በShannon አይደለም።

ቋንቋ መጫን Client
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 አያስፈልግዎትም። JSON መላክ የሚችል ማንኛውም HTTP client ይሰራል፦

  • POST ከJSON body እና ከContent-Type: application/json header ጋር። ያለ እሱ ጥያቄው በ415 ይመለሳል።
  • ቁልፍዎ በAuthorization: Bearer <key> ወይም በx-api-key: <key>። ሁለቱም በእያንዳንዱ endpoint ላይ ይሰራሉ።
  • እስከ 32 MiB የሆነ body።
  • በ"stream": true ምላሹ server-sent event stream (text/event-stream) ነው። መስመር በመስመር ያንብቡት እና buffer አያድርጉት።
  • ስህተት ከHTTP status ጎን error.type እና error.message ያለው JSON body ነው።
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 events እና ስለ የስህተት አይነቶች ይመልከቱ፦ ስትሪሚንግ ስህተት አስተዳደር