الانتقال إلى المحتوى الرئيسي
يتميز TokenLab بتعدد التنسيقات: يمكنك الاحتفاظ بالعملاء المتوافقين مع OpenAI، ونداءات Messages الأصلية الخاصة بـ Anthropic، ونداءات REST الأصلية الخاصة بـ Gemini، ونقاط نهاية الوسائط بأشكالها الطبيعية. إن أكثر طرق الترحيل أماناً هي عدم تحويل كل عبء عمل إلى تنسيق عالمي واحد. اختر المسار الذي يمتلك السلوك الذي يحتاجه تطبيقك.

تعيين المسارات (Route Mapping)

عبء العمل الحاليعنوان URL الأساسي لـ TokenLabنقطة النهاية الأساسيةملاحظة الترحيل
OpenAI Chat Completionshttps://api.tokenlab.sh/v1/chat/completionsأصغر تغيير للدردشة المتوافقة مع OpenAI واستدعاء الدوال
OpenAI Responseshttps://api.tokenlab.sh/v1/responsesاستخدمه عندما يعتمد تطبيقك على مدخلات أو أدوات أو معالجة مخرجات خاصة بـ Responses
Anthropic SDKhttps://api.tokenlab.sh/v1/messagesلا تضف /v1 إلى عنوان URL الأساسي لـ SDK
Gemini RESThttps://api.tokenlab.sh/v1beta/models/:model:generateContentاحتفظ بالحقول الأصلية لـ Gemini في مسار Gemini
توليد الوسائطhttps://api.tokenlab.sh/v1/images, /videos, /music, /3dاكتشف النماذج باستخدام recommended_for وتوقع الاستطلاع غير المتزامن (async polling) حيثما تم توثيقه
الإدارة والفوترةhttps://api.tokenlab.sh/v1/management/...استخدم رموز الإدارة (management tokens) للاستخدام من جانب الخادم وتسوية الفواتير

وصفات الترحيل السريع

من OpenAI إلى TokenLab

قم فقط بتغيير base_url / baseURL الخاص بـ SDK إلى https://api.tokenlab.sh/v1 ، واحتفظ باسم متغير بيئة مفتاح API الخاص بـ OpenAI إذا كان ذلك أسهل للنشر، واستبدل معرفات النماذج بعد التحقق من GET /v1/models.

من OpenRouter إلى TokenLab

استخدم https://api.tokenlab.sh/v1 حيث كان تطبيقك يستخدم سابقاً عنوان URL الأساسي المتوافق مع OpenAI الخاص بـ OpenRouter. قم بإزالة معرفات النماذج ذات البادئة الخاصة بالمزود واستخدم معرفات نماذج TokenLab العامة من /v1/models؛ عندما يحتاج عبء العمل إلى Claude Messages أو Gemini generateContent ، انقله إلى نقطة نهاية TokenLab الأصلية بدلاً من إجباره على المرور عبر الدردشة المتوافقة مع OpenAI.

من LiteLLM إلى TokenLab

استخدم مسار custom_openai/<model> الخاص بـ LiteLLM مع api_base: https://api.tokenlab.sh/v1. احتفظ بأسماء LiteLLM المستعارة منفصلة عن معرفات نماذج TokenLab الحقيقية حتى تتمكن من تغيير سياسة التوجيه دون تغيير مطالبات (prompts) التطبيق.

عبر Claude Messages من خلال TokenLab

وجه عملاء Anthropic SDK إلى https://api.tokenlab.sh وقم باستدعاء messages.create. لا تضف /v1 إلى عنوان URL الأساسي لـ SDK؛ حيث يمتلك SDK مسار /v1/messages.

عبر Gemini Native من خلال TokenLab

احتفظ بحمولات Gemini على https://api.tokenlab.sh/v1beta/models/{model}:generateContent. يجب أن تظل contents و parts والملفات والمحتويات المخزنة مؤقتاً وإعلانات الدوال والأدوات المدمجة الأصلية الخاصة بـ Gemini على هذا المسار عندما يعتمد تطبيقك على سلوك Gemini.

الترحيل المتوافق مع OpenAI

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-tokenlab-key",
    base_url="https://api.tokenlab.sh/v1",
)

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "Hello from TokenLab"}],
)
احتفظ بشيفرة إعادة المحاولة (retry) والمهلة (timeout) والبث (streaming) الحالية، ولكن تحقق من معرفات النماذج باستخدام GET /v1/models قبل حركة مرور الإنتاج. بالنسبة لتوليد الصور، أرسل model بشكل صريح واقرأ دليل الصور لأن نماذج الصور تختلف أكثر من نماذج الدردشة.

ترحيل Anthropic

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-tokenlab-key",
    base_url="https://api.tokenlab.sh",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain TokenLab in one sentence."}],
)
استخدم /v1/messages لاستخدام أدوات Claude الأصلية، وتدفقات التفكير، ودلالات رسائل Anthropic. لا تقم بترجمة الحقول الخاصة بـ Anthropic فقط من خلال Chat Completions ما لم تكن ترغب عمداً في تغيير سلوك متوافق مع OpenAI.

ترحيل Gemini

curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "Authorization: Bearer sk-your-tokenlab-key" \
  -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
احتفظ بالأدوات المدمجة لـ Gemini، ومراجع File API، والمحتويات المخزنة مؤقتاً، وإعلانات الدوال، وأجزاء المحتوى الأصلية على /v1beta عندما يعتمد تطبيقك على سلوك Gemini الأصلي.

ترحيل الوسائط

  1. استعلم عن GET /v1/models?recommended_for=image|video|music|3d.
  2. اقرأ GET /v1/models في استجابات القائمة و GET /v1/models/{model} الكامل حيثما توفر.
  3. أرسل model صريحاً، خاصة لنقاط نهاية الصور.
  4. قم بتخزين task_id و poll_url ونقطة النهاية والنموذج ومعرف الوظيفة الخاص بك للوظائف غير المتزامنة.
  5. قم بتسوية التكاليف من خلال سجلات الاستخدام و billing_transaction_id ، وليس معرفات مهام المزود.
تحتاج أعباء عمل الوسائط إلى خطة طرح خاصة بها لأن زمن الوصول، وإعادة المحاولة، والأصول النهائية تتصرف بشكل مختلف عن إكمال الدردشة.

خطة طرح الإنتاج

المرحلةالهدفالفحوصات
1. الجردسرد نقاط النهاية، والنماذج، وحقول الطلب، وسلوك البث/غير المتزامن، ومالك الفوترةلا يتم افتراض أن أي حقول مخفية خاصة بالمزود عامة
2. تجربة مسار واحدنقل نقطة نهاية واحدة وعائلة نموذج واحدةشكل الاستجابة، والتكلفة، والسجلات تطابق التوقعات
3. الظل أو العينةمقارنة المخرجات المحددة مقابل المزود السابقالجودة المرئية للمستخدم وزمن الوصول مقبولان
4. الطرح التدريجيزيادة حركة المرور حسب المفتاح أو المؤسسة أو ميزة التبديل (feature flag)مراقبة 4xx و 5xx وزمن الوصول والرصيد والوظائف غير المتزامنة المكررة
5. التنظيفإزالة مسار المزود القديم فقط بعد الاستخدام المستقرتوثيق مسار التراجع (rollback) ودليل الدعم

مخاطر الترحيل

  • لا تضع كل نموذج خلف مسار OpenAI Chat Completions واحد إذا كان تطبيقك يحتاج إلى سلوك Anthropic أو Gemini أو Responses الأصلي.
  • لا تفترض الإعدادات الافتراضية القديمة للصور. أرسل model بشكل صريح.
  • لا تقم بإعادة محاولة طلبات الإنشاء غير المتزامنة دون التحقق مما إذا كانت المهمة قد تم إنشاؤها بالفعل.
  • لا تكشف عن معرفات خاصة بالمزود في سجلاتك أو واجهة المستخدم الخاصة بك.
  • لا تقارن الفواتير بمعرفات مهام المزود. استخدم سجلات استخدام TokenLab.

مرجع API

الموضوعالمرجع
Multi-Format APIMulti-Format API
OpenAI SDKOpenAI SDK
Anthropic SDKAnthropic SDK
Gemini NativeGemini Native API
Image GenerationImage Generation
Async Jobs & PollingAsync Jobs & Polling