الأدلة الأساسية

تنسيقات 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!"}]}]
  }'

الحفاظ على تنسيق المحادثة

تختلف طريقة تمثيل حالة المحادثة ونتائج الأدوات بين التنسيقات. استخدم تنسيقًا واحدًا للمحادثة، وحوّل السجل وتحقق منه داخل التطبيق قبل نقله.

الحقول غير المعروفة

تمرير حقل لا يضمن أن النموذج يدعمه. اعتمد على الميزات الموثقة للنموذج المختار وتعامل مع أخطاء الحقول غير المدعومة.

مراجع

في هذه الصفحة