تخطَّ إلى المحتوى
أدوات البرمجة بسطر الأوامر

أدوات البرمجة بسطر الأوامر

جديد

استخدم Shannon كنموذج يعمل خلف Claude Code وCodex CLI وأدوات سطر الأوامر الأخرى للوكلاء.

تحتاج أداة البرمجة إلى ثلاثة إعدادات لتعمل مع Shannon: عنوان base URL لـ API، ومفتاح API الخاص بك، ومعرّف نموذج Shannon. تعطي هذه الصفحة الإعدادات الدقيقة لـ Claude Code وCodex CLI، وتشرح كيف يُحتسب نموذج البرمجة shannon-coder-1، وتسرد الأخطاء التي تصادفها هذه الأدوات.

نقطة النهاية التي تستخدمها كل أداة

الأداة نقطة النهاية عنوان base URL المطلوب ضبطه ملاحظة
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com تضيف الأداة /v1/messages إلى base URL بنفسها.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 تضيف الأداة /responses إلى base URL.
أدوات وكلاء أخرى تتحدث بصيغة دردشة OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 اضبط عنوان base URL والمفتاح ومعرّف نموذج Shannon في إعدادات الأداة نفسها.

تقبل نقاط النهاية الثلاث مفتاح API نفسه، بصيغة Authorization: Bearer أو x-api-key. وتُقبل الترويسات anthropic-version وanthropic-beta وopenai-beta التي ترسلها هذه الأدوات.

اختيار نموذج Shannon

يجب أن يسمّي كل طلب معرّف نموذج تنشره Shannon. ترسل أداة البرمجة اسم نموذجها الافتراضي الخاص ما لم تخبرها بغير ذلك، والاسم الذي لا تنشره Shannon يُجاب عنه بـ 400 والرسالة unknown model: <name>. لا يُربط أي اسم آخر بنموذج Shannon، لذا اضبط النموذج في الأداة قبل الطلب الأول.

يسرد GET /v1/models كل معرّف مع نافذة سياقه. ولا يحتاج مفتاحاً. النماذج والأسعار

النموذج يُحتسب على أنه ما يقدمه
shannon-coder-1 استدعاء واحد لكل طلب على /v1/messages و/v1/chat/completions. وبالـ tokens على /v1/responses. نموذج البرمجة. إدخال نص، واستدعاءات أدوات، ونافذة سياق من 131,072 token.
shannon-1.6-lite
shannon-1.6-pro
Tokens من رصيدك. نماذج عامة مع استدعاءات الأدوات. يناسب shannon-1.6-lite طلبات الخلفية القصيرة التي ترسلها الأداة.
النماذج المفتوحة الأوزان المستضافة Tokens من رصيدك، مع احتساب المدخلات المخبأة بنسبة 25% من سعر المدخلات. استدعاءات الأدوات، والتخزين المؤقت للمطالبات للجلسات الطويلة، وأعداد دقيقة من /v1/messages/count_tokens.

توجّه أدوات البرمجة النموذج بتوجيهات نظام طويلة. تطبّق توجيهات النظام النماذج shannon-coder-1 وshannon-1.6-lite وshannon-1.6-pro وshannon-2-lite وshannon-2-pro والنماذج المفتوحة الأوزان المستضافة، لذا اختر واحداً منها لأداة البرمجة.

Claude Code

يقرأ Claude Code اتصاله من متغيرات البيئة. اضبطها في الصدفة (shell) التي تشغّله، أو في الكتلة env من ~/.claude/settings.json لإبقائها في كل جلسة.

# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY

# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite

# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072

claude
المتغير الوصف
ANTHROPIC_BASE_URL العنوان الذي يرسل إليه Claude Code طلباته. استخدم العنوان من دون /v1.
ANTHROPIC_AUTH_TOKEN مفتاح Shannon API الخاص بك، يُرسل كـ Authorization: Bearer. ويعمل ANTHROPIC_API_KEY أيضاً: فهو يرسل المفتاح كـ x-api-key، ويطلب Claude Code الموافقة عليه مرة واحدة.
ANTHROPIC_MODEL نموذج الجلسة. يضبط claude --model <id> و/model <id> الشيء نفسه.
ANTHROPIC_DEFAULT_HAIKU_MODEL النموذج المخصص لطلبات الخلفية مثل عناوين الجلسات، ولأي شيء يطلب haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL النموذج المستخدم عندما يطلب وكيل فرعي أو أمر sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL النموذج المستخدم عندما يطلب وكيل فرعي أو أمر opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS نافذة السياق التي يفترضها Claude Code للنموذج. استخدم قيمة context_window التي يعرضها GET /v1/models للمعرّف الذي اخترته.
  • اضبط المتغيرات الثلاثة ANTHROPIC_DEFAULT_…_MODEL كلها. تطلب الوكلاء الفرعيون وبعض الأوامر نموذجاً باسمه المضمّن، ويجب أن يُحل كل اسم إلى معرّف Shannon.
  • يوجّه المثال طلبات الخلفية إلى shannon-1.6-lite، وهو يُحتسب بالـ tokens. فلا تستهلك عناوين الجلسات والطلبات المشابهة استدعاءات Coder.
  • يسأل Claude Code الخدمة POST /v1/messages/count_tokens عن حجم السياق. تحسب نقطة النهاية للنماذج المفتوحة الأوزان المستضافة. ومع معرّف Shannon تجيب بـ 400؛ ويعتبر Claude Code عدّ tokens اختيارياً ويقدّر الحجم بنفسه. عدّ الـ tokens

للتحقق من العنوان والمفتاح ومعرّف النموذج قبل تشغيل الأداة، أرسل طلباً واحداً يدوياً:

cURL
curl https://api.shannon-ai.com/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "max_tokens": 16,
    "messages": [{"role": "user", "content": "Say OK."}]
  }'

Codex CLI

يتحدث Codex CLI إلى Responses API. صِف Shannon كمزوّد نماذج في ~/.codex/config.toml، واختر هناك معرّف نموذج Shannon، وضع مفتاح API في متغير البيئة الذي يسميه المزوّد.

~/.codex/config.toml
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072

[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses"
Shell
# Install Codex CLI
npm install -g @openai/codex

# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY

# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro
المفتاح الوصف
model معرّف نموذج Shannon. يضبطه codex --model <id> لتشغيل واحد.
model_provider اسم كتلة المزوّد المراد استخدامها، وهنا shannon.
base_url عنوان API مع /v1.
env_key اسم متغير البيئة الذي يحمل مفتاح Shannon API الخاص بك.
wire_api responses: يتحدث Codex إلى POST /v1/responses.
model_context_window نافذة سياق النموذج، حتى يضغط Codex الجلسة الطويلة في الوقت المناسب. استخدم قيمة context_window التي يعرضها GET /v1/models.
  • لا يحتفظ /v1/responses بأي محادثة على الخادم: كل طلب يحمل المحادثة في input. ويُقبل previous_response_id للتوافق.
  • تُعرض أدوات الدوال (type: "function") على النموذج في /v1/responses.
  • على /v1/responses يُحتسب shannon-coder-1 بالـ tokens من رصيدك، لا باستدعاءات Coder.

الفحص نفسه لنقطة نهاية Responses:

cURL
curl https://api.shannon-ai.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "input": "Say OK."
  }'

نموذج البرمجة وطريقة احتسابه

shannon-coder-1 هو نموذج Shannon لوكلاء البرمجة. يعرضه GET /v1/models بنافذة سياق من 131,072 token ومع استدعاءات الأدوات والاستدلال وإدخال النص. ويُحتسب بإحدى طريقتين، بحسب نقطة النهاية التي تستخدمها الأداة.

نقطة النهاية تكلفة الطلب يُؤخذ من
/v1/messages 1 استدعاء لكل طلب حصة استدعاءات Coder في خطتك. لا تُخصم أي tokens من رصيدك.
/v1/chat/completions 1 استدعاء لكل طلب حصة استدعاءات Coder في خطتك. لا تُخصم أي tokens من رصيدك.
/v1/responses Tokens، بسعر $8.00 لكل 1M رصيدك، مثل أي نموذج آخر. ولا تُستخدم حصة الاستدعاءات.

الاستدعاء هو طلب واحد، مهما كان حجمه. ويُحتسب عند قبول الطلب، قبل أن يجيب النموذج. ترسل جلسة الوكيل طلباً واحداً لكل خطوة تتخذها، لذا تستهلك المهمة الطويلة استدعاءات كثيرة. وتعتمد الحصة على خطتك وتبدأ من جديد كل 4 ساعات، عند 00:00 و04:00 و08:00 و12:00 و16:00 و20:00 UTC.

الخطة الاستدعاءات لكل نافذة من 4 ساعات
Free 3
Plus 20
Standard 40
Pro 60

تعرض صفحة الخطط الأرقام الحالية. الخطط

عند استنفاد استدعاءات نافذة ما، يُجاب عن الطلب بـ 429. وعلى /v1/messages يأتي الخطأ نفسه بشكل Anthropic.

429 /v1/chat/completions
{
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}
429 /v1/messages
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}

تجاوز السياق

عندما تكون المحادثة أكبر من نافذة سياق النموذج، يجيب /v1/chat/completions و/v1/messages بـ 400 والنوع invalid_request_error والرمز context_length_exceeded ورسالة تبدأ بـ prompt is too long. تقرأ أدوات البرمجة هذا الخطأ لضغط الجلسة وإعادة إرسال الطلب. وتنتجه النماذج shannon-coder-1 وshannon-1.6-lite وshannon-1.6-pro.

400 /v1/chat/completions
{
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}
400 /v1/messages
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}

الرسالة هي prompt is too long: <sent> tokens > <limit> maximum. وعندما لا يُعرف الرقمان تكون prompt is too long. Please compact the conversation and try again.

في البث تكون الحالة 200 بالفعل، لذا يصل الخطأ كحدث ثم يُغلق البث بالطريقة المعتادة:

/v1/chat/completions، بث
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}

data: [DONE]
/v1/messages، بث
event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}

event: message_stop
data: {"type":"message_stop"}

ما يمكن أن تعتمد عليه حلقة الوكيل

الموضوع السلوك
مخططات الأدوات تعريفات الأدوات تُؤخذ كما ترسلها الأداة. في shannon-coder-1 وshannon-1.6-*، تُحذف من ما يقرؤه النموذج كلمات JSON Schema المفتاحية التي لا يستخدمها، مثل $schema و$ref وadditionalProperties وdefault وtitle، وتُقرأ oneOf على أنها anyOf. ولا يُرفض أي طلب بسببها.
وسائط استدعاء الأداة في البث، تصل وسائط استدعاء الأداة كاملة في دلتا واحدة: tool_calls[].function.arguments أو input_json_delta.partial_json أو response.function_call_arguments.delta.
نهاية دور الأداة عند انتهاء الدور تظهر القيمة finish_reason: "tool_calls" في واجهة Chat Completions، والقيمة stop_reason: "tool_use" في واجهة Messages.
إبقاء الاتصال حياً أثناء عمل النموذج، يرسل /v1/messages الحدث event: ping ويرسل /v1/chat/completions سطر التعليق : ping كل 15 ثانية.
إيقاف طلب إغلاق الاتصال يوقف البث. أما الدور نفسه فيستمر حتى نهايته ويُحتسب.

استكشاف الأخطاء

العَرَض السبب الحل
400 مع unknown model: claude-… أو unknown model: gpt-… أرسلت الأداة اسم نموذجها الافتراضي الخاص. لا تُخدَم إلا معرّفات Shannon المنشورة، ولا يُربط أي اسم آخر بأحدها. اختر معرّف Shannon: ANTHROPIC_MODEL والمتغيرات الثلاثة ANTHROPIC_DEFAULT_…_MODEL في Claude Code، وmodel في إعداد Codex.
400 مع unknown model: ودون اسم، من Codex CLI لم يسمِّ الطلب أي نموذج. ويحتاج /v1/responses إلى واحد. اضبط model في ~/.codex/config.toml أو مرّر --model.
401 مع Missing authentication أو Invalid API key لم يصل المفتاح إلى API، أو أنه ليس مفتاحاً حالياً. مفتاح Shannon يبدأ بـ sk-. تحقق من أن المتغير مضبوط في الصدفة (shell) التي تشغّل الأداة. انسخ المفتاح مرة أخرى من المفاتيح والاستخدام.
404 في كل طلب في عنوان base URL شرطة /v1 زائدة أو ناقصة بالنسبة إلى الأداة. Claude Code: العنوان من دون /v1. Codex CLI: العنوان مع /v1.
429 مع Shannon Coder call quota reached استُنفدت استدعاءات Coder في نافذة الـ 4 ساعات الحالية. انتظر النافذة التالية، أو انتقل إلى خطة بعدد استدعاءات أكبر، أو اختر نموذجاً يُحتسب بالـ tokens.
429 مع Quota exceeded رصيدك لا يغطي الطلب. أضف رصيداً، أو انتظر المخصصات اليومية لخطتك عند 00:00 UTC.
400 مع prompt is too long المحادثة أكبر من نافذة سياق النموذج. اضغط الجلسة (/compact في الأداتين). وأخبر الأداة بنافذة سياق النموذج لتضغط في وقت أبكر.
يعرض Claude Code أرقام سياق تقريبية يحسب /v1/messages/count_tokens للنماذج المفتوحة الأوزان المستضافة. ومع معرّف Shannon يجيب بـ 400، ويقدّر Claude Code الحجم بنفسه. لا شيء يحتاج إصلاحاً. اختر نموذجاً مفتوح الأوزان مستضافاً إن أردت أعداداً دقيقة.
لقطة الشاشة الملصوقة لا تؤخذ في الحسبان يقبل shannon-coder-1 إدخال نص. اختر نموذجاً يقبل الصور لتلك الجلسة.

مفتاحك ورصيدك في صفحة المفاتيح والاستخدام. المفاتيح والاستخدام