# Agentic RAG Tourisme Maroc
Projet de fin de module: assistant intelligent de tourisme au Maroc basé sur **LangGraph** et une approche **Agentic RAG**.
## Présentation
Ce projet permet de poser des questions sur le tourisme au Maroc et d'obtenir des réponses générées à partir d'une base documentaire locale. Le système combine:
- recherche documentaire vectorielle
- raisonnement agentique avec LangGraph
- mémoire conversationnelle
- outils dédiés au domaine touristique
L'objectif est de proposer un assistant plus fiable qu'un simple chatbot, capable de récupérer des documents pertinents, d'utiliser des outils et de valider ses réponses.
## Architecture Agentic RAG
Le pipeline suit cette logique:
```mermaid
flowchart TD
A[Documents touristiques] --> B[Preprocessing + chunking]
B --> C[Embeddings]
C --> D[Chroma Vector Store]
D --> E[Retrieval]
E --> F[LangGraph]
F --> G[Réponse finale]
```
### Nodes LangGraph
- `analyze_question`: analyse l'intention, la destination et la complexité
- `retrieve_documents`: interroge la base vectorielle
- `execute_tools`: appelle les outils utiles
- `generate_response`: génère la réponse finale
- `validate_response`: vérifie la qualité de la réponse et relance si nécessaire
## Technologies utilisées
- Python
- LangGraph
- LangChain
- ChromaDB
- Streamlit
- Groq, OpenAI ou Ollama
- PyPDFLoader / TextLoader
- RecursiveCharacterTextSplitter
## Structure des fichiers
```text
.
├── app.py
├── evaluation.py
├── graph.py
├── state.py
├── tools.py
├── vectorstore.py
├── requirements.txt
├── README.md
├── documents/
├── evaluation_questions.md
├── evaluation_template.md
├── report_template.md
├── video_script.md
└── .env.example
```
## Installation
```cmd
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
## Configuration `.env`
Créer un fichier `.env` à la racine:
```env
# Groq
GROQ_API_KEY=your_key_here
GROQ_CHAT_MODEL=llama-3.3-70b-versatile
# OpenAI embeddings
OPENAI_API_KEY=your_key_here
OPE …