الانتقال إلى المحتوى الرئيسي

نظرة عامة

تُتيح TokenLab تنسيقات API متعددة بحيث يمكن لأدوات البرمجة الشائعة، وSDKs، وأطر العمل التكامل معها بأقل قدر من التعليمات البرمجية الإضافية (glue code). هذه الصفحة مصممة لتكون أكثر تركيزاً من مصفوفة التسويق:
  • مدعوم (Supported): يعني أننا نوثق مسار إعداد ملموس وأن TokenLab توفر شكل البروتوكول الذي يتوقعه ذلك المسار.
  • مسار أصلي قوي (Strong native path): يعني أن المستودع يحتوي أيضاً على دليل مباشر للمحول (adapter) أو تنسيق الطلب لعائلة البروتوكول تلك.
  • بذل الجهد (Best-effort): يعني أن التكامل قد يعمل، لكن العميل (upstream client) لا يتعامل مع سير عمل البوابة المخصص هذا كعقد مستقر.
الحقول غير المدعومة لا يتم التعامل معها بشكل موحد. في مسارات التوافق، يتم تجاهل بعض الحقول أو تطبيعها. في /v1/responses، قد تُرجع الحقول غير المدعومة أخطاء صريحة من نوع 400 أو 503 عندما لا يستطيع ذلك المسار ضمان السلوك المطلوب.

تنسيقات API المدعومة

نقطة النهاية (Endpoint)التنسيقحالة الاستخدام
/v1/chat/completionsOpenAI Chatتوافق عالمي
/v1/responsesOpenAI Responsesمحادثات ذات حالة (Stateful)
/v1/messagesAnthropic Messagesميزات Claude الأصلية
/v1beta/models/:model:generateContentGoogle Geminiميزات Gemini الأصلية

توافق IDE و CLI

مسارات الأدوات الموثقة

الأداةمستوى الدعمالتنسيقملاحظات
Cursorمدعوم مع قيودمتوافق مع OpenAIيعمل مع تدفقات الدردشة/المحرر القياسية BYOK، وليس كبديل للميزات التي يديرها Cursor مثل الإكمال التلقائي (Tab Completion)
Claude Code CLIمسار أصلي قويAnthropicمسار أصلي /v1/messages مع تغطية محول للتفكير (thinking) و tool_choice
Codex CLIمدعوم مع قيود النموذج/المسارOpenAI Responsesتعامل مع /v1/responses كمسار متقدم لسير عمل Codex الخاص؛ بعض الحقول الخاصة بـ Responses فقط غير مضمونة عبر كل نموذج ومسار موجه
Gemini CLIبذل الجهد / تجريبيGeminiتدفق عنوان URL الأساسي المخصص لـ TokenLab ليس تكاملاً رسمياً لـ Gemini CLI
OpenCodeمدعوممتوافق مع OpenAIاستخدم مزوداً متوافقاً مع OpenAI افتراضياً؛ انتقل إلى مزود يعتمد على Responses فقط عندما تحتاج ذلك صراحةً
OpenHandsمدعوممتوافق مع OpenAIاستخدم مسار LiteLLM/OpenAI-compatible مع openai/<model> وعنوان URL الأساسي /v1 الخاص بـ TokenLab
غالباً ما تعمل المحررات وأدوات الوكلاء الأخرى المتوافقة مع OpenAI بنفس نمط عنوان URL الأساسي؛ تحقق من دعم المزود المخصص الخاص بالأداة قبل استخدامها في بيئة الإنتاج.

أمثلة على التكوين

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
يستخدم Cursor تنسيق أدوات بنمط Anthropic داخلياً. تدعم TokenLab كلاً من:
  • تنسيق OpenAI: { type: "function", function: { name, parameters } }
  • تنسيق Anthropic: { name, input_schema } (بدون حقل type)

توافق SDK

مسارات SDK وأطر العمل الموثقة

SDK / إطار العملاللغةمستوى الدعمملاحظات
OpenAI SDKPython/JS/Goمسار أساسي مدعوممسار توافق لـ /v1 Chat Completions و Embeddings؛ استخدم مسارات المزود الأصلية للسلوك الخاص بالمزود، ولا تفترض أن الحقول الخاصة بـ Responses فقط تعمل عبر كل نموذج
Anthropic SDKPython/JSمسار أصلي قويمسار Messages أصلي مع دليل مباشر للأدوات، والتفكير، وتخزين المطالبات مؤقتاً (prompt caching)
Vercel AI SDKTypeScriptنمط تكامل موصى بهيفضل استخدام @ai-sdk/openai-compatible؛ استخدم @ai-sdk/openai فقط عندما تريد صراحةً سلوك Responses الأصلي
LangChainPython/JSواجهات قياسية مدعومةChatOpenAI و OpenAIEmbeddings هما النطاق المقصود؛ الإضافات الخاصة بالمورد خارج النطاق
LlamaIndexPythonمدعوم عبر OpenAILikeاستخدم OpenAILike وليس فئات OpenAI المدمجة للبوابات الخارجية مثل TokenLab
OpenAI Agents SDKPythonمسار chat-completions مدعوماستخدم AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") مع OpenAIChatCompletionsModel؛ سلوك Responses الأصلي يعتمد على النموذج والمسار المختارين
AutoGenPythonمسار نقطة نهاية مخصص مدعوماستخدم OpenAIChatCompletionClient مع base_url: https://api.tokenlab.sh/v1
Semantic Kernel.NETمسار نقطة نهاية مخصص مدعوماستخدم موصل إكمال الدردشة OpenAI بنقطة نهاية مخصصة ووجهه إلى https://api.tokenlab.sh/v1
CrewAIPythonمسار نقطة نهاية مخصص مدعوماضبط OPENAI_API_BASE أو LLM(base_url=...) على نقطة نهاية /v1 الخاصة بـ TokenLab
Pydantic AIPythonمسار مزود متوافق مع OpenAI مدعوماستخدم OpenAIChatModel مع OpenAIProvider(base_url="https://api.tokenlab.sh/v1")
DSPyPythonمسار نقطة نهاية مخصص مدعوماستخدم dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1")
LangflowPython / Webمدعوم مع قيود النطاقاستخدم حقل OpenAI API Base الخاص بمكون OpenAI مع نقطة نهاية /v1 الخاصة بـ TokenLab
HaystackPythonمسار نقطة نهاية مخصص مدعوماستخدم OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1")
GraphitiPythonمسار نقطة نهاية مخصص مدعوماستخدم OpenAIGenericClient مع نقطة نهاية /v1 الخاصة بـ TokenLab
Dify-مدعوم مع قيود النطاقمزود OpenAI والتدفقات الموجهة لـ chat-completions هي المسار المقصود؛ لا تناسب سلوك Responses الخاص بـ Codex أو WebSocket
FlowiseWeb / Nodeمدعوم مع قيود النطاقاستخدم عقدة دردشة TokenLab عند توفرها، أو عقدة متوافقة مع ChatOpenAI موجهة إلى https://api.tokenlab.sh/v1
Mem0Pythonمسار نقطة نهاية مخصص مدعوماحتفظ بمزود OpenAI واضبط openai_base_url على نقطة نهاية /v1 الخاصة بـ TokenLab
AgnoPythonمسار مدعوماستخدم غلاف نموذج TokenLab عند توفره، أو مسار عنوان URL الأساسي المتوافق مع OpenAI
Browser UsePythonمسار نقطة نهاية مخصص مدعوماستخدم ChatOpenAILike مع نقطة نهاية /v1 الخاصة بـ TokenLab
VoltAgentTypeScriptمسار نقطة نهاية مخصص مدعوممرر مزود AI SDK OpenAI مهيأ بـ baseURL: "https://api.tokenlab.sh/v1"
RagasPythonمسار نقطة نهاية مخصص مدعوممرر AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") إلى llm_factory
GuardrailsPythonمسار تحقق مدعوممرر استدعاء إكمال دردشة OpenAI SDK مهيأ بنقطة نهاية /v1 الخاصة بـ TokenLab
Prompt flowPython / CLIمسار نقطة نهاية مخصص مدعومأنشئ اتصال OpenAI بـ base_url=https://api.tokenlab.sh/v1
PromptfooCLI / Nodeمسار مدعوماستخدم مزودي OpenAI chat أو Responses بـ apiBaseUrl: https://api.tokenlab.sh/v1
Portkey GatewayGatewayمسار مدعوماستخدم TokenLab كمزود أساسي لحركة مرور الدردشة و Responses المتوافقة مع OpenAI
HeliconeGateway / Observabilityمسار مراقبة مدعوموجه الطلبات المتوافقة مع OpenAI عبر Helicone Gateway بـ Helicone-Target-Url: https://api.tokenlab.sh
LangfuseObservabilityمسار تتبع مدعومقم بتهيئة تكامل Langfuse OpenAI بعنوان URL الأساسي /v1 الخاص بـ TokenLab
OpenLITObservabilityمسار تتبع مدعومقم بتهيئة عميل OpenAI SDK بعنوان URL الأساسي /v1 الخاص بـ TokenLab
OpenLLMetryObservabilityمسار تتبع مدعوماستخدم أدوات OpenAI SDK بعنوان URL الأساسي /v1 الخاص بـ TokenLab
PhoenixObservabilityمسار تتبع مدعومقم بتهيئة عميل OpenAI SDK تلقائياً بعنوان URL الأساسي /v1 الخاص بـ TokenLab
OpikObservabilityمسار تتبع مدعومقم بتغليف عميل OpenAI SDK بعنوان URL الأساسي /v1 الخاص بـ TokenLab
LangBotBot Platformمسار دردشة مدعوماستخدم طالب الطلبات (requester) الخاص بـ TokenLab عند توفره، أو قم بتهيئة طالب متوافق مع OpenAI بنقطة نهاية /v1 الخاصة بـ TokenLab
Open WebUIWeb Chatمسار تطبيق دردشة مدعومأضف TokenLab كاتصال API متوافق مع OpenAI وقم بتحديث قائمة النماذج
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / Webمسار تطبيق دردشة مدعوماستخدم تدفق المزود المخصص المتوافق مع OpenAI لكل تطبيق؛ هذه التطبيقات عادة ما تكون موجهة لـ chat-completions

معلمات Chat Completions

المعلمات الأساسية

المعلمةالنوعالوصف
modelstringمعرف النموذج (مطلوب)
messagesarrayرسائل المحادثة (مطلوب)
max_tokensintegerالحد الأقصى لرموز المخرجات
temperaturenumberدرجة حرارة أخذ العينات (0-2)
top_pnumberأخذ عينات النواة (0-1)
streambooleanتمكين البث

استدعاء الأدوات

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

خيارات اختيار الأداة

التنسيقمثالالوصف
String"auto", "none", "required"اختيار بسيط
OpenAI Object{ "type": "function", "function": { "name": "fn" } }فرض وظيفة محددة
Anthropic Object{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }تنسيق Anthropic الأصلي

المعلمات المتقدمة

المعلمةالنوعالوصف
stream_optionsobjectChat Completions فقط: { include_usage: true } لحساب الرموز
reasoning_effortstring"low", "medium", "high" لنماذج GPT-5 التي تدعم التفكير
service_tierstring"auto" أو "default"
seedintegerمخرجات حتمية
logprobsbooleanإرجاع احتمالات السجل
top_logprobsintegerعدد احتمالات السجل العليا (0-20)
logit_biasobjectخريطة انحياز الرموز (-100 إلى 100)
frequency_penaltynumberعقوبة التكرار (-2 إلى 2)
presence_penaltynumberعقوبة الموضوع (-2 إلى 2)
stopstring/arrayتسلسلات التوقف
nintegerعدد الإكمالات (1-128)
userstringمعرف المستخدم للتتبع

ميزات OpenAI المتقدمة

المعلمةالنوعالوصف
modalitiesarray["text", "audio"] للوسائط المتعددة
audioobjectتكوين مخرجات الصوت (الصوت، التنسيق)
predictionobjectالمخرجات المتوقعة لإكمال أسرع
metadataobjectأزواج المفتاح والقيمة للتتبع
storebooleanالتخزين للاسترجاع لاحقاً

خيارات خاصة بالمزود

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

معلمات Anthropic Messages

المعلمات الأساسية

المعلمةالنوعالوصف
modelstringمعرف النموذج
messagesarrayرسائل المحادثة
max_tokensintegerالحد الأقصى للمخرجات (حتى 128000)
systemstring/arrayمطالبة النظام
streambooleanتمكين البث

استدعاء الأدوات

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

التفكير الموسع

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

معلمات Responses API

المعلمات الأساسية

المعلمةالنوعالوصف
modelstringمعرف النموذج
inputstring/arrayمحتوى الإدخال
instructionsstringتعليمات النظام
max_output_tokensintegerالحد الأقصى لرموز المخرجات
previous_response_idstringمتابعة المحادثة

المعلمات المتقدمة

المعلمةالنوعالوصف
truncation_strategystring"auto" أو "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringلنماذج التفكير
service_tierstringمستوى الأولوية

تنسيق الأداة

يدعم تنسيقات أدوات OpenAI و Anthropic:
// OpenAI format
{ "type": "function", "name": "fn", "parameters": {...} }

// Anthropic format (Cursor compatibility)
{ "name": "fn", "input_schema": {...} }

معلمات Gemini API

المعلمات الأساسية

المعلمةالنوعالوصف
contentsarrayمحتوى المحادثة
systemInstructionobjectمطالبة النظام
generationConfigobjectإعدادات التوليد

الأدوات

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Search the web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

إعدادات الأمان

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

معلمات إضافية

المعلمةالنوعالوصف
cachedContentstringمرجع المحتوى المخزن مؤقتاً
responseMimeTypestring"text/plain" أو "application/json"
responseSchemaobjectمخطط JSON للمخرجات المهيكلة

البث (Streaming)

نقاط نهاية التوليد التي تكشف عن stream: true، بما في ذلك Chat Completions و Responses، تستخدم أحداث الخادم (SSE):
# Chat Completions
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# Chat Completions usage tracking
-d '{"...", "stream_options": {"include_usage": true}}'

معالجة الأخطاء

تُرجع TokenLab استجابات أخطاء متوافقة مع OpenAI:
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
راجع دليل معالجة الأخطاء للحصول على التفاصيل.

أفضل الممارسات

يتم إعادة توجيه المعلمات غير المعروفة فقط عندما يدعمها المسار العام والنموذج المختار.
بالنسبة لبث Chat Completions، قم بتمكين stream_options.include_usage للحصول على عدد دقيق للرموز. لدى Responses عقد بث خاص بها ولا تكشف عن هذا الخيار الخاص بـ Chat فقط.
طابق التنسيق المتوقع لـ SDK الخاص بك. تقبل TokenLab كلاً من تنسيقات OpenAI و Anthropic.