How ezechiel-sawadogo-nlp/merimee-rag works
merimee-rag is a local French-monuments question-answering RAG system, with an accompanying evaluation workflow. Users ask questions in the Streamlit demo; the configured retriever finds passages, the pipeline supplies cited context to an Ollama model, and the UI presents the answer, sources, and map. Corpus ingestion and indexing support that workflow. The evaluation branch builds a test set and measures retrieval and generated answers. Edges reflect the excerpts, SOURCE INDEX references, and README; unsampled implementation details are not inferred.
Main entry points: pipeline.py RAG pipeline · app.py Streamlit demo · eval_generation.py Generation evaluation · store.py Index and system
Components 19
Corpus and indexing
- CLI commands
src/merimee_rag/cli.py - Mérimée data
data/monuments.json.gz - Notice loading
src/merimee_rag/corpus.py - Index and system
src/merimee_rag/store.py
Question answering
- Streamlit demo
app.py - Configuration
src/merimee_rag/config.py - Retrievers
src/merimee_rag/retrievers.py - RAG pipeline
src/merimee_rag/pipeline.py - LLM cache
src/merimee_rag/llm.py
Evaluation
- Test-set builder
eval/build_testset.py - Evaluation questions
eval/testset.jsonl - Retrieval evaluation
eval/eval_retrieval.py - Generation evaluation
eval/eval_generation.py - Answer judge
eval/judge.py - Evaluation metrics
eval/metrics.py - Evaluation report
eval/report.py
Other components
- Questioner
- Solr index
- Ollama model
Connections 25
- Questioner → Streamlit demo: asks
README.md - Streamlit demo → RAG pipeline: submits question
app.py - Streamlit demo → Configuration: reads settings
app.py - CLI commands → Configuration: uses settings
src/merimee_rag/cli.py - CLI commands → Notice loading: loads corpus
src/merimee_rag/cli.py - CLI commands → Index and system: builds index
src/merimee_rag/cli.py - Mérimée data → Notice loading: loads notices
README.md - Notice loading → Index and system: provides notices
src/merimee_rag/store.py - Index and system → Retrievers: builds indexes
src/merimee_rag/store.py - Index and system → RAG pipeline: provides chunks
app.py - RAG pipeline → Retrievers: searches passages
src/merimee_rag/pipeline.py - RAG pipeline → Ollama model: generates answer
src/merimee_rag/pipeline.py - Streamlit demo → LLM cache: configures cache
app.py - Retrievers → Solr index: queries index
README.md - Test-set builder → Notice loading: loads notices
eval/build_testset.py - Test-set builder → Ollama model: generates questions
eval/build_testset.py - Test-set builder → Evaluation questions: writes questions
README.md - Evaluation questions → Retrieval evaluation: evaluates retrieval
eval/eval_retrieval.py - Evaluation questions → Generation evaluation: evaluates answers
eval/eval_generation.py - Retrieval evaluation → Retrievers: queries systems
eval/eval_retrieval.py - Generation evaluation → RAG pipeline: runs configurations
eval/eval_generation.py - Generation evaluation → Answer judge: scores answers
eval/eval_generation.py - Generation evaluation → Evaluation metrics: computes metrics
eval/eval_generation.py - Retrieval evaluation → Evaluation metrics: computes metrics
eval/eval_retrieval.py - Evaluation report → Configuration: reads paths
eval/report.py