الرئيسية
AidMate هو تطبيق هدفه المساعدة في توفير الإسعافات الأولية عبر شات بوت لدعم المستخدمين عند عدم توفر طبيب.
⚠️ تنبيه: هذا مجرد مساعد أولي ويجب مراجعة الطبيب في حالة شدة الأعراض أو وجود خطأ في المعلومات.
التطبيق مفتوح المصدر، وهو تحديث لتطبيقي السابق (link).
ℹ️ ملاحظة: النسخة الأساسية قد لا تعطي استجابة عندما يكون السيرفر في وضع السكون.
الدليل
هذا الدليل مخصص لشرح النظام. الكود مفتوح المصدر. Source Code
بنية التطبيق
التطبيق يعمل وفق microservices، ويتكون من 3 تطبيقات:
- Android: موجود في ملف aidmate.
- Backend (تسجيل الدخول): AidMateAccount
- Backend (النموذج اللغوي): AidMateLLM
اختيار النموذج اللغوي
الهدف استخدام نموذج لغوي عربي كبير. يمكن الاطلاع على جميع النماذج التي تم تجربتها في ملف بايثون.
- LLama: نتائج جيدة لكن غير مناسبة لسيرفر ضعيف.
- GPT2 (aubmindlab/aragpt2-base + LoRA): النواتج غير مناسبة.
- GPT OSS20b, 120b, Gemini Flask: أفضل النواتج وهي التي تم اعتمادها.
RAG Data
تم جمع البيانات من:
- Mayo Clinic
- كتاب الإسعافات الأولية - Nigel Barraclough
- ترجمة: أبو إبراهيم وأبو عبدالله
- MSD Manual
جزء الأوفلاين
تم بناء modules in Flutter لتوفير chatbot بسيط يعمل باستخدام distance-based retrieval.
Future Work
- تحسين النواتج (لتجنب تكرار الإجابات).
- إضافة باقات معالجة اللغة العربية.
- مراعاة حجم التطبيق.
عن التطبيق
- استخدام Flutter.
- عرض النصوص عبر flutter_markdown.
- Code Modularity:
- Background: gradients
- UI: screens
- Logic: state files (Provider), OfflineBot
OfflineBot: يقوم بمعالجة النصوص بالعربية ثم يحولها إلى tf-idf ويقارنها بأسئلة محفوظة باستخدام cosine metric لاستخراج أفضل إجابة. الأرقام محسوبة مسبقًا عبر بايثون ومخزنة في assets.
3rd Party
- flutter_markdown
- huggingface
- llama
- GPT
- Gemini
- aubmindlab/aragpt2-base