تخطَّ إلى المحتوى
حزم SDK

حزم SDK

تعمل أي حزمة OpenAI أو Anthropic SDK مباشرة دون إعداد.

تتحدث Shannon بصيغتي الشبكة في OpenAI وAnthropic، فتستخدم SDKs الرسمية لكليهما كما هي. غيّر ثلاث قيم في العميل: base URL ومفتاح API ومعرّف النموذج. ويبقى باقي كودك كما هو.

ما يجب ضبطه

الإعداد 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.
النموذج معرّف نموذج منشور، مثل 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، وتقرؤهما Python SDK وJavaScript SDK عندما لا تمرر قيمة. ANTHROPIC_API_KEY وANTHROPIC_BASE_URL، وتقرؤهما Python SDK وTypeScript SDK عندما لا تمرر قيمة.

يختلف عنوانا base URL بمقدار /v1: يضيف OpenAI SDK الجزء /chat/completions إلى base URL الخاص به، ويضيف Anthropic SDK الجزء /v1/messages. واسم النموذج الذي لا تنشره Shannon يُجاب عنه بـ 400 وunknown model. النماذج والأسعار

مفتاحك في صفحة 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

كل حقل في نقطتي النهاية موصوف في صفحتيهما الخاصتين. Chat Completions Responses API

Anthropic SDKs

تستدعي Anthropic SDKs الرسمية 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

ما يمكن أن تعتمد عليه SDKs

  • حقل الطلب الذي لا تستخدمه API يُقبل. والحقل الذي تعرفه API إذا أُرسل بنوع خاطئ يُجاب عنه بـ 422.
  • ترويسات الإصدار والـ beta التي تضيفها SDKs (anthropic-version وanthropic-beta وopenai-beta) تُقبل. ولا يلزم أي منها.
  • قيمة model في الرد هي المعرّف المنشور، فيمكنك إرسالها كما هي.
  • على /v1/messages قد يبدأ الرد بكتلة thinking. اقرأ الكتل من النوع text بدلاً من أخذ الكتلة الأولى.
  • يعمل البث عبر أدوات البث الخاصة بكل SDK. ويصل الاستخدام (usage) في نهاية كل بث.
  • يحمل كل رد ترويسة x-request-id. أرسل x-request-id خاصاً بك وستعود القيمة نفسها.

SDKs المجتمع

العملاء المكتوبون لـ OpenAI API على أيدي مؤلفين آخرين يعملون بالطريقة نفسها: أعطِ العميل 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>. وكلاهما يعمل على كل نقطة نهاية.
  • نص حتى 32 MiB.
  • مع "stream": true يكون الرد بثاً من أحداث يرسلها الخادم (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!"}]
  }'

لأحداث البث وأنواع الأخطاء، انظر: البث معالجة الأخطاء