Assistant culinaire libanais de L'Orient-Le Jour — un RAG sur les recettes de chefs publiées dans « Liban à Table ».
FastAPI + Postgres/pgvector + tsvector + Redis (cache + queue arq),
Docker, Alembic. Pipeline RAG hybride (dense + lexical → RRF → rerank Cohere →
rerank article → génération groundée phrase-par-phrase).
v4/
├── backend/app/ # API + RAG + LLM + ingestion + db
├── web_static/ # frontend (widget, demo, admin, dashboard)
├── scripts/ # ingest_cli, run_rag_eval, audits
├── data/ # golden_eval_fr.json (marqueurs), olj_seed_ids.json
├── docs/ # runbooks, go-live, audit RAG/Epicure
└── Dockerfile.web # image déployée par railway.toml
cd v4
pip install -e .[dev]
cp .env.example .env # OPENAI_API_KEY, DATABASE_URL, REDIS_URL, COHERE_API_KEY...
docker compose -f infra/docker-compose.yml up -d # Postgres + Redis
cd infra/alembic && alembic upgrade head
python -m scripts.ingest_cli reindex-all --publication 17 --content-type 4 --seed-file data/olj_seed_ids.json
python -m uvicorn backend.main:app --reloadcd v4 && set PYTHONPATH=.
pytest -q # 60 tests unitaires
python scripts/run_rag_eval.py --golden data/golden_eval_fr.json # golden set (DB peuplée)Voir Specifications.md pour le périmètre, l'arbitrage
modèle et la définition de « FINI ».
Railway : service web (v4/Dockerfile.web) + Postgres (pgvector) +
Redis. Health check GET /healthz. Détails : v4/docs/railway-runbook.md.
Usage interne L'Orient-Le Jour.