Cette page explique comment créer des applications basées sur un LLM en utilisant LangChain. Les présentations de cette page sont liées aux guides de procédure dans GitHub.
Qu'est-ce que LangChain ?
LangChain est un framework d'orchestration LLM qui aide les développeurs à créer des applications d'IA générative ou des workflows de génération augmentée de récupération (RAG). Il fournit la structure, les outils et les composants nécessaires pour simplifier les workflows LLM complexes.
Pour plus d'informations sur LangChain, consultez la page Google LangChain. Pour en savoir plus sur le framework LangChain, consultez la documentation du produit de LangChain.
Composants LangChain pour Spanner
Spanner propose les interfaces LangChain suivantes :
- Magasin de vecteurs
- Chargeur de documents
- Historique des messages de chat
- Graph Store
- Contrôle qualité des graphiques
Découvrez comment utiliser ces composants dans une application avec le démarrage rapide LangChain pour Spanner.
Magasin de vecteurs pour Spanner
Le magasin de vecteurs récupère et stocke les documents et les métadonnées d'une base de données vectorielle. Le magasin de vecteurs permet à une application d'effectuer des recherches sémantiques qui interprétent la signification d'une requête utilisateur. Ce type de recherche est appelé recherche vectorielle. Elle permet de trouver des sujets correspondant à la requête du point de vue conceptuel. Au moment de la requête, le magasin de vecteurs récupère les vecteurs d'embedding qui ressemblent le plus à l'embedding de la requête de recherche. En LangChain, un magasin de vecteurs se charge de stocker les données intégrées et d'effectuer la recherche vectorielle pour vous.
Pour travailler avec un magasin de vecteurs dans Spanner, utilisez la classe SpannerVectorStore
.
Pour en savoir plus, consultez la documentation produit Magasins de vecteurs LangChain.
Guide de procédure pour le magasin de vecteurs
Le guide Spanner pour le magasin de vecteurs vous explique comment effectuer les opérations suivantes :
- Installer le package d'intégration et LangChain
- Initialiser une table pour le magasin de vecteurs
- Configurer un service d'embedding à l'aide de
VertexAIEmbeddings
- Initialiser
SpannerVectorStore
- Ajouter et supprimer des documents
- Rechercher des documents similaires
- Créez un magasin de vecteurs personnalisé pour vous connecter à une base de données Spanner préexistante comportant une table avec des embeddings vectoriels.
Chargeur de documents pour Spanner
Le chargeur de documents enregistre, charge et supprime un objet Document
LangChain. Par exemple, vous pouvez charger des données à traiter dans des embeddings et les stocker dans un magasin de vecteurs ou les utiliser comme outil pour fournir un contexte spécifique aux chaînes.
Pour charger des documents à partir de Spanner, utilisez la classe SpannerLoader
.
Utilisez la classe SpannerDocumentSaver
pour enregistrer et supprimer des documents.
Pour en savoir plus, consultez la page Chargeurs de documents LangChain.
Guide de procédure du chargeur de documents
Le guide Spanner pour le chargeur de documents vous explique comment :
- Installer le package d'intégration et LangChain
- charger des documents depuis une table ;
- ajouter un filtre au chargeur ;
- personnaliser la connexion et l'authentification ;
- Personnaliser la construction d'un document en spécifiant les métadonnées et les contenus client
- Utiliser et personnaliser un
SpannerDocumentSaver
pour stocker et supprimer des documents
Historique des messages de chat pour Spanner
Les applications de questions-réponses nécessitent un historique de ce qui s'est dit dans la conversation afin de fournir à l'application un contexte qui lui permet de répondre à d'autres questions de l'utilisateur. La classe ChatMessageHistory
de LangChain permet à l'application d'enregistrer des messages dans une base de données et de les récupérer si nécessaire pour formuler d'autres réponses. Un message peut être une question, une réponse, une instruction, un message d'accueil ou tout autre texte émis par l'utilisateur ou l'application au cours d'une conversation.
ChatMessageHistory
stocke chaque message et enchaîne les messages pour chaque conversation.
Spanner étend cette classe avec SpannerChatMessageHistory
.
Guide de procédure pour l'historique des messages de chat
Le guide Spanner pour l'historique des messages de chat vous explique comment :
- Installer LangChain et s'authentifier auprès de Google Cloud
- Initialiser une table
- initialiser la classe
SpannerChatMessageHistory
pour ajouter et supprimer des messages ; - Utiliser un client pour personnaliser la connexion et l'authentification
- Supprimer la session
SpannerChatMessageHistory
Graph store pour Spanner
Le magasin de graphiques récupère et stocke les nœuds et les arêtes d'une base de données graphiques. Utilisez le magasin de graphiques pour permettre à une application d'effectuer les opérations suivantes :
- Ajouter des nœuds et des arêtes à un graphique
- Effectuer des traversées et des analyses sur un graphique
- Inspecter le schéma d'un graphique
Vous pouvez également utiliser le magasin de graphiques avec la chaîne QA de graphiques pour créer une application capable de discuter avec un graphique.
Pour utiliser le magasin de graphiques avec Spanner Graph, utilisez la classe SpannerGraphStore
pour stocker les nœuds et les arêtes extraits des documents. SpannerGraphStore
est compatible avec le langage GQL (Graph Query Language).
Guide de procédure pour le magasin de graphiques
Le guide Spanner pour le magasin de graphiques vous explique comment effectuer les opérations suivantes :
- Installer le package d'intégration et LangChain
- Préparer des graphiques à partir de différentes sources de données
- Initialiser
SpannerGraphStore
avec une base de données Spanner Graph existante - Ajouter des nœuds et des arêtes à Spanner Graph
- Effectuer des traversées à l'aide d'une requête GQL
- Visualiser les résultats de la requête de graphique
- Nettoyer le graphique
Chaîne de questions/réponses graphiques pour Spanner
La chaîne QA de graphes pour Spanner utilise un graphe Spanner pour répondre aux questions. Le workflow de QA graphique pour répondre à une question est le suivant :
- Graph QA utilise un LLM LangChain pour traduire une question en langage naturel en requête GQL.
- Spanner Graph utilise l'interface du magasin de graphes pour exécuter la requête GQL.
- Les résultats de la requête GQL sont renvoyés au LLM.
- Le LLM génère la réponse à la question et la renvoie.
Guide de procédure de contrôle qualité des graphiques
Le guide Spanner pour les questions-réponses sur les graphiques explique comment utiliser Spanner et les questions-réponses sur les graphiques pour répondre à une question. Il vous montre comment effectuer les opérations suivantes :
- Créez un graphique à partir de blocs de texte non structurés à l'aide de
LLMGraphTransformer
. - Stockez le graphique dans Spanner Graph à l'aide de la classe
SpannerGraphStore
. - Initialisez une instance
SpannerGraphQAChain
. - Générez une réponse à une question en langage naturel à l'aide du magasin de graphes dans Spanner Graph.