Cette page décrit quelques cas d'utilisation pour créer des applications basées sur un LLM à l'aide du framework LlamaIndex intégré à Cloud SQL pour PostgreSQL. Des liens vers des notebooks sur GitHub sont fournis pour vous aider à explorer des approches ou à développer votre application.
LlamaIndex est un framework d'orchestration d'IA générative qui vous permet de connecter et d'intégrer des sources de données à des grands modèles de langage (LLM). Vous pouvez utiliser LlamaIndex pour créer des applications qui accèdent à des informations issues de données privées ou spécifiques à un domaine et permettent d'interroger ces données à l'aide de requêtes en langage naturel.
LlamaIndex sert de pont entre les données personnalisées et les LLM, ce qui facilite le développement d'applications d'assistant de connaissances avec des capacités de génération augmentée par récupération (RAG).
LlamaIndex est bien adapté aux applications axées sur les documents, car il met l'accent sur la gestion structurée des documents, ce qui simplifie l'indexation et la récupération. Ce framework propose des mécanismes de requête optimisés qui améliorent la vitesse et la pertinence de l'accès aux informations, ainsi qu'une gestion robuste des métadonnées pour un filtrage nuancé.
Pour en savoir plus sur le framework LlamaIndex, consultez la documentation produit LlamaIndex.
Composants LlamaIndex
Cloud SQL pour PostgreSQL propose les interfaces LlamaIndex suivantes :
- Magasin de vecteurs (Vector Store)
- Magasin de documents (Document Store)
- Magasins d'index (Index Stores)
- Magasins de chat (Chat Stores)
- Lecteur de documents
Découvrez comment utiliser LlamaIndex avec le guide de démarrage rapide de Cloud SQL pour PostgreSQL.
Magasin de vecteurs (Vector Store)
Cette intégration LlamaIndex vous permet d'utiliser la robustesse et l'évolutivité de Cloud SQL pour PostgreSQL pour stocker et gérer vos données LlamaIndex. En combinant les capacités d'indexation et de requêtage de LlamaIndex avec les performances et la fiabilité élevées de Cloud SQL pour PostgreSQL, vous pouvez créer des applications optimisées par LLM qui sont plus efficaces et évolutives.
LlamaIndex décompose un document (.doc, texte et PDF) en composants appelés nœuds. Le VectorStore ne peut contenir que les vecteurs d'embedding du contenu de nœud ingéré et le texte des nœuds. Un nœud, qui est un concept de première classe, contient du contenu textuel, des embeddings vectoriels et des métadonnées. Vous pouvez appliquer des filtres à ces champs de métadonnées pour limiter la récupération des nœuds à ceux qui correspondent aux critères de métadonnées spécifiés.
Pour travailler avec des magasins de vecteurs dans Cloud SQL pour PostgreSQL, utilisez la classe PostgresVectorStore
.
Pour en savoir plus, consultez Magasins de vecteurs LlamaIndex.
Stocker des embeddings vectoriels avec la classe PostgresVectorStore
Le guide Cloud SQL pour PostgreSQL pour le magasin de données vectorielles vous explique comment effectuer les opérations suivantes :
- Initialiser une table pour stocker les embeddings vectoriels
- Créez une instance de classe d'embedding à l'aide d'un modèle d'embedding Llama Index.
- Initialisez un magasin de vecteurs
PostgresVectorStore
par défaut. - Créez un index à partir du magasin de vecteurs à l'aide de VectorStoreIndex et interrogez-le.
- Créez un magasin de vecteurs personnalisé pour stocker et filtrer efficacement les métadonnées.
- Ajoutez un index ANN pour améliorer la latence de recherche.
Magasins de documents et d'index
L'intégration des magasins de documents LlamaIndex assure le stockage et la récupération de documents structurés, en optimisant le tout pour les fonctionnalités de LlamaIndex axées sur les documents. Le magasin de documents stocke le contenu lié aux vecteurs dans le magasin de vecteurs.
Pour en savoir plus, consultez la documentation produit Magasins de documents LlamaIndex.
Les magasins d'index simplifient la gestion des index, afin de permettre l'interrogation et la récupération rapides des données (par exemple, les index de résumé, de mots clés et d'arborescence). Dans LlamaIndex,Index
est un stockage léger réservé aux métadonnées des nœuds. Les mises à jour des métadonnées de nœuds ne nécessitent pas de réindexer (générer des embeddings) le nœud complet ni tous les nœuds d'un document.
Pour en savoir plus, consultez Magasins d'index LlamaIndex.
Stocker des documents et des index
Le notebook Cloud SQL pour PostgreSQL pour les magasins de documents vous montre comment utiliser Cloud SQL pour PostgreSQL pour stocker des documents et des index à l'aide des classes PostgresDocumentStore
et PostgresIndexStore
. Vous allez apprendre à :
- Créez un
PostgresEngine
à l'aide dePostgresEngine.from_instance()
. - créer des tables pour DocumentStore et IndexStore ;
- initialiser un
PostgresDocumentStore
par défaut ; - Configurez un
IndexStore
Postgres. - ajouter des documents au
Docstore
; - utiliser des magasins de documents avec plusieurs index ;
- charger les index existants.
Magasins de chat (Chat Stores)
Les magasins de chat conservent l'historique et le contexte des conversations pour les applications basées sur le chat, ce qui permet des interactions personnalisées. Les magasins de chat fournissent un dépôt central qui stocke et récupère les messages de chat au sein d'une conversation. Cela permet au LLM de maintenir le contexte et de fournir des réponses plus pertinentes vis-à-vis du dialogue en cours.
Les grands modèles de langage sont sans état par défaut, ce qui signifie qu'ils ne conservent pas les entrées précédentes, à moins qu'elles ne soient fournies explicitement à chaque fois. En utilisant un magasin de chat, vous pouvez préserver le contexte de la conversation, ce qui permet au modèle de générer des réponses plus pertinentes et cohérentes dans le temps.
Le module de mémoire de LlamaIndex permet de stocker et de récupérer efficacement le contexte conversationnel. Les interactions sont ainsi plus personnalisées et contextualisées dans les applications de chat. Vous pouvez intégrer le module de mémoire dans LlamaIndex avec un ChatStore et un ChatMemoryBuffer.
Pour en savoir plus, consultez Magasins de chat LlamaIndex.
Stocker l'historique des discussions
Le notebook Cloud SQL pour PostgreSQL pour les magasins de chat vous explique comment utiliser Cloud SQL pour PostgreSQL afin de stocker l'historique des discussions à l'aide de la classe PostgresChatStore
. Vous allez apprendre à :
- Créez un
PostgresEngine
à l'aide dePostgresEngine.from_instance()
. - Initialiser un
PostgresChatStore.
par défaut - créer un objet
ChatMemoryBuffer
; - créer une instance de classe LLM ;
- utiliser
PostgresChatStore
sans contexte de stockage ; - utiliser
PostgresChatStore
avec un contexte de stockage ; - créer et utiliser le moteur de chat.
Lecteur de documents
Le lecteur de documents récupère et transforme efficacement les données de Cloud SQL pour PostgreSQL dans des formats compatibles avec LlamaIndex pour l'indexation. L'interface du lecteur de documents fournit des méthodes pour charger des données à partir d'une source en tant que Documents
. Document
est une classe qui stocke un extrait de texte et les métadonnées associées. Vous pouvez utiliser des lecteurs de documents pour charger les documents que vous souhaitez stocker dans des magasins de documents, ou ceux qui sont utilisés pour créer des index.
Pour en savoir plus, consultez Lecteur de documents LlamaIndex.
Récupérer des données sous forme de documents
Le notebook Cloud SQL pour PostgreSQL pour Document Reader vous montre comment utiliser Cloud SQL pour PostgreSQL afin de récupérer des données sous forme de documents à l'aide de la classe PostgresReader
. Vous allez apprendre à :
- Créez un
PostgresEngine
à l'aide dePostgresEngine.from_instance()
. - Créez un
PostgresReader
. - charger les documents à l'aide de l'argument
table_name
; - charger des documents à l'aide d'une requête SQL ;
- définir le format du contenu de la page ;
- charger les documents.