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 Spanner

Spanner propose les interfaces LangChain suivantes:

Découvrez comment utiliser ces composants dans une application avec le guide de démarrage rapide de Langchain pour Spanner.

Magasin de données vectorielles 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 utiliser un magasin de données vectorielles 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 données vectorielles vous explique comment effectuer les opérations suivantes :

  • Installer le package d'intégration et LangChain
  • Initialiser un tableau pour le magasin de vecteurs
  • Configurer un service d'intégration à l'aide de VertexAIEmbeddings
  • Initialiser SpannerVectorStore
  • Ajouter et supprimer des documents
  • Rechercher des documents similaires
  • Créer un magasin vectoriel personnalisé à associer à un Spanner préexistant base de données comportant une table avec des représentations vectorielles continues

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 les documents loader 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 ;
  • Personnalisez la création de documents en spécifiant le contenu et les métadonnées client
  • Utiliser et personnaliser un SpannerDocumentSaver pour stocker et supprimer des documents

Historique des messages Chat pour Spanner

Les applications de questions-réponses nécessitent un historique des propos du conversation pour fournir à l'application le contexte nécessaire pour 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