Add file analysis and answer feedback

This commit is contained in:
Hamza Ayed
2026-10-01 15:13:07 +03:00
parent dc4d5bad0f
commit 3563a104a3
10 changed files with 586 additions and 89 deletions
+5 -2
View File
@@ -6,8 +6,9 @@
- الأساس المحلي يعمل: Flutter Windows Debug ↔ FastAPI ↔ Ollama/Gemma، مع سجل SQLite للمحادثات ونسخ الإجابات.
- اكتملت وظائف المحادثة الأساسية وطبقة مزوّد Ollama؛ المرحلة 1 ما زال ينقصها تحسين Markdown/الروابط/نسخ كتل الكود.
- الوكيل الآن نموذج أولي للقراءة فقط: آلة حاسبة وبحث نصي في ملفات مساحة عمل يحددها إعداد الخادم؛ ذكر مسار ملف برمجي يمرر مقتطفًا أكبر. لم يُنجز بعد اختيار الملف/مساحة العمل من نافذة الواجهة أو سجل تدقيق الأدوات.
- أضيف بحث ويب متعدد المصادر تجريبي مع جلب صفحات وتلخيص محلي وروابط مصادر. لا توجد بعد مصادقة متعددة المستخدمين أو نشر شبكي آمن؛ الصوت يعتمد على Groq خارجي، ولا توجد بعد واجهة رفع ومعالجة صور أو PDF.
- الوكيل الآن نموذج أولي للقراءة فقط: بحث نصي في مساحة العمل المحددة، وتحليل ملفات كود/نص يختارها المستخدم (حتى 3 ملفات، 256KB للملف و512KB للمجموع، دون تخزين أو تنفيذ).
- أضيف زر البحث العميق متعدد المصادر وزرا اختيار الملفات إلى الواجهة؛ أضيف تقييم الإجابة بإعجاب/عدم إعجاب محفوظ لكل نسخة في SQLite. التقييم يجمع بيانات تقييم، ولا يدرّب أوزان Gemma تلقائيًا.
- تحقق تشغيل Flutter Web على المنفذ 5302 واتصاله بـFastAPI/Gemma؛ نجح سؤال عربي، واختبار زر الإعجاب، ورفع ملف Python تجريبي عبر API. لا توجد بعد مصادقة متعددة المستخدمين أو نشر شبكي آمن؛ الصوت يعتمد على Groq خارجي، ومعالجة الصور وPDF لم تُنفذ بعد.
- التدريب والضبط الدقيق وتوزيع Windows مراحل لاحقة، وليست مما يفعّله التطبيق حاليًا.
## المرحلة 1 — تجربة المحادثة
@@ -23,12 +24,14 @@
- [x] وضع وكيل تجريبي للبحث وقراءة مقتطفات ملفات المشروع فقط، مع إرجاع مراجع الملفات.
- [x] حفظ محاولات الإجابة كنسخ منفصلة بدل استبدالها، مع واجهة للتنقل بينها. (2026-10-01: اجتازت اختبارات Flutter التنقل والحفظ، واختبارات SQLite/API الترحيل والحفظ والاسترجاع.)
- [x] إظهار حالة النموذج والوقت وسبب الخطأ، وتوفير إيقاف التوليد. (2026-10-01: اختبار زر الإيقاف في الواجهة، حفظ النص الجزئي، وحماية الإجابة القديمة أثناء إلغاء إعادة التوليد؛ `flutter analyze` بلا ملاحظات، وWindows Debug أُعيد تشغيله.)
- [x] إضافة تقييم 👍/👎 لكل نسخة إجابة وحفظه في SQLite؛ اختبار واجهة حي نجح بعد إصلاح خطأ فهرسة الرسائل في قاعدة البيانات. يستخدم لاحقًا لبناء مجموعة تقييم/تفضيلات بمراجعة بشرية، ولا يغير أوزان النموذج بمفرده.
- [ ] دعم إخراج Markdown كامل، وروابط قابلة للفتح، ونسخ الكتل البرمجية منفردة.
## المرحلة 2 — أساس موثوق للواجهة والـ API
- [x] فصل عقد التطبيق عن تفاصيل Ollama عبر طبقة مزوّد موحدة (Model Provider)، مع بقاء Ollama أول تنفيذ للمزوّد. (2026-10-01: المحادثة والبث والوكيل وقراءة مساحة العمل والويب تستخدم العقد الموحدة؛ `MODEL_PROVIDER=ollama` هو التنفيذ المتاح حاليًا. بعد إعادة تشغيل FastAPI أكد `/health` المزوّد، وأعاد `/v1/models` ثلاثة نماذج، ونجح طلب محادثة حي عبر Gemma.)
- [x] جلب قائمة النماذج المحلية والتحقق من اختيار النموذج قبل الإرسال؛ [ ] إضافة بيانات قدرات كل نموذج.
- [x] مسار تحليل ملفات مرفقة نصية/برمجية عبر FastAPI، مع تحقق النوع والحجم وحد أقصى 3 ملفات؛ اختبار ملف Python تجريبي أعاد تحليلًا عربيًا من Gemma 4 E2B. لا حفظ على القرص ولا تشغيل للكود.
- توحيد أخطاء API ومعرّفات الطلبات والمهل الزمنية، وإضافة اختبارات تكامل لعقد API.
- إبقاء الخدمة محلية افتراضيًا؛ لا تُعرض على الشبكة قبل مصادقة المستخدم ومراجعة إعدادات الأمان.
- نقل إعدادات المستخدم من حقول مؤقتة إلى إعدادات محفوظة، وإظهار حالة الخادم والنموذج بوضوح.