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

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

اختيار النموذج

يمكن أن يؤثر اختيار النموذج المناسب بشكل كبير على التكلفة والجودة.

توصيات حسب المهمة

المهمةالنماذج الموصى بهاالسبب
أسئلة وأجوبة بسيطةgpt-5-mini, gemini-2.5-flashسريع، منخفض التكلفة، وكافٍ
استدلال معقدgpt-5.4, claude-opus-4-6, deepseek-r1منطق وتخطيط أفضل
البرمجةclaude-sonnet-4-6, gpt-4o, deepseek-v3.2مُحسّن للكود
الكتابة الإبداعيةclaude-sonnet-4-6, gpt-4oجودة نثر أفضل
الرؤية/الصورgpt-4o, claude-sonnet-4-6, gemini-2.5-flashدعم رؤية أصلي
سياق طويلgemini-2.5-pro, claude-sonnet-4-6نوافذ token تتجاوز 1M
حساسية للتكلفةgpt-5-mini, gemini-2.5-flash, deepseek-v3.2أفضل قيمة

مستويات التكلفة

$$$$ Premium: gpt-5.4, claude-opus-4-6
$$$  Standard: claude-sonnet-4-6, gpt-4o
$$   Budget:   gpt-5-mini, gemini-2.5-flash
$    Economy:  deepseek-v3.2, deepseek-r1

تحسين التكلفة

1. استخدم النماذج الأصغر أولاً

def smart_query(question: str, complexity: str = "auto"):
    """Use cheaper models for simple tasks."""

    if complexity == "simple":
        model = "gpt-5-mini"
    elif complexity == "complex":
        model = "gpt-4o"
    else:
        # Start cheap, escalate if needed
        model = "gpt-5-mini"

    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": question}]
    )
    return response

2. قم بتعيين max_tokens

اضبط دائماً حدًا مناسبًا لـ max_tokens:
# ❌ Bad: No limit, could generate thousands of tokens
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Summarize this article"}]
)

# ✅ Good: Limit response length
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Summarize this article"}],
    max_tokens=500  # Reasonable limit for a summary
)

3. حسّن الـ Prompts

# ❌ Verbose prompt (more input tokens)
prompt = """
I would like you to please help me by analyzing the following text
and providing a comprehensive summary of the main points. Please be
thorough but also concise in your response. The text is as follows:
{text}
"""

# ✅ Concise prompt (fewer tokens)
prompt = "Summarize the key points:\n{text}"

4. فعّل التخزين المؤقت

استفد من التخزين المؤقت الدلالي:
# For repeated similar queries, caching provides major savings
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "What is machine learning?"}],
    temperature=0  # Deterministic = better cache hits
)

5. اجمع الطلبات المتشابهة على دفعات

# ❌ Many small requests
for question in questions:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": question}]
    )

# ✅ Fewer larger requests
combined_prompt = "\n".join([f"{i+1}. {q}" for i, q in enumerate(questions)])
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": f"Answer each question:\n{combined_prompt}"}]
)

تحسين الأداء

1. استخدم Streaming لتحسين تجربة المستخدم

يؤدي Streaming إلى تحسين الأداء المُدرَك:
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Write a long essay"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

2. اختر النماذج السريعة للاستخدام التفاعلي

حالة الاستخدامالموصى بهزمن الاستجابة
واجهة محادثةgpt-5-mini, gemini-2.5-flash~200ms لأول token
الإكمال عبر Tabclaude-haiku-4-5~150ms لأول token
المعالجة في الخلفيةgpt-4o, claude-sonnet-4-6~500ms لأول token

3. قم بتعيين المهلات الزمنية

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

الموثوقية

1. نفّذ إعادة المحاولة

import time
from openai import RateLimitError, APIError

def chat_with_retry(messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="gpt-4o",
                messages=messages
            )
        except RateLimitError:
            wait = 2 ** attempt
            print(f"Rate limited, waiting {wait}s...")
            time.sleep(wait)
        except APIError as e:
            if attempt == max_retries - 1:
                raise
            time.sleep(1)
    raise Exception("Max retries exceeded")

2. تعامل مع الأخطاء بسلاسة

from openai import APIError, AuthenticationError, RateLimitError

try:
    response = client.chat.completions.create(...)
except AuthenticationError:
    # Check API key
    notify_admin("Invalid API key")
except RateLimitError:
    # Queue for later or use backup
    add_to_queue(request)
except APIError as e:
    if e.status_code == 402:
        notify_admin("Balance low")
    elif e.status_code >= 500:
        # Server error, retry later
        schedule_retry(request)

3. استخدم نماذج احتياطية

FALLBACK_CHAIN = ["gpt-4o", "claude-sonnet-4-6", "gemini-2.5-flash"]

def chat_with_fallback(messages):
    for model in FALLBACK_CHAIN:
        try:
            return client.chat.completions.create(
                model=model,
                messages=messages
            )
        except APIError:
            continue
    raise Exception("All models failed")

الأمان

1. احمِ مفاتيح API

# ❌ Never hardcode keys
client = OpenAI(api_key="sk-abc123...")

# ✅ Use environment variables
import os
client = OpenAI(api_key=os.environ["TOKENLAB_API_KEY"])

2. تحقّق من صحة إدخال المستخدم

def validate_message(content: str) -> bool:
    """Validate user input before sending to API."""
    if len(content) > 100000:
        raise ValueError("Message too long")
    # Add other validation as needed
    return True

3. قم بتعيين حدود لمفاتيح API

أنشئ مفاتيح API منفصلة مع حدود إنفاق لكل من:
  • التطوير/الاختبار
  • الإنتاج
  • التطبيقات المختلفة

المراقبة

1. تتبّع الاستخدام

تحقق من لوحة التحكم الخاصة بك بانتظام من أجل:
  • استخدام token حسب النموذج
  • تفصيل التكلفة
  • معدلات نجاح التخزين المؤقت
  • معدلات الأخطاء

2. سجّل المقاييس المهمة

import logging

response = client.chat.completions.create(...)

logging.info({
    "model": response.model,
    "prompt_tokens": response.usage.prompt_tokens,
    "completion_tokens": response.usage.completion_tokens,
    "total_tokens": response.usage.total_tokens,
})

3. أعدّ التنبيهات

قم بتكوين تنبيهات انخفاض الرصيد في لوحة التحكم الخاصة بك لتجنب انقطاع الخدمة.

قائمة التحقق

  • استخدام النموذج المناسب لكل مهمة
  • تعيين حدود max_tokens
  • الـ Prompts موجزة
  • تفعيل التخزين المؤقت عند الاقتضاء
  • تجميع الطلبات المتشابهة على دفعات
  • Streaming لتجربة مستخدم تفاعلية
  • نماذج سريعة للاستخدام الفوري
  • تكوين المهلات الزمنية
  • تنفيذ منطق إعادة المحاولة
  • وجود معالجة للأخطاء
  • تكوين النماذج الاحتياطية
  • مفاتيح API في متغيرات البيئة
  • التحقق من صحة الإدخال
  • مفاتيح منفصلة للتطوير/الإنتاج
  • تعيين حدود الإنفاق