Skip to content

Repository files navigation

💰 FinAIry

FinAIry est un assistant de vulgarisation de l'investissement basé sur une architecture RAG (Retrieval Augmented Generation). Le projet a été réalisé dans le cadre de l'UV AI31 - Indexation et Recherche d'Information à l'UTC.

Installation

1. Installer UV

pip install uv

2. Installer les dépendances

uv sync

3. Configurer les variables d'environnement

Copier le fichier .env.example en .env puis renseigner les variables nécessaires :

  • GOOGLE_API_KEY : clé Google AI Studio
  • LANGSMITH_API_KEY (optionnel) : nécessaire pour l'évaluation

Ingestion des données

Pour indexer les documents dans la base de données vectorielle :

uv run rag/chunker.py

Lancer l'application

uv run chainlit run app/app.py

L'application est également disponible en ligne :

https://finairy-latest.onrender.com

Note : l'hébergement utilise l'offre gratuite de Render. Le démarrage du serveur peut donc prendre plusieurs minutes lorsqu'il est inactif.

Évaluation

Pour lancer l'évaluation du RAG :

uv run evaluation/evaluate.py

Structure du projet

.
├── app/                        # Application Chainlit
│   ├── app.py                  
│   ├── db.py                   
│   ├── pipeline.py             # Pipeline RAG
│   ├── prompts.py              # Prompts
│   └── utils.py                
├── chroma_db/                  # Base Vectorielle ChromDB
├── data/                       # Documents ingérés dans la DB
│   ├── data/                   
│   │   ├── amf/                # Articles de l'AMF
│   │   └── articles/           # Articles de Finary
│   └── format_md_amf.py        # Préparation des données AMF
├── Evaluation/                 # Scripts et données d'évaluation
│   ├── Dataset.json            # Dataset d'évaluation
│   └── evaluate.py             
├── public/                     # Éléments frontend pour Chainlit
│   └── elements/               # Elements Customs en React pour Chainlit
├── rag/                        
│   ├── chunker.py              # Découpage des textes
│   └── vectorstore.py          # Ingestion dans Chroma DB
├── scrapper/                   # Scripts de scrapping des data AMF & Finary
│   ├── scrapping_amf.py        
│   └── scrapping_articles_finary.py
├── Dockerfile                  # Conteneurisation du projet (pour le deployment)
├── pyproject.toml              # Gestion des dépendances pour UV              

Le projet :

Bienvenue sur FinAIry, le premier vulgarisateur de connaissances sur l'investissement 🤝📊

Nos données proviennent de sources fiables et officielles telles que :

  • 🏛️ l’AMF (Autorité des marchés financiers)
  • 🌐 le site Finary

Notre objectif est simple : rendre les connaissances sur l'investissement accessible à tous, même aux concepts les plus complexes 📚✨

Vous pouvez poser toutes vos questions sur :

  • 💸 l’épargne
  • 📈 l’investissement
  • 🏦 la gestion financière
  • 🧠 les notions économiques

Attention : Les réponses données par notre solution ne sont pas des conseils en investissement. L'IA est un outil pédagogique et non un conseiller financier agréé.

⚙️ Modes disponibles

FinAIry propose deux modes d’utilisation :

🟢 Mode normal

Un mode simple et rapide pour obtenir des réponses claires, pédagogiques et faciles à comprendre.

🔵 Mode MultiQuerying (Pro)

Un mode avancé qui effectue plusieurs requêtes internes afin de fournir des réponses plus complètes, précises et approfondies 🔍📊

Idéal pour les utilisateurs qui veulent une analyse plus poussée et une vision experte.

🔴 Mode Filtering

Un mode qui permet de filtrer les sources utilisées dans la réponse.

🟡 Mode Méga

Un mode qui génère plusieurs réponses candidates et les évalue pour sélectionner la meilleure réponse possible.

Par ailleurs, un safety mode est aussi disponible qui permet de vérifier que le prompt ne chereche pas à manipuler le LLM.


🚀 N’hésiter pas à poser votre première question !

Équipe

Projet réalisé dans le cadre de l'UV AI31 à l'Université de Technologie de Compiègne (UTC) par César Dénoue, Mathis Lézéan, Pierre-Étienne Dumont-Buisine, Téo Bourgois

About

RAG Assistant on financial data, with multiple enhancements to vanilla RAGs, with evaluations and guardrails

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages