سجل التغييرات

تغييرات الواجهة العامة، الأحدث أولاً

ترويسة Link المرافقة لترويسة Deprecation تشير إلى هذه الصفحة: هنا يُعلن موعد توقف معرّفات النماذج غير المعروفة، قبل 60 يوماً على الأقل. وقد أُعلن: ابتداءً من 4 يناير 2027 الساعة 00:00 بتوقيت UTC تعود بالخطأ 404 model_not_found. المرجع الكامل في التوثيق.

صلاحيات لكل مفتاح، وحدود معدل لكل حساب، والمتجهات والبحث

  • تغييرأصبحت حدود المعدل لكل حساب: تتشارك كل مفاتيح الحساب الواحد عدّاداً واحداً على كل مسار، 120 طلباً في أي 60 ثانية، بدلاً من عدّاد لكل مفتاح. وما يتجاوزه يعود 429 rate_limit_exceeded مع Retry-After. ولم يعد المفتاح الإضافي يضيف سعة.
  • إضافةالرمز model_not_permitted (403، وparam هو model): قد يحمل المفتاح قائمة نماذج، ونماذج المزوّدين الخارجيين (self_hosted: false) تحتاج إذناً لكل نموذج؛ والنموذج الخارج عنهما يُرفض بهذا الرمز. أما النموذج الذي لا يحق لمفتاحك رؤيته فيعود 404 model_not_found. المفاتيح التي تُنشأ من هذه البوابة تبدأ بلا قائمة نماذج، فيبقى كل نموذج تسرده لها GET /v1/models متاحاً.
  • تغييرGET /v1/models تسرد بالضبط النماذج التي يحق لمفتاحك استدعاؤها، يتصدّرها qirnas حين يحق له استدعاء النموذج الافتراضي، مع خفض max_output_tokens وdefault_max_tokens إلى سقف مخرجات المفتاح إن كان له سقف.
  • إضافةسقف المخرجات لكل مفتاح: يُعطى النموذج أصغر هذه القيم: max_tokens في طلبك (أو default_max_tokens للنموذج)، وmax_output_tokens للنموذج، وسقف المفتاح، و8192. تُخفَّض القيمة ولا يُرفض الطلب. المفاتيح التي تُنشأ من هذه البوابة تبدأ بلا سقف.
  • إضافةPOST /v1/embeddings (bge-m3، 1024 بُعداً) وPOST /v1/search (نتائج الويب: عنوان ورابط ومقتطف)، للمفاتيح التي تملك النطاق embeddings أو search؛ والمفاتيح التي تُنشأ من هذه البوابة تبدأ دونهما. ومعهما الرمزان capacity_exceeded (429: السعة المشتركة مشغولة) وservice_unavailable (503)، والترويسة x-should-retry.
  • إضافةكل عنصر في GET /v1/models يحمل self_hosted وupstream_revision.
  • تغييرPOST /v1/chat/completions يقبل جسماً حتى 256 كيلوبايت (كان 100 كيلوبايت)، وكذلك POST /v1/embeddings؛ وتبقى المسارات الأخرى عند 100 كيلوبايت.

معرّفات النماذج غير المعروفة: الخطأ 404 ابتداءً من 4 يناير 2027

  • مُهمَلابتداءً من 4 يناير 2027 الساعة 00:00 بتوقيت UTC (Mon, 04 Jan 2027 00:00:00 GMT)، يعود طلب إكمال المحادثة الذي يسمّي في model معرّفاً لا تعرفه البوابة بالخطأ 404 model_not_found بدلاً من إجابة النموذج الافتراضي، وهو الرد نفسه الذي يتلقاه طلب يسمّي نموذجاً لا يحق لمفتاحك استخدامه. لا يتأثر طلب يرسل qirnas أو معرّفاً من GET /v1/models أو لا يرسل model أصلاً. وحتى ذلك الموعد تبقى هذه المعرّفات تعمل كما هي اليوم، مع ترويسة Deprecation.
  • إضافةابتداءً من 26 نوفمبر 2026، يحمل كل رد يحمل ترويسة Deprecation الترويسة Sunset: Mon, 04 Jan 2027 00:00:00 GMT أيضاً (RFC 8594)، أي الموعد أعلاه، ليقرأه برنامجك.

واجهة الوكلاء (تجريبية)

  • إضافةمرجع واجهة الوكلاء في صفحة توثيق مستقلة: الوكلاء وإصداراتهم، والتشغيلات وخطواتها وأحداثها، ومجاميع استخدامك، والموافقات، والأدوات والاتصالات، والمشغّلات والخطافات، ونقاط الاستقبال وعمليات التسليم. الواجهة تجريبية (0.1.0)، ويحتاج المفتاح إلى النطاق agents الذي يمنحه فريق MindLab.
  • إضافةمواصفة OpenAPI لواجهة الوكلاء، openapi-agents.yaml، للتنزيل من تلك الصفحة.

عقد الواجهة العامة

  • إضافةغلاف خطأ واحد لكل الأخطاء: {"error": {message, type, code, param}, "request_id"}، مع رمز ثابت في error.code (انظر صفحة رموز الأخطاء). تُضاف الرموز ولا يُعاد تسميتها. تبقى الحقول القديمة statusCode وmessage وcode للعملاء الأقدم.
  • إضافةترويسة x-request-id على كل رد، بما فيه الأخطاء والبث. أرسل معرّفك فيها لتتطابق سجلاتك مع سجلاتنا.
  • إضافةGET /v1/models يسرد النماذج التي يستطيع مفتاحك استدعاءها، يتصدّرها الاسم المستعار الدائم qirnas، مع نافذة السياق وحدود المخرجات والقدرات والحالة لكل نموذج.
  • إضافةمعاملات أخذ عينات جديدة: top_p وpresence_penalty وfrequency_penalty وseed وstop.
  • إضافةالمعاملان reasoning وthink يتطلبان صلاحية: القيمة true تحتاج مفتاحاً يملك النطاق الذي يحمل الاسم نفسه، وإلا يعود الطلب 403 scope_required.
  • إضافةالرمز context_length_exceeded (400، أو داخل البث بعد بدئه): الرسائل مع max_tokens (أو default_max_tokens للنموذج إن لم ترسله) لا تتسع في نافذة سياق النموذج.
  • تغييرالحقول المدرجة في المرجع تُفحص الآن بدلاً من إسقاطها بصمت: الحقل بقيمة غير صالحة يعود 400 بالرمز invalid_request ويسمّيه param. ويشمل ذلك القيمة خارج حدودها، وstream_options دون stream: true، وreasoning أو think بقيمة غير true وfalse وnull، مثل الكائن {"effort": "low"}. أما reasoning_effort من OpenAI فليس جزءاً من الواجهة وما زال يُتجاهل.
  • مُهمَلمعرّفات النماذج غير المعروفة مُهمَلة. الطلب الذي يسمّي في model معرّفاً لا تعرفه البوابة ما زال يجيب عنه النموذج الافتراضي، لكن الرد يحمل الآن الترويسة Deprecation: @1790467200 وترويسة Link إلى هذه الصفحة. أرسل qirnas أو معرّفاً من GET /v1/models. بعد 60 يوماً على الأقل من هذا الإشعار ستعود هذه المعرّفات بالخطأ 404 model_not_found، وسيُعلن الموعد الدقيق في هذه الصفحة.