AI-ASSISTANT-ELLAM
Description du projet
Ce projet montre comment utiliser divers composants des bibliothèques langchain_community et langchain_core pour charger, transformer, intégrer et récupérer des documents à partir d'une base de données PostgreSQL avec PGVector activé. Les documents proviennent d'URL, transformés en texte, divisés en morceaux gérables et stockés comme vecteurs dans la base de données pour la récupération. Le projet présente également comment créer une chaîne RAG (récupération de la génération de la récupération) à l'aide du modèle de langue Olllama pour répondre aux questions basées sur le contexte extrait de la boutique vectorielle.
Condition préalable
- Python 3.7+
- PostgreSQL avec PGVector activé
- Docker (facultatif, pour l'exécution de PostgreSQL avec PGVector)
Installation
- Clone le référentiel:
git clone https://github.com/Atomic-man007/AI-assistant-ollama.git
- Créez un environnement virtuel et activez-le:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
- Installez les packages requis:
pip install -r requirements.txt
- Configurez PostgreSQL avec PGVector activé. Vous pouvez utiliser Docker pour tourner rapidement une instance postgresql avec PGVector:
docker run --name pgvector -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 ankane/pgvector
- Définissez la variable d'environnement
DB_URL pour pointer sur votre instance PostgreSQL:
export DB_URL=postgresql://postgres:mysecretpassword@localhost:5432/postgres
Usage
Mettez à jour la liste urls dans la fonction main avec les URL des documents que vous souhaitez traiter.
Exécutez le script:
Composants
- Asynchtmlloader : charge de manière asynchrone le contenu HTML des URL fourni.
- Html2textTransformrer : transforme les documents HTML en texte brut.
- Ollamaembeddings : intégre le texte des documents dans l'espace vectoriel.
- PGVector : une implémentation de magasin vectoriel utilisant PostgreSQL avec une extension PGVector.
- RecursiVECHarAtteTTextSplitter : divise les documents texte en morceaux de taille spécifiée.
- ChatPromptTemplate : crée un modèle d'invite de chat pour générer des réponses.
- RunnablePassthrough : un passthrough couvable pour les composants de chaînage.
- Olllama : un modèle de langue utilisé pour générer des réponses basées sur le contexte récupéré.
Exemple
Le script montre les étapes suivantes:
- Chargez des documents HTML des URL fournis.
- Transformez les documents HTML en texte brut.
- Divisez les documents texte en petits morceaux.
- Intégrez les morceaux de texte dans l'espace vectoriel et stockez-les dans la base de données PostgreSQL.
- Récupérez le contexte pertinent à partir du magasin vectoriel.
- Utilisez le contexte récupéré pour générer une réponse à une question en utilisant le modèle de langue Olllama.
Licence
Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.
Remerciements
- bibliothèques
langchain_community et langchain_core pour fournir les composants utilisés dans ce projet. - PostgreSQL et PGVector pour l'implémentation du magasin vectoriel.
- Olllama pour le modèle de langue utilisé pour générer des réponses.