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 Bigtable

Bigtable propose les interfaces LangChain suivantes :

Apprenez à utiliser LangChain avec le guide de démarrage rapide de LangChain pour Bigtable. Ce guide de démarrage rapide crée une application qui accède à un ensemble de données de films Netflix afin que les utilisateurs puissent interagir avec les données de films.

Magasin de vecteurs pour Bigtable

Vous pouvez utiliser le magasin de vecteurs pour enregistrer des documents texte ainsi que leurs embeddings vectoriels et d'autres métadonnées dans une table Bigtable. Vous pourrez ainsi :

  • Recherchez des documents à l'aide de techniques telles que la recherche par similarité vectorielle ou la recherche par pertinence marginale maximale (MMR).
  • Effectuez un filtrage supplémentaire des résultats de la recherche vectorielle à l'aide des métadonnées des documents.

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

Guide de procédure pour le magasin de vecteurs

Le guide Bigtable pour les magasins de vecteurs vous explique comment effectuer les opérations suivantes :

  • Installer le package d'intégration et LangChain
  • Configurer le service d'intégration
  • Créer et configurer le magasin Bigtable
  • personnaliser la connexion et l'authentification ;
  • Interroger le magasin avec l'algorithme kNN et filtrer les résultats par métadonnées de document

Magasin clé-valeur pour Bigtable

Bigtable fournit un magasin de clés/valeurs pour LangChain sous la forme d'une classe ByteStore qui vous permet de travailler avec des documents ou des embeddings stockés en tant qu'objets byte. Cette approche peut vous aider à réduire considérablement les coûts et la latence lorsque vous effectuez des tâches telles que la mise en cache et l'indexation des embeddings pour les requêtes répétées.

Pour en savoir plus, consultez la page Magasins de clé-valeurs LangChain.

Guide de procédure pour le magasin de paires clé-valeur

Le guide Bigtable pour les magasins de clés/valeurs vous explique comment :

  • Installer le package d'intégration et LangChain
  • Initialiser le moteur et les tables requis
  • personnaliser la connexion et l'authentification ;
  • Utiliser BigtableByteStore comme couche de mise en cache pour les embeddings vectoriels

Chargeur de documents pour Bigtable

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 du chargeur de documents dans Bigtable, utilisez la classe BigtableLoader. Les méthodes BigtableLoader renvoient un ou plusieurs documents d'une table. Utilisez la classe BigtableSaver 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 Bigtable 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 BigtableSaver pour stocker et supprimer des documents

Historique des messages de chat pour Bigtable

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 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.

Bigtable étend cette classe avec BigtableChatMessageHistory.

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

Le guide Bigtable pour l'historique des messages de chat vous explique comment :

  • Installer LangChain et s'authentifier auprès de Google Cloud
  • Initialiser le schéma Bigtable
  • initialiser la classe BigtableChatMessageHistory pour ajouter et supprimer des messages ;
  • Utiliser un client pour personnaliser la connexion et l'authentification