# 🏺 مساعد ذكي للآثار المصرية (Egyptian Artifacts RAG Assistant)
نظام RAG (Retrieval-Augmented Generation) بيرد على أسئلة عن القطع الأثرية
المصرية، معتمد على بيانات حقيقية من **Wikidata** كأساس للإجابة، مع إثراء
الرد بمعرفة الموديل التاريخية.
## المميزات
- 🔎 **بحث دلالي (Semantic Search)** على قطع أثرية من متحفين: المتحف المصري
بالتحرير والمتحف المصري الكبير (GEM).
- ⚡ **رد يتولد Live (Streaming)** بدل ما تستنى الإجابة كاملة.
- 📚 **كل إجابة معاها مصدرها** من Wikidata (رابط مباشر للعنصر).
- 🕹️ **روابط جولات افتراضية 3D** (من إنتاج وزارة السياحة والآثار، بالتعاون
مع Egypt Exploration Society - EES) للمواقع المتاحة.
- ⭐ **تقييم مستخدم (👍/👎)** على كل رد، بيتسجل في `data/ratings.csv`.
## هيكل المشروع (Pipeline)
```
documents -> preprocessing -> chunking -> vector representation -> vector store -> context retrieval -> prompting -> Streamlit UI
```
| الملف | الوظيفة |
|---|---|
| `01_documents.py` | جلب بيانات القطع الأثرية من Wikidata (SPARQL) |
| `02_preprocessing.py` | تنظيف النصوص وتوحيد شكل كل document |
| `03_chunking.py` | تقسيم النصوص لقطع (chunks) مع overlap |
| `04_vector_representation.py` | توليد embeddings (نموذج multilingual محلي) |
| `05_create_chroma_store.py` | بناء الـ vector store باستخدام ChromaDB |
| `06_retrieve_context.py` | دالة الاسترجاع الدلالي (semantic retrieval) |
| `07_prompting.py` | بناء الـ prompt + استدعاء OpenRouter مع streaming |
| `streamlit_app.py` | واجهة المستخدم النهائية |
## التشغيل محليًا
```bash
# 1) بيئة افتراضية (اختياري لكن مستحسن)
python -m venv .venv
source .venv/bin/activate # على ويندوز: .venv\Scripts\activate
# 2) تثبيت المكتبات
pip install -r requirements.txt
# 3) ضبط مفتاح OpenRouter محليًا (بدون رفعه لأي مكان)
cp .env.example .env
# افتح .env وحط مفتاحك الحقيقي في OPENROUTER_API_KEY
# 4) تشغيل الـ pipeline بالترتيب (مرة واحدة، أو كل ما تحدّث البيانات)
python 01_documents.py
python 02_preprocessing.py
python 03_chunking.py
python 04_vector_representation.py
python 05_create_chroma_store.py
# 5) تجربة الاستر …