الأدلة الأساسية
تنسيقات API
اختيار Chat Completions أو Responses أو Messages أو Gemini
يمكن استخدام مفتاح TokenLab واحد مع أربعة تنسيقات API. احتفظ بالتنسيق الذي يستخدمه تطبيقك وتحقق من tokenlab.accepted_request_formats في صفحة النموذج أو GET /v1/models/{model}. لا تدعم جميع النماذج التنسيقات الأربعة.
Chat Completions
POST /v1/chat/completions · openai_chat_completions
مناسب لعملاء الدردشة المتوافقين مع OpenAI وسجل الرسائل والبث واستدعاء الدوال التي يدعمها النموذج. حقول التنسيقات الأخرى ليست مضمونة الدعم.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Responses
POST /v1/responses · openai_responses
استخدمه عندما تتضمن accepted_request_formats القيمة openai_responses. يدعم الإنشاء والاسترجاع والضغط والحذف والبث والإنشاء والمتابعة عبر WebSocket والاستجابات في الخلفية للنماذج المتوافقة. حذف استجابة محفوظة لا يلغي استجابة قيد التنفيذ.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.responses.create(
model="gpt-5.6-terra",
input="Explain why the sky is blue in two sentences.",
)
print(response.output_text)Anthropic Messages
POST /v1/messages · anthropic_messages
استخدم مضيف TokenLab في عنوان base URL لحزمة Anthropic دون إضافة /v1. أبقِ استدعاءات أدوات Claude وكتل thinking وحقول تخزين المطالبات مؤقتًا ضمن تنسيق Messages.
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh",
)
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)Gemini
POST /v1beta/models/:model:generateContent · gemini_generate_content
مناسب لتطبيقات Gemini التي تستخدم contents أو parts أو الملفات أو الذاكرة المؤقتة أو الأدوات. تُقبل أسماء ProtoJSON بنمط lowerCamelCase وأسماء snake_case الأصلية؛ لا ترسل الاسمين للحقل نفسه في طلب واحد.
curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Hello!"}]}]
}'الحفاظ على تنسيق المحادثة
تختلف طريقة تمثيل حالة المحادثة ونتائج الأدوات بين التنسيقات. استخدم تنسيقًا واحدًا للمحادثة، وحوّل السجل وتحقق منه داخل التطبيق قبل نقله.
الحقول غير المعروفة
تمرير حقل لا يضمن أن النموذج يدعمه. اعتمد على الميزات الموثقة للنموذج المختار وتعامل مع أخطاء الحقول غير المدعومة.