ابنِ مراجع أكواد بالذكاء الاصطناعي محلياً باستخدام Ollama
نظام التكامل المستمر (CI) لديك يعطي إشارة خضراء، لكنه سطحي. قد يغفل أحد زملائك عن خطأ بسيط بسبب انشغاله. يمكنك بناء "عين ثانية" باستخدام نموذج لغوي كبير (LLM) محلي.
يمكنك إنشاء واجهة سطر أوامر (CLI) بلغة TypeScript تراجع الـ git diff للملفات الجاهزة (staged) قبل عملية الـ commit. هذا يحافظ على خصوصية الكود الخاص بك، ولا يتطلب مفاتيح API أو مزودي خدمات سحابية.
كيف تعمل الأداة:
• جلب الـ diff للملفات الجاهزة باستخدام git diff --cached.
• إرسال الـ diff إلى Ollama مع prompt محدد.
• طلب مخرجات بتنسيق JSON والتحقق من صحتها باستخدام Zod.
• طباعة النتائج في الـ terminal الخاص بك.
• ضبطها كـ pre-commit hook.
خيارات تقنية لنتائج أفضل:
• استخدم --no-color لإزالة أكواد ANSI من الـ prompt.
• استخدم -U3 لتزويد النموذج بثلاثة أسطر من السياق.
• اضبط الـ temperature على 0 للحصول على نتائج حتمية (deterministic).
• استخدم system prompt محدد لتجاهل تفضيلات التنسيق والتسمية.
ركز النموذج على الأخطاء المنطقية، والوصول إلى القيم الفارغة (null access)، والمشكلات الأمنية. أخبره بما يجب تجاهله؛ فإخبار النموذج الصغير بما لا يجب الإبلاغ عنه أكثر فعالية من إخباره بما يجب العثور عليه.
سير عمل عملي للنماذج المحلية:
• استخدم qwen2.5-coder:7b لـ git hook الخاص بك.
• استخدم qwen2.5-coder:1.5b للاختبار المحلي السريع.
• امنع الـ commits فقط في حالة وجود أخطاء عالية الخطورة.
• اجعل النتائج متوسطة ومنخفضة الخطورة مجرد تنبيهات استشارية.
النماذج المحلية ليست مهندسين خبراء (staff engineers). فهي قد تغفل عن المنطق المعقد الذي يمتد عبر ملفات متعددة، كما أنها قد تعطي نتائج إيجابية خاطئة (false positives). ومع ذلك، فهي تكتشف الأخطاء الصغيرة مثل نسيان awaits أو استخدام معاملات (operators) خاطئة.
استخدم هذه الأداة لاكتشاف الأخطاء الناتجة عن الإهمال قبل أن تصل إلى طلب السحب (pull request). فهي توفر الوقت لفريقك وتحافظ على نظافة الكود الخاص بك.
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi