Comment utiliser VectorStoreRetrieverMemory dans LangChain ?

Comment Utiliser Vectorstoreretrievermemory Dans Langchain



Les grands modèles de langage ou LLM sont la solution aux problèmes de traitement du langage naturel qui sont construits à l'aide du framework LangChain. Le module LangChain fournit toutes les dépendances ou bibliothèques requises pour concevoir les modèles de chat ou LLM. L'utilisateur peut également configurer le récupérateur pour extraire des données des magasins de vecteurs ou des bases de données à l'aide des modèles.

Ce guide illustrera comment utiliser VectorStoreRetrieverMemory à l'aide du framework LangChain.

Comment utiliser VectorStoreRetrieverMemory dans LangChain ?

VectorStoreRetrieverMemory est la bibliothèque de LangChain qui peut être utilisée pour extraire des informations/données de la mémoire à l'aide des magasins de vecteurs. Les magasins de vecteurs peuvent être utilisés pour stocker et gérer des données afin d'extraire efficacement les informations en fonction de l'invite ou de la requête.







Pour apprendre le processus d'utilisation de VectorStoreRetrieverMemory dans LangChain, parcourez simplement le guide suivant :



Étape 1 : Installer les modules

Démarrez le processus d'utilisation du récupérateur de mémoire en installant LangChain à l'aide de la commande pip :



pip installer langchain





Installez les modules FAISS pour obtenir les données en utilisant la recherche de similarité sémantique :

pip install faiss-gpu



Installez le module chromadb pour utiliser la base de données Chroma. Il fonctionne comme un magasin de vecteurs pour créer la mémoire du récupérateur :

pip installer chromadb

Un autre module tiktoken est nécessaire à installer et peut être utilisé pour créer des jetons en convertissant les données en morceaux plus petits :

pip installer tiktoken

Installez le module OpenAI pour utiliser ses bibliothèques pour créer des LLM ou des chatbots à l'aide de son environnement :

pip installer openai

Configurer l'environnement sur l'IDE Python ou le notebook en utilisant la clé API du compte OpenAI :

importer toi

importer obtenir un laissez-passer

toi . environ [ 'OPENAI_API_KEY' ] = obtenir un laissez-passer . obtenir un laissez-passer ( « Clé API OpenAI : » )

Étape 2 : Importer des bibliothèques

L'étape suivante consiste à obtenir les bibliothèques de ces modules pour utiliser le récupérateur de mémoire dans LangChain :

depuis chaîne de langage. instructions importer Modèle d'invite

depuis dateheure importer dateheure

depuis chaîne de langue. llms importer OpenAI

depuis chaîne de langue. intégrations . ouvert importer OpenAIEmbeddings

depuis chaîne de langue. Chaînes importer Chaîne de conversations

depuis chaîne de langue. mémoire importer VectorStoreRetrieverMémoire

Étape 3 : initialisation du magasin de vecteurs

Ce guide utilise la base de données Chroma après avoir importé la bibliothèque FAISS pour extraire les données à l'aide de la commande input :

importer faisss

depuis chaîne de langue. docstore importer InMemoryDocstore
#import de bibliothèques pour configurer les bases de données ou les magasins de vecteurs
depuis chaîne de langue. magasins de vecteurs importer FAISS

#créer des intégrations et des textes pour les stocker dans les magasins de vecteurs
intégration_size = 1536
indice = faiss. IndexFlatL2 ( intégration_size )
intégration_fn = OpenAIEmbeddings ( ) . embed_query
magasin de vecteurs = FAISS ( intégration_fn , indice , InMemoryDocstore ( { } ) , { } )

Étape 4 : Construire un Retriever soutenu par un magasin de vecteurs

Construisez la mémoire pour stocker les messages les plus récents de la conversation et obtenir le contexte du chat :

retriever = magasin vectoriel. as_retriever ( recherche_kwargs = dicter ( k = 1 ) )
mémoire = VectorStoreRetrieverMémoire ( retriever = retriever )

mémoire. sauvegarder_contexte ( { 'saisir' : 'J'aime manger des pizzas' } , { 'sortir' : 'fantastique' } )
mémoire. sauvegarder_contexte ( { 'saisir' : 'Je suis bon au football' } , { 'sortir' : 'd'accord' } )
mémoire. sauvegarder_contexte ( { 'saisir' : 'Je n'aime pas la politique' } , { 'sortir' : 'bien sûr' } )

Testez la mémoire du modèle à l'aide de la saisie fournie par l'utilisateur avec son historique :

imprimer ( mémoire. load_memory_variables ( { 'rapide' : 'quel sport dois-je regarder ?' } ) [ 'histoire' ] )

Étape 5 : Utiliser Retriever dans une chaîne

L'étape suivante consiste à utiliser un récupérateur de mémoire avec les chaînes en construisant le LLM à l'aide de la méthode OpenAI() et en configurant le modèle d'invite :

llm = OpenAI ( température = 0 )
_DEFAULT_TEMPLATE = '''Il s'agit d'une interaction entre un humain et une machine
Le système produit des informations utiles avec des détails en utilisant le contexte
Si le système n’a pas la réponse pour vous, il dit simplement que je n’ai pas la réponse.

Informations importantes issues de la conversation :
{histoire}
(si le texte n’est pas pertinent, ne l’utilisez pas)

Discussion actuelle :
Humain : {entrée}
IA : '''

RAPIDE = Modèle d'invite (
variables_d'entrée = [ 'histoire' , 'saisir' ] , modèle = _DEFAULT_TEMPLATE
)
#configurer ConversationChain() en utilisant les valeurs de ses paramètres
conversation_avec_summary = Chaîne de conversations (
llm = llm ,
rapide = RAPIDE ,
mémoire = mémoire ,
verbeux = Vrai
)
conversation_avec_summary. prédire ( saisir = 'Salut, je m'appelle Perry, quoi de neuf ?' )

Sortir

L'exécution de la commande exécute la chaîne et affiche la réponse fournie par le modèle ou le LLM :

Poursuivez la conversation en utilisant l'invite basée sur les données stockées dans le magasin de vecteurs :

conversation_avec_summary. prédire ( saisir = 'quel est mon sport préféré ?' )

Les messages précédents sont stockés dans la mémoire du modèle qui peut être utilisé par le modèle pour comprendre le contexte du message :

conversation_avec_summary. prédire ( saisir = 'Quel est mon plat préféré' )

Obtenez la réponse fournie au modèle dans l'un des messages précédents pour vérifier comment le récupérateur de mémoire fonctionne avec le modèle de discussion :

conversation_avec_summary. prédire ( saisir = 'Quel est mon nom?' )

Le modèle a correctement affiché la sortie en utilisant la recherche de similarité à partir des données stockées dans la mémoire :

Il s’agit d’utiliser le récupérateur de magasin vectoriel dans LangChain.

Conclusion

Pour utiliser le récupérateur de mémoire basé sur un magasin de vecteurs dans LangChain, installez simplement les modules et les frameworks et configurez l'environnement. Après cela, importez les bibliothèques des modules pour créer la base de données à l'aide de Chroma, puis définissez le modèle d'invite. Testez le récupérateur après avoir stocké les données dans la mémoire en lançant la conversation et en posant des questions liées aux messages précédents. Ce guide a expliqué le processus d'utilisation de la bibliothèque VectorStoreRetrieverMemory dans LangChain.