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

نظرة عامة

تعمل TokenLab مع OpenAI SDKs الرسمية عن طريق توجيه العميل إلى https://api.tokenlab.sh/v1. لمعظم المشاريع الجديدة، يفضّل استخدام Chat Completions كمسار OpenAI المتوافق الافتراضي. استخدم Responses API فقط عندما تحتاج صراحةً إلى سلوك مخصّص لـ Responses. لا تُضمن المطابقة التامة لسلوك الحقول الخاصة بـ Responses عبر كل نموذج ومسار موجه.
Python و JavaScript و Go لديها OpenAI SDKs رسمية. تعمل PHP بشكل جيد مع عملاء المجتمع المتوافقين مع OpenAI، لكنها ليست OpenAI SDK رسمية.
النوع: Native SDKالمسار الأساسي: متوافق مع OpenAI / Chat Completionsدرجة الدعم: مسار أساسي مدعوم

التثبيت

pip install openai
npm install openai
go get github.com/openai/openai-go/v3
استخدم POST /v1/responses فقط عندما تحتاج صراحةً إلى سلوك مخصّص لـ Responses. بعض الحقول الخاصة بـ Responses قد تعتمد أيضًا على النموذج والمسار الموجه.

تكوين العميل

from openai import OpenAI

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

const client = new OpenAI({
  apiKey: 'sk-your-tokenlab-key',
  baseURL: 'https://api.tokenlab.sh/v1',
});
package main

import (
    openai "github.com/openai/openai-go/v3"
    "github.com/openai/openai-go/v3/option"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey("sk-your-tokenlab-key"),
        option.WithBaseURL("https://api.tokenlab.sh/v1"),
    )

    _ = client
}

موصى به: Chat Completions

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "Explain what TokenLab does in one sentence."}]
)

print(response.choices[0].message.content)
const response = await client.chat.completions.create({
  model: 'gpt-5.4',
  messages: [{ role: 'user', content: 'Explain what TokenLab does in one sentence.' }],
});

console.log(response.choices[0].message.content);
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-your-tokenlab-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "messages": [
      {"role": "user", "content": "Explain what TokenLab does in one sentence."}
    ]
  }'

متقدم: Responses API

استخدم هذا المسار فقط عندما تعتمد أداتك أو سير عملك صراحةً على دلالات OpenAI Responses.

البث مع Responses

stream = client.responses.create(
    model="gpt-5.4",
    input="Write a short poem about coding.",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="")
const stream = await client.responses.create({
  model: 'gpt-5.4',
  input: 'Write a short poem about coding.',
  stream: true,
});

for await (const event of stream) {
  if (event.type === 'response.output_text.delta') {
    process.stdout.write(event.delta);
  }
}

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

response = client.responses.create(
    model="gpt-5.4",
    input="What's the weather in Tokyo?",
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string"}
            },
            "required": ["location"]
        }
    }]
)

for item in response.output:
    if item.type == "function_call":
        print(item.name)
        print(item.arguments)

الرؤية مع Responses

response = client.responses.create(
    model="gpt-4o",
    input=[{
        "role": "user",
        "content": [
            {"type": "input_text", "text": "What's in this image?"},
            {"type": "input_image", "image_url": "https://example.com/image.jpg"}
        ]
    }]
)

print(response.output_text)

التجسيدات (Embeddings)

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Hello world"
)

print(response.data[0].embedding[:5])

Chat Completions

يعد Chat Completions هو مسار OpenAI المتوافق الافتراضي لـ TokenLab:
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)

استكشاف الأخطاء وإصلاحها

  • تحقق من أن base URL هو بالضبط https://api.tokenlab.sh/v1
  • تحقق من وجود تداخل بروكسي أو تجاوزات مخصصة لعميل HTTP
  • تأكد من أن إصدار SDK لديك محدث قبل استكشاف سلوك المزود
  • تحقق من أن مفتاح API يبدأ بـ sk-
  • تحقق من أن المفتاح نشط في لوحة تحكم TokenLab
  • أكد أن SDK يرسل Authorization: Bearer ...
  • responses.create(...) يرسل طلبات إلى /v1/responses
  • chat.completions.create(...) يرسل طلبات إلى /v1/chat/completions
  • استخدم Chat Completions بشكل افتراضي ما لم تكن بحاجة صراحةً إلى سلوك خاص بـ Responses