توافق SDK الخاص بـ OpenAI
ما يعمل دون تغيير إذا كنت توجّه تكاملاً متوافقًا مع OpenAI موجودًا أصلاً نحو tAI، وما لا يعمل، حتى لا يُكتشَف أي شيء بالتجربة والخطأ.
النسخة المختصرة
غيّر قيمتين، base_url إلى https://api.artfical.com/v1 وapi_key إلى مفتاح tAI، ودورة الطلب/الاستجابة الأساسية، إكمالات المحادثة، والبث، واستدعاء الأدوات، وإدخال الصور، تعمل بنفس الطريقة التي تعمل بها ضد واجهة OpenAI نفسها. توجد هذه الصفحة من أجل الأجزاء التي لا تنتقل واحدة بواحدة، حتى لا يعتمد الترحيل على اكتشاف الفجوات طلبًا فاشلاً تلو الآخر.
# Before client = OpenAI(api_key="sk-...") # After client = OpenAI(base_url="https://api.artfical.com/v1", api_key="tai-sk-...")
يعمل كما هو
| الميزة | ملاحظات |
|---|---|
| إكمالات المحادثة | نفس شكل الطلب والاستجابة. راجع إكمالات المحادثة. |
| البث | نفس شكل قطع SSE، بما في ذلك قطعة أخيرة تحتوي على الاستخدام فقط. راجع البث. |
| استدعاء الأدوات / الدوال | نفس شكل tools وtool_calls. لا ينفّذ tAI الأدوات بنفسه أبدًا؛ راجع استدعاء الأدوات لمعرفة سبب اختلاف ذلك عن بعض واجهات API الأخرى الموجهة للوكلاء. |
| إدخال الصور | نفس شكل جزء محتوى image_url، روابط بيانات base64. راجع الصور لمعرفة أي النماذج تقبله. |
temperature، top_p، presence_penalty، frequency_penalty، seed، stop | نفس الأسماء، ونفس النطاقات المقبولة. راجع معاملات أخذ العينات. |
| غلاف الخطأ | نفس شكل {"error": {"message", "type"}}. راجع الأخطاء. |
GET /v1/models | نفس غلاف القائمة، وإن كانت مجموعة الحقول في كل إدخال نموذج أصغر من تلك الخاصة بـ OpenAI. راجع النماذج. |
غير مدعوم حاليًا
| الميزة | ما يحدث إذا أرسلتها |
|---|---|
n (إكمالات متعددة) | تُتجاهل. تحتوي choices دائمًا على إدخال واحد بالضبط. |
logprobs / top_logprobs | تُتجاهل. لا تُعاد أي بيانات احتمالية لوغاريتمية. |
response_format (وضع JSON / المخرجات المهيكلة) | تُتجاهل. إذا احتجت مخرجات مهيكلة بشكل موثوق، فالنهج الأكثر قابلية للنقل هو توجيه النموذج في الطلب النصي نفسه للرد بصيغة محددة (JSON، قالب ثابت) وتحليل النص الناتج. |
| نقاط نهاية التضمينات (embeddings)، والصوت، وتوليد الصور | غير مُنفَّذة. سطح API الخاص بـ tAI يقتصر على إكمالات المحادثة وسرد النماذج فقط؛ راجع نظرة عامة على API للحصول على قائمة نقاط النهاية الكاملة. |
| نقاط نهاية الضبط الدقيق (fine-tuning)، والدفعات (batch)، ورفع الملفات | غير مُنفَّذة. |
| مفاتيح خاصة بالمؤسسة / المشروع | غير قابلة للتطبيق. مفتاح tAI مرتبط بنطاق مساحة عمل واحدة؛ راجع المصادقة. |
لا يتسبب أي من الحقول غير المدعومة في فشل الطلب تمامًا؛ فهي تُقبَل وتُتجاهل بصمت بدلاً من إثارة خطأ 400. هذا خيار مقصود لتجنب تعطيل عميل موجود أصلاً يرسل دائمًا، على سبيل المثال، n: 1 كعادة حتى لو كانت القيمة الافتراضية أصلاً؛ الخطر هو أن يفترض عميل أن ميزة غير مدعومة فعليًا (مثل n: 3 لثلاث إكمالات مرشحة حقيقية) تعمل بينما هي في الواقع لا تعمل بصمت، لذا يستحق التحقق صراحة من شكل الاستجابة بدلاً من الثقة بأنه لم يُثَر أي خطأ.
أسماء النماذج لا تنتقل
يجب تغيير سلسلة النموذج في تكامل موجود، مثل "gpt-4o" أو "gpt-4.1-mini" أو ما شابه، إلى أحد معرّفات نماذج tAI الخاصة (tai-4.0.6P، tai-4.0.6B، tai-4.0.7، tai-4.1، tai-4.2)؛ راجع صفحة النماذج لمعرفة ما يناسب كل واحد منها. لا يوجد تحويل تلقائي من أسماء نماذج مزود آخر إلى أسماء tAI، لأن القائمتين لا تتطابقان واحدة بواحدة من حيث القدرة أو التسمية.
يستحق التحقق المزدوج بعد الترحيل
بضعة أشياء لا تسبب خطأً لكن يسهل الوقوع في خطأ دقيق بشأنها من أول محاولة: تأكد من أن base_url يتضمن اللاحقة /v1 (فـ https://api.artfical.com المجرد بدونها لن يحلّ الطلبات بشكل صحيح)، وتأكد من أن مفتاح API يحمل البادئة tai-sk- لا مفتاحًا متبقيًا من حيث كان التكامل موجَّهًا سابقًا، وإذا كان التكامل يعتمد على أي من الحقول غير المدعومة المذكورة أعلاه لإحداث تأثير فعلي، فخطّط لتلك الفجوة صراحة بدلاً من افتراض التكافؤ.