AF-Advisory est une application intelligente qui permet aux utilisateurs d'analyser leurs données (CSV, Excel) en posant simplement des questions en langage naturel. Fini le SQL complexe : l'IA génère, corrige et exécute les requêtes pour vous, et vous explique même les résultats !
🎥 Voir la vidéo de présentation
- 🗣️ Langage Naturel vers SQL (NL2SQL) : Posez vos questions en français ou en anglais ("Quelle est la moyenne des ventes ?", "Top 5 products by revenue").
- 🧠 Synthèse Intelligente : Non seulement vous obtenez les données, mais l'IA génère une explication textuelle claire des résultats.
- 📊 Visualisation Automatique : Si les données s'y prêtent (ex: catégories + valeurs), un graphique est généré automatiquement.
- ⚡ Performance Optimisée : Conversion ultra-rapide des fichiers CSV/Excel vers SQLite pour manipuler de gros volumes de données.
- 🎨 Interface Premium : Une UI moderne (React + Tailwind) avec mode "Thought Process" pour voir comment l'IA réfléchit (SQL généré).
- FastAPI : API haute performance.
- LangChain : Orchestration du flux LLM (Question -> SQL -> Résultat -> Explication).
- Pandas & SQLite : Traitement et stockage efficace des données.
- Pydantic : Validation robuste des données.
- Vite : Build tool ultra-rapide.
- Tailwind CSS : Styling moderne et responsive.
- Recharts : Bibliothèque de graphiques.
- Lucide React : Icônes élégantes.
- Sonner : Notifications Toast.
- Python 3.9+
- Node.js 18+
- Une clé API OpenAI (ou autre fournisseur compatible).
cd backend
# Créer un environnement virtuel
python -m venv .venv
# Activer l'environnement
# Windows :
.venv\Scripts\activate
# Mac/Linux :
source .venv/bin/activate
# Installer les dépendances
pip install -r requirements.txt
# Configurer la clé API
# Créez un fichier .env dans backend/ et ajoutez :
# OPENAI_API_KEY=votre_cle_apiPour lancer le serveur :
uvicorn main:app --reloadL'API sera accessible sur http://localhost:8000.
cd frontend
npm installPour lancer l'interface :
npm run devL'application sera accessible sur http://localhost:5173.
af-advisory/
├── backend/
│ ├── config/ # Configuration LLM (prompts, providers)
│ ├── databases/ # Bases SQLite générées (ignorées par git)
│ ├── src/
│ │ ├── api/ # Routes FastAPI (upload, query, data)
│ │ ├── text_to_sql/ # Moteur NL2SQL (LangChain logic)
│ │ └── utils/ # Convertisseurs et validateurs
│ └── main.py # Point d'entrée
│
└── frontend/
├── src/
│ ├── components/ # Composants React (Chat, Sidebar, Charts...)
│ └── App.jsx # Logique principale
└── index.html
Le système inclut un validateur SQL qui bloque strictement les opérations dangereuses (DROP, DELETE, INSERT, etc.) pour garantir que vos données restent en lecture seule.