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 toiimporter 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'invitedepuis 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 faisssdepuis 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.