Skip to content

Modern RAG is an advanced legal document analysis system using guardrails, query rewriting, HyDE, and reranking. Built with Python, Streamlit, Elasticsearch, and LangChain, it supports interactive querying, document management, conversation memory, and source attribution.

Notifications You must be signed in to change notification settings

cleophass/modern_rag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Guide d'installation et de configuration

📊 Présentation complète du projet
Cette présentation contient une explication de l'architecture et une démonstration du système.

Table des matières

  1. Prérequis
  2. Installation de l'environnement
  3. Configuration des services
  4. Configuration de l'application
  5. Lancement de l'application

Prérequis

Logiciels

  • Python : Version 3.10 ou supérieure
  • Docker : Version 20.x ou supérieure
  • Docker Compose : Version 2.x ou supérieure
  • uv

Clés API

  • OpenAI API Key

Installation de l'environnement

1. Cloner le repository

git clone https://github.com/cleophass/modern_rag.git
cd modern_rag

2. Créer l'environnement Python

Avec uv

uv sync

Vérifier l'installation des dépendances

# Avec uv
uv pip list

# Avec pip
pip list

Vous devriez voir les packages suivants :

  • streamlit >= 1.51.0
  • elasticsearch >= 9.2.0
  • langchain >= 1.0.5
  • langchain-openai >= 1.0.2
  • sentence-transformers >= 5.1.2
  • transformers >= 4.57.1
  • pandas >= 2.3.3
  • pydantic >= 2.12.4
  • pytest >= 9.0.1
  • dotenv >= 0.9.9

Configuration des services

Lancer Elasticsearch et Kibana avec Docker

docker-compose up -d

Vérifier que les services sont opérationnels

docker ps

# Vous devriez voir 2 conteneurs en cours d'exécution :
# - elasticsearch (port 9200)
# - kibana (port 5601)

Tester la connexion à Elasticsearch

# Test de connexion
curl http://localhost:9200

# Réponse attendue : JSON avec les informations du cluster

Accéder à Kibana (optionnel, pour monitoring)

Ouvrir dans un navigateur : http://localhost:5601


Configuration de l'application

1. Créer le fichier .env

À la racine du projet, créer un fichier .env :

touch .env

2. Ajouter la clé OpenAI

Éditer le fichier .env et ajouter :

OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3. Configurer LangSmith (optionnel)

Si vous souhaitez utiliser LangSmith pour le traçage, ajoutez également :

LANGSMITH_API_KEY=lsv2_pt_....
LANGCHAIN_TRACING_V2=true

Pour accéder a "traces" dans LangSmith, vous pouvez utiliser ce lien : https://smith.langchain.com/

3. Vérifier la configuration dans core/config.py

Le fichier core/config.py contient les paramètres des modèles :

EMBEDDINGS_MODEL_NAME = "paraphrase-multilingual-mpnet-base-v2"
REWRITER_MODEL_NAME = "gpt-4.1"
GUARDRAILS_MODEL_NAME = "gpt-4.1"
HYDE_MODEL_NAME = "gpt-4.1"
GENERATOR_MODEL_NAME = "gpt-4.1"
RERANKER_MODEL_NAME = "antoinelouis/crossencoder-camembert-base-mmarcoFR"

Ces paramètres peuvent être modifiés selon vos besoins.


Lancement de l'application

Méthode 1 : Avec le script run.sh (recommandé)

# Rendre le script exécutable
chmod +x run.sh

# Lancer l'application
./run.sh

Le script effectue automatiquement :

  1. Démarrage des conteneurs Docker (Elasticsearch + Kibana)
  2. Lancement de l'application Streamlit PS: Le premier lancement peut prendre quelques minutes. N'hésitez pas a rafraichir

3. Accéder à l'application

L'application sera disponible à l'adresse : http://localhost:8501

4. Ajouter des documents

Pour ajouter des documents, aller dans la page "Documents" de l'application Streamlit et utiliser l'interface d'upload. Les formats supportés sont : .txt, .csv, .html. Le dossier "data/raw/" contient déjà des fichier.

Dernière mise à jour : Novembre 2025

About

Modern RAG is an advanced legal document analysis system using guardrails, query rewriting, HyDE, and reranking. Built with Python, Streamlit, Elasticsearch, and LangChain, it supports interactive querying, document management, conversation memory, and source attribution.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published