File size: 2,910 Bytes
af3342d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# تعليمات تشغيل المشروع (لأي AI)

مشروع HTR للمخطوطات العربية: FastAPI backend + PWA frontend، تعرّف بـ Kraken.

## بيئة التشغيل (مهم — أخطأ فيها سابقاً)
- **الخادم:** المنفذ **8001** عبر `backend/run.py` (uvicorn reload=True).
- **يجب** استخدام بايثون البيئة الافتراضية: `backend/.venv/Scripts/python.exe` (**Python 3.10**، فيها kraken+slowapi+torch).
  بايثون النظام (`C:\Python314`) **ينقصه kraken+slowapi** → البدء يتعطّل بـ `ModuleNotFoundError: slowapi`.
- إن فُقد `backend/.venv/pyvenv.cfg` تصير البيئة «مكسورة» (تتراجع لبايثون النظام). أعد كتابته:
  ```

  home = C:\Users\aiden\AppData\Local\Python\pythoncore-3.10-64

  include-system-site-packages = false

  version = 3.10.11

  ```
- التشغيل: من `backend/` شغّل `.venv\Scripts\python.exe run.py`. الفحص: `GET http://127.0.0.1:8001/api/health`.

## مفاتيح وLLM
- `backend/.env` (**مُستثنى من git — لا تَرفعه أبداً**) فيه `OPENAI_API_KEY` + `LLM_MODEL_EASY=gpt-5.4-mini` + `LLM_MODEL_HARD=gpt-5.5`.
- الخدمة `app/services/llm_service.py` = OpenAI Chat Completions. طبقتان: سهل (شرح/مصطلحات/كلمة) وصعب `hard=True` (تصحيح سطر سياقي = gpt-5.5).
- خصوصية GPT‑5: `max_completion_tokens` + `reasoning_effort`، **بلا temperature**.
- ميزات LLM تحتاج مفتاحاً صالحاً برصيد؛ عند الفشل تظهر 401/402/429.

## Docker (للتجارب الثقيلة: تدريب/تقييم Kraken)
- الحاوية: `escriptorium-celery-gpu-1` (فيها kraken+torch+GPU). تشغيلها إن توقفت عبر Docker Desktop.
- `/tmp` داخلها يبقى عبر إعادة تشغيل Docker. انسخ الملفات بـ `docker cp`.
- جهاز ketos: `-d cuda:0` على مجموعة `ketos` الأمّ لا `ketos train`.

## الفروع
- `feature/phoenix-ai-demo` = **النسخة المستقرة (العرض)** — لا تكسرها.
- `research/lm-experiments` = التجارب البحثية (LM/reranking) معزولة.

## الإعدادات
- كل ما يغيّر مخرجات OCR في `app/core/config.py` (النماذج، LM، المعالجة). المسار الآمن: رمادي L، بلا nlbin/enhance/resize/deskew.
- النماذج في مجلد `نماذج/` (أخت المشروع).

## ملاحظات Windows + مسار عربي
- استخدم `PYTHONIOENCODING=utf-8`. لأوامر python المعقّدة: اكتب ملف `.py` بدل inline (الـ inline يفشل أحياناً مع cwd العربي).
- نتائج CER/WER على **ثلاث مجموعات منفصلة** (GT يدوي / auto / سهل) — لا تخلطها في جدول واحد.