العودة
Imp: نقل كامل لمكتبة DSPy إلى BEAM بلغة Elixir
SiTech AI Team2 წთ. საკითხავი

Imp: نقل كامل لمكتبة DSPy إلى BEAM بلغة Elixir

Imp مكتبة بلغة Elixir تنقل DSPy إلى BEAM: يصف المطوّر ما تستقبله كل خطوة من نموذج اللغة وما تعيده، ويعمل محسّن على تحسين البرنامج وفق أمثلة موسومة. التوقيعات وحلقات الوكلاء تعمل تحت إشراف OTP.

تطرح مكتبة Imp الجديدة لـ Elixir نفسها كنقل كامل لمكتبة DSPy إلى BEAM. يصف المطوّر خطوة نموذج اللغة كدالة محدّدة النوع، ويقيس الناتج ويسلّمه إلى محسّن، مع بقاء موثوقية OTP وتزامنه كما هي.

رسم توضيحي لمشروع Imp: عفريت يفحص أوراق لعب عبر عدسة

توقيع بدل الطلب النصي

الوحدة الأساسية هي التوقيع: لا تكتب سوى ما يدخل وما يخرج، مثل "issue -> kind: enum[bug,feature,question], summary" مع وصف قصير. تبني الدالة Imp.predict/2 الطلب النصي منه، وتقارن الرد به، وتعيد حقولاً محدّدة النوع: تكون kind دائماً واحدة من القيم الثلاث المسموحة، وإلا فشل الاستدعاء.

ويعمل التوقيع نفسه في أنماط أخرى: تدفع Imp.chain_of_thought/2 النموذج إلى التفكير أولاً، وتمنحه Imp.react/3 أدوات. ولا يحتاج المطوّر إلى كتابة قالب طلب نصي ولا إلى محلّل للرد.

القيس ثم التحسين

عند تقديم أمثلة موسومة ومقياس، تقيّم Imp البرنامج وتحسّنه. ثمة حاجة إلى ثلاث قوائم: trainset التي يتعلم منها المحسّن، وvalset لمقارنة البدائل، وtestset الذي يُقاس قبله وبعده. وتحسب Imp.evaluate/3 المقياس، مثل Imp.exact_match(:kind).

ثم يدخل المحسّن: تستخدم Imp.Optimizer.GEPA.new/2 نموذجاً أقوى لقراءة الإخفاقات وإعادة كتابة التعليمات. وتضم المكتبة أيضاً LabeledFewShot وBootstrapFewShot لاختيار الأمثلة، وMIPROv2 للبحث في التركيبات، وSIMBA لاستخلاص قواعد من محاولات البرنامج، إضافة إلى تدريب الأوزان. والناتج برنامج جديد تُحفظ تعليماته وأمثلته بصيغة JSON وتُراجع كفرق.

الوكلاء وقواعد OTP

الأداة هنا دالة Elixir عادية: تستقبل Imp.tool/3 اسماً ووصفاً ودالة ومخطط JSON، ويبني Imp.react/3 وكيلاً يستدعي هذه الأدوات حتى يجد جواباً. في مثال README يقرأ الوكيل صفحة ويب عبر Req ويعيد رقم الإصدار.

تشغّل Imp.call/2 البرنامج داخل العملية المستدعية، بينما تشغّله Imp.start_run/3 كعملية مستقلة تحت supervisor يمكن مراقبتها وإيقافها وتقييدها؛ ويحدد authorize callback أي استدعاءات مسموحة. ويعيد Imp.Run.events/1 سجل الأحداث، ولطلبات النموذج مهلة، واستدعاء الأداة الذي ربما نفّذ أثره فعلاً يُبلَّغ عنه بحالة unknown ولا يُعاد صامتاً.

تستطيع Imp استيراد أدوات خادم MCP معتمد، وعبر ACP يمكن تقديم أي برنامج إلى Zed وغيره من العملاء كوكيل. المكتبة متاحة على Hex وتتطلب Elixir 1.19 ومترجم C++، وتصل إلى النماذج عبر ReqLLM. الإصدار 0.5 تجريبي والرخصة MIT.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.