
شنو هو jev-align؟
jev-align هو أداة تجريبية كتخدم من سطر الأوامر من Sutro لبناء AI Functions باستعمال Jev ديال TypeSafe. كيقَيّم مجموعة البيانات، كيحدّد الأمثلة اللي فيها الشك، كيطلب منك تصنّفها، وكيستعمل GEPA باش يقترح تعريف محسن للدالة.
الأداة مصممة لخدمة تكرارية. تقدر تنشئ AI Function من بيانات محلية، تراجع التغييرات المقترحة، تحفظ التقدم ديالك، تستعمل الدالة فشي تطبيق، ومن بعد تحسّنها بأمثلة تجمعات فالإنتاج.
كل تصنيف كيجِي منك. النقطة الأعلى فالتدريب ما كتخليش jev-align يقبل الاقتراح أوتوماتيكياً.
الخصائص الرئيسية
- التصنيف المبني على الشك: الواجهة ديال سطر الأوامر كتعطي الأولوية للصفوف الغامضة، وكتزيد معاها عينة عشوائية للمراجعة.
- تحسين تحت تحكم الإنسان: نتا اللي كتقرر واش تقبل ولا ترفض كل تعريف مقترح.
- أنواع متعددة ديال المهام: بنِ دوال ثنائية، متعددة الأصناف، متعددة التصنيفات، ولا دوال ديال التقييم المرتب.
- اكتشاف مجموعات البيانات المحلية: الإعداد الموجّه كيلقى ملفات CSV وParquet وJSONL.
- مزودو نماذج مرنون: شغّل Jev عبر TypeSafe AI أو Vercel AI Gateway أو Cloudflare Workers AI.
- نماذج منفصلة للتأمل: كوّن OpenAI أو Anthropic أو Gemini أو أي مزود آخر متوافق مع LiteLLM باش يخدم مع GEPA.
- جلسات محفوظة: كمّل جلسات التحسين السابقة وعاين AI Functions المحفوظة.
- التقاط أمثلة من الإنتاج: جمع أمثلة مفيدة من التطبيق وصنّفها فدورة تحسين لاحقة.
فهم أنواع المهام المدعومة
قبل ما تبدا، اختار صيغة الإخراج اللي كتناسب المشكل ديالك:
- ثنائي: كيرجع
TrueولاFalse. - متعدد الأصناف: كيرجع تصنيف واحد بالضبط من مجموعة ثابتة.
- متعدد التصنيفات: كيرجع تصنيف واحد ولا أكثر من مجموعة ثابتة.
- نقطة: كيرجع مستوى واحد من سلم تقييم مرتب.
تثبيت jev-align
المتطلبات المسبقة
خاصك Python 3.11 ولا أحدث. وخصك حتى بيانات الدخول ديال مزود Jev ومزود مدعوم لنموذج التأمل.
التثبيت باستعمال uv
التثبيت السريع الموصى به كيستعمل uv:
uv tool install jev-alignالتثبيت باستعمال pip
إلا ما كتستعملش uv، ثبّت الحزمة باستعمال pip:
pip install jev-alignإعداد بيانات الدخول
فالمسار العادي ديال TypeSafe AI، صدّر مفتاح TypeSafe API. وGEPA حتى هو محتاج مزود لنموذج التأمل، بحال OpenAI أو Anthropic أو Gemini.
export TYPESAFE_API_KEY="..."
export OPENAI_API_KEY="..."تقدر تستعمل ANTHROPIC_API_KEY ولا GEMINI_API_KEY بلاصة مفتاح OpenAI. Vercel AI Gateway وCloudflare Workers AI يقدرو يعوضو TypeSafe AI كمزود لـ Jev؛ هاد المسارات ما كتحتاجش TYPESAFE_API_KEY.
بدا الإعداد الموجّه
شغّل الواجهة ديال سطر الأوامر بواحد من هاد الأمرين:
jevaولا:
jev-alignالإعداد الموجّه كيكتاشف مجموعات البيانات المحلية بصيغ CSV وParquet وJSONL، وكيضم ثلاثة أمثلة واجدة للتشغيل. تبع التعليمات باش تختار مجموعة البيانات، تحدد المهمة، تختار الحقول المهمة، وتكوّن المزودين.
أزرار التنقل فالواجهة
- استعمل الأسهم وEnter باش تتنقل فالقوائم.
- ضغط على
bباش ترجع للتصنيف اللي قبل. - دخل
/backباش تخرج من خانة التعليل. - ضغط على Space باش تبدّل الاختيارات فمهمة متعددة التصنيفات.
شغّل مهمة تحسين باستعمال الخيارات
تقدر تتجاوز بعض مراحل المسار الموجّه بإعطاء خيارات فسطـر الأوامر. المثال التالي كيبني دالة ثنائية كتحدد واش المنشور كيتعلق بالطيران:
jeva optimize posts.csv \
--question "Is the post related to aviation?" \
--column title \
--column text \
--pool-size 1000الخيارات المتكررة ديال --column كتعلم jev-align يقيّم الحقول title وtext. الخيار --pool-size 1000 كيحدد مجموعة العمل فـ 1,000 صف.
افتراضياً، jev-align كيستعمل أول 1,000 صف، ولا مجموعة البيانات كاملة إلا كان فيها أقل من هاد العدد. تقدر تجمع جميع الحقول ولا تختار أعمدة محددة.
إعداد الأصناف ومستويات التقييم
فالمهام متعددة الأصناف ومتعددة التصنيفات، عطِ خيارات مكررة من نوع --class "NAME=DESCRIPTION". وفمهام التقييم، عطِ خيارات مكررة من نوع --score-level. حيث إن الخيارات المتاحة بالضبط ممكن تتبدل، راجع المرجع المدمج:
jeva optimize --helpكيفاش كتخدم كل دورة تحسين
- تقييم مجموعة البيانات: jev-align كيشغّل الدالة الحالية على البيانات المكوّنة وكيقيس درجة الشك.
- اختيار الأمثلة: كيختار الصفوف الغامضة وكيزيد عينة عشوائية للمراجعة.
- جمع التصنيفات: كتصنّف الأمثلة المختارة وتقدر تزيد تعليلات اختيارياً.
- تشغيل GEPA: GEPA كيستعمل الملاحظات المتراكمة باش يقترح تعريف محسن.
- مراجعة الاقتراح: الواجهة كتعرض النقطة، والتغيير فدرجة اليقين، والفرق بين التعريف الحالي والمقترح.
- اختيار الإجراء الموالي: تقدر تقبل، ترفض، ترجع للور، ولا توقف وتكمّل من بعد.
هاد المرحلة ديال المراجعة مهمة: التحسينات فالنقط كتبقى غير اقتراحات حتى كتقبلها بشكل صريح.
عدّل إعدادات التحسين المتقدمة
القائمة الموجّهة Advanced كتوفر بزاف ديال أدوات التحكم:
- اختار 5 ولا 10 ولا 15 ولا 20 annotation ديال التدريب فكل دورة.
- فعّل اختياريا مجموعة تقييم معزولة بنسبة 20%.
- حدّد الميزانية ديال استدعاءات المقياس فـ GEPA، واللي القيمة الافتراضية ديالها هي 300.
الدورات الصغيرة ديال annotation تقدر تخلي كل دورة مراجعة أسرع. المجموعة المعزولة تقدر توفر إشارة تقييم منفصلة على الأمثلة المستعملة فالتحسين. الميزانية ديال استدعاءات المقياس كتحدد شحال من الخدمة يقدر GEPA يدير فواحد التشغيل.
اختار مزوّد Jev
الإعداد الموجّه كيكتاشف المزوّدين المكوّنين وكيخليك تختار بين TypeSafe AI وVercel AI Gateway وCloudflare Workers AI. المزوّد اللي اخترتي كيتحفظ مع AI Function، وبالتالي الاستدعاءات اللاحقة فالتشغيل كتستعمل نفس المسار.
استعمل Vercel AI Gateway
export AI_GATEWAY_API_KEY="..."
jeva optimize data.csv --question "Is this relevant?" --column text \
--backend vercelاستعمل Cloudflare Workers AI
export CLOUDFLARE_ACCOUNT_ID="..."
export CLOUDFLARE_API_TOKEN="..."
jeva optimize data.csv --question "Is this relevant?" --column text \
--backend cloudflareحتى واحد من هاد المسارين ما كيحتاج TYPESAFE_API_KEY.
كوّن موديل التأمل ديال GEPA
موديل التأمل ديال GEPA منفصل على موديل Jev اللي كيقيّم صفوف مجموعة البيانات. موديلات OpenAI وAnthropic وGemini كيتكتاشفو أوتوماتيكيا. وتقدر حتى تستعمل أي مزوّد LiteLLM، بما فيه Fireworks وvLLM المحلي ونقاط النهاية الأخرى المتوافقة مع OpenAI.
مثلا، كوّن نقطة نهاية مستضافة ديال vLLM واختار الموديل ديالها بشكل صريح:
export HOSTED_VLLM_API_BASE="http://localhost:8000/v1"
jeva optimize data.csv --question "Is this relevant?" --column text \
--reflection-model "hosted_vllm/Qwen/Qwen3-8B"هاد الفصل كيخليك تختار مزوّد واحد لتقييم مجموعة البيانات فالتشغيل، ومزوّد آخر لخدمة التحسين ديال GEPA.
سيّر واستأنف AI Functions المحفوظة
عرض الدوال المحفوظة ديالك بهاد الأمر:
jeva functionsباش تستأنف تشغيل محدد مباشرة، عطِ المسار ديال المجلد المحفوظ ديالو:
jeva optimize --resume .jev-align/runs/<run-id>الاستئناف مفيد ملي بغيتي تكمل وضع التسميات، ترجع لدالة محفوظة، ولا تعالج أمثلة تجمعات من بعد النشر.
استعمل AI Function فـ Python
حمّل دالة محفوظة باستعمال AIFunction.load. فعّل الالتقاط باش تسجّل الدالة أمثلة مفيدة من الإنتاج للمراجعة فالمستقبل:
from jev_align import AIFunction
is_aviation = AIFunction.load(
".jev-align/runs/<run-id>",
capture=True,
)
prediction = is_aviation(
title="Airport expansion",
text="A new runway opens next year.",
)خاص الكلمات المفتاحية تطابق الحقول اللي كتتوقعها الدالة المحفوظة. فهاد المثال، الدالة كتقيّم العنوان ونص المحتوى.
بقا كتتعلم من بيانات الإنتاج
مع capture=True، التطبيق ديالك يقدر يحتافظ بأمثلة مفيدة للتحسين من بعد. رجع للـ CLI ملي تكون واجد تراجعها:
jeva functionsاختار ولا استأنف AI Function المناسبة، حط تسميات للأمثلة الملتقطة، وخلي GEPA يقترح التعريف الموالي. نفس مسار المراجعة البشرية كيبقى مطبق: تفقد المقاييس والفرق قبل ما تقبل أي تغيير.
نصائح متقدمة لسير العمل
- اختار الأعمدة المركزة: ضمّن غير الحقول اللي كتعطي دليل على المهمة، بلا ما تستعمل تلقائيا كل الحقول.
- كتب سؤال دقيق: حد فاصل واضح للقرار كيخلي التصنيف الثنائي أسهل فإعطاء التسميات بشكل منسجم.
- شرح التسميات الثابتة بعناية: فالمهام متعددة الأصناف ومتعددة التسميات، استعمل أوصاف الأصناف باش تميّز بين التسميات اللي تقدر تتداخل لولا ذلك.
- زد التبريرات ملي تكون مفيدة: التبريرات الاختيارية تقدر تعطي GEPA سياقا أكثر على علاش خاص المثال ياخذ تسمية معينة.
- استعمل عينة التدقيق: الأمثلة الغامضة مهمة، ولكن الأمثلة العشوائية كتعاون تتحقق من السلوك خارج المجموعة المركزة على عدم اليقين.
- راجع أكثر من النقطة: تفقد تغييرات اليقين والفرق المقترح فالتعريف قبل ما تقبل أي دورة.
- استأنف بلا ما تعاود تبدا: التشغيلات المحفوظة كتحافظ على التسميات المتراكمة وكتخلي مواصلة التحسين ممكنة.
- فرّق بين قرارات المزوّدين: اختار واجهة Jev الخلفية لاحتياجات التقييم والتشغيل، ومن بعد كوّن موديل التأمل بشكل مستقل لـ GEPA.
الخلاصة
jev-align كيوفر مسار فيه الإنسان داخل الحلقة لإنشاء وتحسين Jev AI Functions. بدا بمجموعة بيانات محلية، حط تسميات للأمثلة غير الواضحة، راجع التغييرات المقترحة فالتعريف من طرف GEPA، وحفظ النتيجة. بتفعيل التقاط بيانات الإنتاج واستئناف نفس التشغيل من بعد، تقدر تواصل تحسين الدالة بأمثلة حقيقية من التطبيق، مع بقاء التحكم عندك فكل نسخة كتقبلها.
