Skip to content

Flowz5/ChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Mon Assistant IA Local (Clone de ChatGPT)

Python Streamlit LangChain Ollama SQLite

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.


✨ Fonctionnalités

  • 🔒 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.

🛠️ Stack Technique

  • Interface Utilisateur : Streamlit
  • Orchestration IA : LangChain
  • Moteur LLM Local : Ollama (Modèles recommandés : llama3.2 ou mistral)
  • Modèle d'Embedding : nomic-embed-text
  • Base de données Vectorielle : ChromaDB
  • Base de données Relationnelle : SQLite (native en Python)

🚀 Installation & Prérequis

1. Prérequis système

  • Ollama installé sur votre machine (Voir le site officiel).
  • Python 3.12 (Recommandé pour éviter les conflits de dépendances avec ChromaDB/Pydantic).

2. Télécharger les modèles locaux

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

3. Cloner le projet et installer l'environnement

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)


🎮 Utilisation

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.


📁 Architecture du Projet

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


🔮 Améliorations futures (To-Do)

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages