العودة إلى المدونة

الذكاء الاصطناعي للمبتدئيندليل

واجهة API متوافقة مع OpenAI: ما هو base_url وكيفية التبديل

تقبل واجهة API المتوافقة مع OpenAI الطلبات نفسها التي تقبلها OpenAI. غيّر base_url والمفتاح ومعرّف النموذج، وسيرسل كودك طلبه الأول إلى CheapTokens.

بواسطة CheapTokens Teamنُشر في تم التحديث في 5 دقيقة قراءة

ثلاث قيم يجب تغييرها عند التبديل إلى واجهة API متوافقة مع OpenAI: base_url ومفتاح API ومعرّف النموذج
في هذه الصفحة
  1. ماذا يعني "متوافق مع OpenAI"؟
  2. ما هو base_url؟
  3. القيم الثلاث التي تغيّرها
  4. الطلب الأول في Python
  5. الطلب نفسه باستخدام curl
  6. ما الذي يجب أن تراه
  7. كم تبلغ التكلفة؟
  8. إذا لم يعمل
  9. الخطوات التالية

واجهة برمجة تطبيقات متوافقة مع OpenAI هي واجهة تقبل الطلبات بالصيغة نفسها التي تقبلها واجهة Chat Completions من OpenAI وتردّ بالصيغة نفسها. لنقل تطبيق إلى مزوّد آخر، تغيّر عادةً ثلاث قيم: base_url (إلى أين تذهب الطلبات)، ومفتاح API، ومعرّف النموذج. يبقى باقي الكود كما هو، بما في ذلك قائمة الرسائل وطريقة قراءة الرد.

يشرح هذا الدليل الفكرة بكلمات بسيطة وينتهي بطلب أول ناجح إلى CheapTokens بلغة Python وcurl. تم التحقق من الحقائق المتعلقة بـ CheapTokens مقابل وثائقها في 22 أكتوبر 2026.

ماذا يعني "متوافق مع OpenAI"؟#

واجهة برمجة التطبيقات هي مجموعة قواعد للتحدث إلى خدمة عبر الإنترنت (إذا كانت الكلمة جديدة عليك، ابدأ بـ كيف يعمل طلب API الأول الخاص بك). أصبحت صيغة المحادثة من OpenAI معيارًا شائعًا: يقبل العديد من المزوّدين والأدوات جسم الطلب نفسه ويعيدون شكل الاستجابة نفسه. تُسمى هذه الواجهة متوافقة مع OpenAI.

عمليًا، يعني ذلك أن ثلاثة أمور متطابقة لدى أي مزوّد متوافق:

  • الطلب: جسم JSON يحتوي على حقل model وقائمة messages، حيث لكل رسالة role (system أو user أو assistant) وcontent.
  • مسار نقطة النهاية: /chat/completions، يُضاف بعد عنوان URL الأساسي.
  • الاستجابة: كائن JSON حيث يوجد النص المولّد في choices[0].message.content.

لأن الصيغة مشتركة، يمكن لوحدات SDK الرسمية والعديد من التطبيقات التحدث إلى أي مزوّد متوافق. تحتاج فقط إلى معرفة أين ترسل الطلب.

ما هو base_url؟#

base_url هو العنوان الذي يبدأ به كل طلب. تبني وحدة SDK العنوان الكامل بإضافة مسار الاستدعاء إليه.

الجزء مثال
base_url https://api.cheaptokens.dev/v1
المسار الذي تضيفه SDK /chat/completions
العنوان الكامل للطلب https://api.cheaptokens.dev/v1/chat/completions

لذلك عندما تضبط base_url مختلفًا، يرسل الكود نفسه النوع نفسه من الطلبات إلى خادم مختلف. عنوان URL الأساسي لـ CheapTokens هو https://api.cheaptokens.dev/v1. واجهتها متوافقة مع OpenAI Chat Completions ومع Anthropic Messages، ورصيد واحد مدفوع مسبقًا يغطي جميع النماذج.

القيم الثلاث التي تغيّرها#

القيمة ما هي من أين تأتي
base_url عنوان API https://api.cheaptokens.dev/v1
مفتاح API كلمة المرور السرية الخاصة بك لواجهة API حسابك في CheapTokens. راجع ما هو مفتاح API وكيف تخزنه بأمان
معرّف النموذج الاسم الدقيق للنموذج في حقل model وثائق CheapTokens

يستحق معرّف النموذج الانتباه. يمنح المزوّدون المختلفون النموذج نفسه معرّفات مختلفة، لذا لن يعمل معرّف من خدمة أخرى هنا. خذ المعرّفات من وثائق CheapTokens. المعرّفات المتاحة الآن:

النموذج معرّف النموذج السياق الحد الأقصى للإخراج لكل رد
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8,192 رمزًا
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32,768 رمزًا
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8,192 رمزًا

يعيد DeepSeek-V4-Flash حتى 32,768 رمزًا لكل رد وله سياق 380K؛ وGLM-5.3-Flash له سياق 390K؛ وMiniMax-M2.7 له سياق 180K. تُحتسب تكلفة الثلاثة من الرصيد نفسه، لذا يعني التبديل بينها تغيير معرّف النموذج فقط.

الطلب الأول في Python#

ثبّت حزمة openai، ثم خزّن مفتاحك في متغير بيئة بدلًا من كتابته في الكود:

bash
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"

الآن الكود. الفرق الوحيد عن مثال OpenAI القياسي هو وسيط base_url والمفتاح ومعرّف النموذج:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",   # 1. where requests go
    api_key=os.environ["CHEAPTOKENS_API_KEY"],   # 2. your CheapTokens key
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",                # 3. model id from the docs
    messages=[
        {"role": "system", "content": "You answer briefly."},
        {"role": "user", "content": "Explain base_url in one sentence."},
    ],
)

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

المفتاح في المثال هو عنصر نائب: استبدل YOUR_CHEAPTOKENS_KEY بمفتاحك الخاص ولا تُودِع مفتاحًا حقيقيًا في مستودع أبدًا.

إذا كان تطبيق لديك يقرأ الإعدادات من ملف تهيئة أو متغيرات بيئة، فلن تحتاج إلى تعديل كوده إطلاقًا. ابحث عن حقول تُسمى base URL أو API base أو endpoint، واملأ القيم الثلاث نفسها هناك.

الطلب نفسه باستخدام curl#

يُظهر curl ما تفعله SDK خلف الكواليس: عنوان URL الأساسي مع المسار، والمفتاح في ترويسة Authorization، وجسم JSON.

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "user", "content": "Explain base_url in one sentence."}
    ]
  }'

ما الذي يجب أن تراه#

عندما يكون كل شيء مضبوطًا بشكل صحيح، يطبع سكربت Python ردًا نصيًا قصيرًا، ويطبع curl كائن JSON. ابحث عن قائمة choices: نص الرد موجود في choices[0].message.content. إذا رأيت ذلك، فقد نجح طلبك الأول إلى CheapTokens، ويمكنك الانتقال إلى تطبيقك الحقيقي.

كم تبلغ التكلفة؟#

الفوترة بالرموز، وتُحتسب منفصلة للمدخلات والمخرجات (راجع رموز المدخلات مقابل المخرجات). على سبيل المثال، تبلغ تكلفة MiniMax-M2.7 حاليًا $0.05 لكل مليون رمز مدخلات و$0.15 لكل مليون رمز مخرجات. يعرض الجدول أدناه دائمًا الأسعار الحالية لجميع النماذج، دون رسوم إضافية في ساعات الذروة.

النموذج السياق الإدخال $/1M الإخراج $/1M OpenRouter إدخال OpenRouter إخراج
GLM-5.3-Flash reasoning 390K $0.02 $0.04 $0.0413 $0.0758
DeepSeek-V4-Flash 380K $0.015 $0.10 $0.0475 $0.1568
MiniMax-M2.7 180K $0.05 $0.15 $0.30 $1.20

الأسعار بالدولار الأمريكي لكل مليون رمز (token). أرقام OpenRouter معروضة للمقارنة وقد تتغير.

الأسعار للقائمة الكاملة من النماذج موجودة أيضًا على صفحة أسعار CheapTokens.

إذا لم يعمل#

  • خطأ في المصادقة (عادةً 401): المفتاح مفقود أو مكتوب خطأً أو يحتوي على مسافات إضافية. تحقق من أن متغير البيئة مضبوط في الطرفية نفسها التي تشغّل فيها السكربت.
  • "Not found" (عادةً 404): تحقق من base_url. يجب أن ينتهي بـ /v1، ولا يجب أن تضيف /chat/completions بنفسك عند استخدام SDK، وإلا سيتضاعف المسار.
  • نموذج غير معروف: انسخ معرّف النموذج بدقة من الجدول أعلاه أو من الوثائق، بما في ذلك الأحرف الكبيرة والجزء قبل الشرطة المائلة.
  • لا اتصال أو مهلة: راجع أخطاء الاتصال الشائعة وكيفية إصلاحها.
  • الرد مقطوع في منتصف الجملة: تم بلوغ حد max_tokens، وهو ما يُغطى في لماذا يتوقف رد الذكاء الاصطناعي في منتصف الجملة.

الخطوات التالية#

بمجرد أن يعمل الطلب الأول، يمكنك إضافة البث في Python، أو إدخال القيم الثلاث نفسها في محررك أو وكيلك، أو قراءة كيفية قراءة أسماء نماذج الذكاء الاصطناعي. تفاصيل الإعداد وقائمة كاملة بالنماذج موجودة في وثائق CheapTokens.