Logo Lanfrica

M0iem/agentic-rag-tourism-morocco

Domain:

natural language processing

Record type:

project
Creator:
M0i
Host:
# 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 …