Skip to content

Agent conversationnel multi-compétences orchestré par LangGraph. Intègre RAG pour les documents financiers, Recherche Web (Tavily), Calcul et Gestion de Calendrier, exposé via Chainlit et déployé sur google cloud

Notifications You must be signed in to change notification settings

BINTOUDIOP/Projet_GenAI

Repository files navigation

Assistant intelligent multi-compétences (RAG + Agents)

Ce projet implémente un assistant conversationnel basé sur l'IA, capable d'orchestrer plusieurs compétences : la recherche d'informations dans des documents internes (RAG - Retrieval-Augmented Generation) et l'utilisation d'outils externes (Agents - Calcul, Météo, Web).

L'architecture utilise LangChain et l'Agent Executor basé sur les fonctions OpenAI pour le raisonnement et la sélection d'outils, le tout exposé via une interface Chainlit.


Architecture du projet

L'architecture est construite autour de l'outil LangGraph, qui gère l'état et le flux de travail de l'Agent. Nous utilisons une structure modulaire avec le principe de la séparation des préoccupations.

Fichier Rôle Technologie Clé
finance_rag.py Capacité RAG ChromaDB, LCEL, @tool
agent_tools.py Bibliothèque d'Outils Externes @tool, TavilySearch, Requests
orchestrator.py Cœur de l'Agent & Routage LangGraph, Tool Calling (GPT-4o-mini), InMemorySaver
app_chainlit.py Interface Utilisateur (UX) Chainlit, Isolation de Session (Mémoire unique par utilisateur)

Installation et lancement

1. Pré-requis

  • Python : Version 3.11
  • Clés API : Une clé OpenAI API Key est obligatoire. Une clé Tavily API Key est nécessaire pour la recherche web.
  • Clés Google Cloud pour le déploiement :
    -GCP_PROJECT_ID : ID de ton projet Google Cloud
    -GCP_REGION : Région de déploiement Cloud Run
    -GCP_SA_KEY : Fichier JSON de ta Service Account Key

2. Configuration de l'environnement

Créez un fichier .env à la racine du projet pour stocker toutes les configurations sensibles.

# .env
OPENAI_API_KEY="votre_clé_openai_ici"
TAVILY_API_KEY="votre_clé_tavily_ici"
# Optionnel : pour l'outil météo
OPENWEATHER_API_KEY="votre_clé_meteo_ici" 

# Configurations par défaut (modifiables)
LLM_MODEL=gpt-4o-mini
CHROMA_DB_DIR=./chroma_db_agent
DOCUMENT_PATH=./data/finance_document.pdf

3. Installation des dépendances

Créez un fichier requirements.txt listant toutes les bibliothèques nécessaires, puis exécutez l'installation.

pip install -r requirements.txt

4. Ingestion des documents (RAG)

Le processus d'ingestion est géré automatiquement au premier lancement (ou lors de l'importation de finance_rag.py). Assurez-vous que le document PDF de référence (finance_document.pdf) est placé dans le dossier ./data.

5. Lancement de l'application

Lancez l'interface web via Chainlit : l'application sera accessible via l'URL affichée dans le terminal (généralement http://localhost:8000).

chainlit run app_chainlit.py -w

5. Déploiement sur le cloud

Le projet a été déployé temporairement sur Google Cloud Run via GitHub Actions :

Instructions de test

L'Agent Orchestrateur est capable de choisir l'outil approprié. Testez les différents modes :

Scénario Exemple de Requête Outil (via Agent)
RAG Quelle est la politique de congés selon le manuel ? finance_document.pdf
Calcul Calcule 15% de 2500. calculator
Web Search Qui a remporté la dernière élection présidentielle aux USA ? web_search
Météo Donne la météo pour Londres, UK. weather
Mémoire Mon nom est Alex. (Puis) Quel est mon nom ? Aucun outil (LLM + Mémoire)

N'hésitez pas à nous contacter pour toute question sur l'architecture ou les choix techniques( Bintou DIOP et Ismael Coulibaly).

Félicitations pour la complétion de votre Assistant Intelligent !

About

Agent conversationnel multi-compétences orchestré par LangGraph. Intègre RAG pour les documents financiers, Recherche Web (Tavily), Calcul et Gestion de Calendrier, exposé via Chainlit et déployé sur google cloud

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •