Add file analysis and answer feedback
This commit is contained in:
@@ -65,6 +65,12 @@ python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
|
||||
- `POST /v1/chat/completions` يمرر الطلب إلى الخادم المحلي عند ضبط المتغيرين أعلاه.
|
||||
- يمكن التبديل في Swagger بين النموذجين بإضافة `model` إلى جسم الطلب، مثل `gemma4:e2b`.
|
||||
|
||||
### تحليل الملفات وتقييم الإجابة
|
||||
|
||||
- `POST /v1/agent/files/analyze` يستقبل `multipart/form-data`: حقل `files` (ملف إلى 3 ملفات من النص/الكود)، وحقل `question` اختياري. الحد 256KB لكل ملف و512KB للمجموع. المحتوى يُقرأ في الذاكرة ولا يُحفظ أو يُنفذ.
|
||||
- `PUT /v1/conversations/{conversation_id}/messages/{message_index}/feedback` يحفظ تقييم إجابة محفوظة. الجسم مثل `{"version_index":0,"rating":1}` للإعجاب أو `rating:-1` لعدم الإعجاب. من الأفضل استخدام زري 👍/👎 في التطبيق لأنهما يحددان المحادثة والنسخة الصحيحين تلقائيًا.
|
||||
- هذه التقييمات بيانات قياس وتفضيل أولية؛ لا تغيّر أوزان Gemma ولا تعيد تدريبها تلقائيًا.
|
||||
|
||||
### قراءة رابط ويب محدد
|
||||
|
||||
يوفر الـAPI المسار `POST /v1/web/read` لقراءة صفحة عامة يرسل المستخدم رابطها، واستخراج نصها، ثم سؤال Gemma المحلية عنها. افتح `/docs`، اختر المسار، وأرسل مثلًا:
|
||||
@@ -80,7 +86,7 @@ python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
|
||||
|
||||
### البحث العميق على الإنترنت
|
||||
|
||||
يوفر `POST /v1/web/search` بحثًا أوليًا متعدد المصادر بلا مفتاح API باستخدام نتائج DuckDuckGo العامة. يجلب حتى 8 نتائج من نطاقات مختلفة، يحاول قراءة صفحاتها العامة، ثم يطلب من النموذج المحلي تلخيص المعلومات مع إحالات مرقمة وروابط المصادر. من واجهة Mithqal AI فعّل زر الكرة الأرضية ثم اكتب موضوع البحث. بعض المواقع تمنع القراءة الآلية أو تعتمد على JavaScript؛ عندها يظهر المصدر بوصفه مقتطف بحث فقط. المسار يرفض العناوين المحلية ويحد أحجام الصفحات ومصادرها.
|
||||
يوفر `POST /v1/web/search` بحثًا أوليًا متعدد المصادر بلا مفتاح API باستخدام نتائج DuckDuckGo العامة. يجلب حتى 8 نتائج من نطاقات مختلفة، يحاول قراءة صفحاتها العامة، ثم يطلب من النموذج المحلي تلخيص المعلومات مع إحالات مرقمة وروابط المصادر. من واجهة Mithqal AI فعّل زر البحث/الكرة الأرضية في الشريط العلوي ثم اكتب موضوع البحث. بعض المواقع تمنع القراءة الآلية أو تعتمد على JavaScript؛ عندها يظهر المصدر بوصفه مقتطف بحث فقط. المسار يرفض العناوين المحلية ويحد أحجام الصفحات ومصادرها.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -106,8 +112,10 @@ python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
|
||||
- لتشغيل النسخة المكتبية، شغّل `start-api.ps1` أولًا، ثم افتح `flutter_app/build/windows/x64/runner/Release/flutter_app.exe` بعد بنائه.
|
||||
- يعرض شريط المحادثة قائمة النماذج المثبتة من Ollama؛ اختيار النموذج يمرر اسمه مع الطلب.
|
||||
- زر المجلد يفعّل وضع الوكيل للقراءة فقط، وزر الكرة الأرضية يفعّل البحث العميق متعدد المصادر. عند تشغيل `start-api.ps1` تكون مساحة العمل الافتراضية مجلد المشروع `SovereignAI-Starter`؛ لتغييرها عرّف `SOVEREIGNAI_WORKSPACE` قبل تشغيل الخدمة.
|
||||
- الوكيل يطابق السؤال مع ملفات النص/الكود المدعومة، ويمرر مقتطفات محدودة للنموذج؛ عند ذكر مسار نسبي مثل `app/main.py` يزيد المقتطف إلى 12,000 حرف كحد أقصى. يعيد أسماء الملفات التي قرأها. الملفات المخفية، مجلدات `.git` وبيئات البناء، والملفات الكبيرة أو خارج جذر مساحة العمل مستثناة. اختيار ملف عبر نافذة النظام لم يُضف بعد.
|
||||
- Gemma 4 E2B لديها قدرة نموذجية على إدخال الصور والصوت وفهم المستندات وفق [بطاقة Google الرسمية](https://ai.google.dev/gemma/docs/core/model_card_4)، لكن هذه الواجهة الحالية لا ترفع صورًا/PDF ولا تمرر مدخلات الصور بعد؛ نحتاج إضافة ذلك في التطبيق والخادم. قراءة ملفات الكود النصية تعمل ضمن مساحة العمل.
|
||||
- الوكيل يطابق السؤال مع ملفات النص/الكود المدعومة، ويمرر مقتطفات محدودة للنموذج؛ عند ذكر مسار نسبي مثل `app/main.py` يزيد المقتطف إلى 12,000 حرف كحد أقصى. يعيد أسماء الملفات التي قرأها. الملفات المخفية، مجلدات `.git` وبيئات البناء، والملفات الكبيرة أو خارج جذر مساحة العمل مستثناة.
|
||||
- زر مشبك الورق يفتح اختيار ملفات الكود/النص (حتى 3 ملفات، 256KB لكل ملف و512KB إجمالًا). يدعم API قائمة أنواع نصية وبرمجية فقط؛ يقرأ المحتوى في الذاكرة، ولا يخزنه أو ينفذه. PDF والصور غير مدعومة في هذا المسار حتى الآن.
|
||||
- تظهر 👍/👎 تحت إجابات المساعد. يحفظ التقييم مع رقم نسخة الإجابة في SQLite حتى نتمكن من قياس الجودة وتجهيز أمثلة تقييم أو تفضيلات بمراجعة بشرية؛ الضغط لا يدرّب النموذج ولا يغيّر أوزانه تلقائيًا.
|
||||
- Gemma 4 E2B لديها قدرة نموذجية على إدخال الصور والصوت وفهم المستندات وفق [بطاقة Google الرسمية](https://ai.google.dev/gemma/docs/core/model_card_4)، لكن هذه الواجهة الحالية لا تمرر مدخلات الصور ولا تقرأ PDF بعد؛ نحتاج بناء مسار منفصل لذلك. قراءة ملفات الكود النصية تعمل عبر زر المرفقات أو وضع مساحة العمل.
|
||||
- لإنشاء نسخة Release، نفّذ `flutter build windows --release` من داخل `flutter_app`.
|
||||
- التطبيق المكتبي واجهة أمامية؛ يحتاج Ollama وFastAPI شغّالين على الجهاز. النموذج لا يُضمّن داخل ملف التطبيق التنفيذي، ويظل نسخ الصوت للنص عبر Groq Whisper عند استخدام الميكروفون.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user