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 en savoir plus sur les LLM, leurs cas d'utilisation, ainsi que sur les modèles et services spécifiques que Google propose, consultez une présentation des concepts et services des LLM dans Google Cloud.
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 AlloyDB
Découvrez comment utiliser LangChain avec le guide de démarrage rapide de LangChain pour AlloyDB. Ce guide de démarrage rapide crée une application qui accède à un ensemble de données sur les films Netflix afin que les utilisateurs puissent interagir avec les données sur les films.
Magasin de vecteurs pour AlloyDB
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 utiliser un magasin de données vectorielles dans AlloyDB, utilisez la classe AlloyDBVectorStore
.
Pour en savoir plus, consultez la documentation produit sur les magasins de vecteurs LangChain.
Guide de procédure pour le magasin de vecteurs
Le guide AlloyDB pour le magasin de vecteurs vous explique comment effectuer les opérations suivantes:
- Installer le package d'intégration et LangChain
- Créer un objet
AlloyDBEngine
et configurer un pool de connexions à votre base de données AlloyDB - Initialiser un tableau pour le magasin de vecteurs
- Configurer un service d'embedding à l'aide de
VertexAIEmbeddings
- Initialiser
AlloyDBVectorStore
- Ajouter et supprimer des documents
- Rechercher des documents similaires
- Ajouter un indice vectoriel pour améliorer les performances de recherche
- Créer un magasin de vecteurs personnalisé pour vous connecter à une base de données AlloyDB pour PostgreSQL préexistante contenant une table avec des représentations vectorielles continues
Chargeur de documents pour AlloyDB
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 d'AlloyDB, utilisez la classe AlloyDBLoader
. AlloyDBLoader
renvoie une liste de documents d'une table en utilisant la première colonne pour le contenu de la page et toutes les autres colonnes pour les métadonnées. La première colonne du tableau par défaut correspond au contenu de la page, et la deuxième colonne aux métadonnées JSON. Chaque ligne devient un document. Pour savoir comment personnaliser ces paramètres, consultez le guide de procédure.
Utilisez la classe AlloyDBSaver
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 AlloyDB pour le chargeur de documents vous explique comment effectuer les opérations suivantes:
- 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
AlloyDBSaver
pour stocker et supprimer des documents
Historique des messages de chat pour AlloyDB
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.
AlloyDB étend cette classe avec AlloyDBChatMessageHistory
.
Guide de procédure pour l'historique des messages de chat
Le guide AlloyDB pour l'historique des messages de chat vous explique comment:
- Installer le package d'intégration et LangChain
- Créer un objet
AlloyDBEngine
et configurer un pool de connexions à votre base de données AlloyDB - Initialiser une table
- initialiser la classe
AlloyDBChatMessageHistory
pour ajouter et supprimer des messages ; - créer une chaîne pour l'historique des messages à l'aide du langage LCEL (LangChain Expression Language) ;