Créer des applications basées sur un LLM avec LangChain

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 Cloud SQL pour PostgreSQL

Cloud SQL pour PostgreSQL propose les interfaces LangChain suivantes :

Découvrez comment utiliser LangChain à l'aide du guide de démarrage rapide de LangChain pour Cloud SQL pour PostgreSQL.

Magasin de données vectorielles pour Cloud SQL pour PostgreSQL

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 de représentation vectorielle continue qui ressemblent le plus à la représentation vectorielle continue 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 vecteurs dans Cloud SQL pour PostgreSQL, utilisez la classe PostgresVectorStore.

Pour en savoir plus, consultez la documentation produit Magasins de vecteurs LangChain.

Guide de procédure pour le magasin de vecteurs

Le guide Cloud SQL pour PostgreSQL pour le magasin de données vectorielles vous explique comment effectuer les opérations suivantes :

  • Installer le package d'intégration et LangChain
  • Créer un objet PostgresEngine et configurer un pool de connexions à votre base de données Cloud SQL pour PostgreSQL.
  • Initialiser une table
  • Créer un objet de représentation vectorielle continue à l'aide de VertexAIEmbeddings
  • Initialiser un PostgresVectorStore par défaut
  • Ajouter du texte
  • Supprimer du texte
  • Rechercher des documents
  • Rechercher des documents par vecteur
  • Ajouter un index pour accélérer les requêtes de recherche vectorielle
  • Réindexer
  • Supprimer un index
  • Créer un magasin de vecteurs personnalisé
  • Rechercher des documents avec un filtre de métadonnées

Chargeur de documents pour Cloud SQL pour PostgreSQL

Le chargeur de documents enregistre, charge et supprime un objet Document LangChain. Par exemple, vous pouvez charger des données à traiter dans des représentations vectorielles continues et les stocker dans un stockage de vecteurs ou les utiliser comme outil pour fournir un contexte spécifique aux chaînes.

Pour charger des documents à partir du chargeur de documents dans Cloud SQL pour PostgreSQL, utilisez la classe PostgresLoader. PostgresLoader 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 table par défaut comporte la première colonne en tant que contenu de la page et la deuxième colonne en tant que métadonnées JSON. Chaque ligne devient un document. Utilisez la classe PostgresDocumentSaver 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 Cloud SQL pour PostgreSQL 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 PostgresDocumentSaver pour stocker et supprimer des documents.

Historique des messages de chat pour Cloud SQL pour PostgreSQL

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.

Cloud SQL pour PostgreSQL étend cette classe avec PostgresChatMessageHistory.

Guide de procédure pour l'historique des messages de chat

Le guide Cloud SQL pour PostgreSQL pour l'historique des messages de chat vous explique comment effectuer les opérations suivantes :

  • installer LangChain et s'authentifier auprès de Google Cloud ;
  • Créer un objet PostgresEngine et configurer un pool de connexions à votre base de données Cloud SQL pour PostgreSQL.
  • Initialiser une table
  • initialiser la classe PostgresChatMessageHistory pour ajouter et supprimer des messages ;
  • créer une chaîne pour l'historique des messages à l'aide du langage LCEL (LangChain Expression Language) et des modèles de chat Vertex AI de Google.