Un assistant conversationnel intelligent, 100% local et privé. Ce projet est un clone des interfaces type ChatGPT/Gemini, doté d'une mémoire à court terme (contexte de la discussion), d'une mémoire sémantique à long terme (RAG) et d'un historique persistant.
- 🔒 100% Local & Privé : Aucune donnée n'est envoyée sur le cloud. L'IA tourne directement sur votre machine grâce à Ollama.
- 🧠 Mémoire Sémantique (RAG) : L'IA mémorise les faits importants des conversations passées à l'aide d'une base de données vectorielle (ChromaDB).
- 🗄️ Historique Persistant : Les discussions sont sauvegardées dans une base de données SQLite. Vous pouvez fermer l'application et reprendre vos conversations plus tard.
- 🏷️ Auto-Génération de Titres : À l'instar de ChatGPT, l'IA génère automatiquement un titre concis pour chaque nouvelle discussion.
- 🎨 Interface Moderne : Une interface utilisateur fluide et réactive construite avec Streamlit.
- Interface Utilisateur : Streamlit
- Orchestration IA : LangChain
- Moteur LLM Local : Ollama (Modèles recommandés :
llama3.2oumistral) - Modèle d'Embedding :
nomic-embed-text - Base de données Vectorielle : ChromaDB
- Base de données Relationnelle : SQLite (native en Python)
- Ollama installé sur votre machine (Voir le site officiel).
- Python 3.12 (Recommandé pour éviter les conflits de dépendances avec ChromaDB/Pydantic).
Avant de lancer le projet, téléchargez les modèles nécessaires via le terminal :
# Le modèle de discussion (remplacez par llama3 si vous préférez)
ollama pull llama3.2
# Le modèle mathématique pour la mémoire (Embeddings)
ollama pull nomic-embed-text
Ouvrez un terminal et exécutez les commandes suivantes :
# Cloner le dépôt
git clone https://github.com/Flowz5/ChatBot.git
cd MonAssistantIA
# Créer un environnement virtuel avec Python 3.12
python3.12 -m venv .venv
# Activer l'environnement
# Sous Linux/macOS :
source .venv/bin/activate
# Sous Windows :
# .venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
(Si le fichier requirements.txt n'existe pas, exécutez : pip install streamlit langchain langchain-community langchain-ollama chromadb)
Assurez-vous que l'environnement virtuel est activé, puis lancez l'application Streamlit :
streamlit run app.py
Une fenêtre s'ouvrira automatiquement dans votre navigateur par défaut à l'adresse http://localhost:8501.
MonAssistantIA/
├── app.py # Interface graphique (Streamlit) et logique de l'UI
├── llm_engine.py # Connexion avec Ollama et orchestration LangChain
├── memory.py # Gestion des BDD (ChromaDB pour les vecteurs, SQLite pour l'historique)
├── data/ # Dossier auto-généré contenant les bases de données (Ignoré par Git)
│ ├── chroma_db/ # Fichiers de la base vectorielle
│ └── historique.db # Fichier de la base relationnelle (ouvrable avec DBeaver)
├── .gitignore # Fichiers ignorés par Git
└── requirements.txt # Liste des dépendances Python
- Ajouter la possibilité de supprimer ou renommer manuellement une discussion.
- Intégrer la lecture de documents (PDF/TXT) dans le chat pour poser des questions dessus.
- Ajouter un sélecteur de modèle dans la barre latérale pour basculer entre Llama, Mistral, etc.