
بقلم: ليلى | محررة أدوات المطورين · صوت تحريري بإشراف بشري
أصدرت Mistral AI الإصدار v1.11.4 من مكتبة mistral-common في 25 يونيو 2025، وهو تحديث يجمع بين توحيد هيكل المكتبة وإصلاح سلسلة من الثغرات التقنية التي كانت تعرقل التعامل مع الوسائط المتعددة والعمل دون اتصال.
أبرز ما يحمله هذا الإصدار ثمانية تغييرات موثّقة، يمكن تلخيصها على النحو الآتي:
- دمج chat templates (PR #163 بقلم @juliendenize): أصبح بالإمكان تعريف قوالب المحادثة مباشرةً داخل المكتبة بدلاً من الاعتماد على أدوات خارجية، مما يُبسّط إعداد نماذج Mistral في pipelines المخصصة.
- إيقاف RawAudio وإحلال str | bytes محله (PR #227): قرّر الفريق إهمال نوع البيانات
RawAudioرسمياً، واستبداله بـstr | bytesتبسيطاً لواجهة التعامل مع الصوت الخام. - تعميم تجميع المُعيّر بمُفصلَين مزدوجَين (PR #235): تحديث على مستوى normalizer aggregation يتيح مرونة أكبر عند معالجة النصوص ذات الفواصل المركّبة.
- توحيد دعم ContentChunk متعدد الوسائط لجميع أدوار الرسائل (PR #241): بات دعم الـ multimodal content chunks متاحاً لكل أدوار المحادثة — سواء كانت user أو assistant أو system — بدلاً من قصره على أدوار بعينها.
- إصلاح تسلسل AudioChunk.to_openai() (PR #245 بقلم @haoruilee): كانت المكتبة تُخفق في تسلسل البيانات الصوتية الخام و base64 المسبوقة بـ prefix عند تحويلها إلى صيغة OpenAI؛ هذا الخطأ مُصلَح الآن.
- تحليل المُرمِّز من الـ cache المحلي في الوضع غير المتصل (PR #249 بقلم @sarathfrancis90): يمكن الآن تحميل tokenizer مُخزَّن محلياً دون الحاجة إلى اتصال بالشبكة، وهو تحسين حيوي لبيئات النشر المعزولة.
- حذف to_openai و from_openai من InstructRequest (PR #251): تنظيف للواجهة البرمجية بإزالة دوال التحويل من
InstructRequest، في خطوة تتسق مع توجه الفريق نحو واجهة أكثر تماسكاً. - رفع رقم الإصدار إلى 1.11.4 (PR #252): التغيير الرسمي لرقم الإصدار في الكود.
يستحق الإشارة أن هذا الإصدار يرحّب بمساهمَين جديدَين لأول مرة: @haoruilee الذي عالج خطأ تسلسل الصوت، و@sarathfrancis90 الذي أضاف دعم الـ cache المحلي — وهو ما يعكس قاعدة مساهمين آخذة في الاتساع حول المكتبة التي تجاوزت 915 نجمة على GitHub.
من الناحية العملية، الأثر الأكبر لهذا الإصدار يقع على المطورين الذين يبنون تطبيقات صوتية أو يعملون في بيئات air-gapped؛ إذ كان إخفاق AudioChunk.to_openai() مع البيانات الخام يُفسد أي pipeline يعتمد على توافق OpenAI، فيما يفتح حلّ مشكلة الـ offline tokenizer الباب أمام نشر النماذج في بيئات حوسبة الحافة أو الشبكات المقيّدة. أما دمج chat templates فيُوحّد تجربة الضبط الدقيق ويُقلّص الاعتماد على مكتبات وسيطة.







