Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les vecteurs stockent les données et ses incorporations vectorielles afin que les applications puissent rechercher des enregistrements par similarité sémantique. Dans les applications basées sur Agent Framework, vous pouvez utiliser des bases de données vectorielles pour récupérer des données d’ancrage pour la génération augmentée par récupération (RAG) ou pour stocker des informations qu’un agent pourra retrouver plus tard.
Les abstractions de magasin de vecteurs fournissent des opérations courantes pour les collections et les enregistrements, ce qui sépare votre logique d’application de l’implémentation spécifique du magasin de vecteurs. Vous pouvez, par exemple, commencer par une implémentation locale et basculer vers un service managé avec des modifications minimales.
Fonctionnement des intégrations avec des bases de données vectorielles
Un flux de travail de magasin de vecteurs classique comprend les étapes suivantes :
- Définissez un modèle de données qui identifie la clé d’enregistrement, les champs de données et les champs vectoriels.
- Configurez un générateur d’incorporation si le magasin vectoriel ne génère pas d’incorporations.
- Connectez-vous à un magasin vectoriel et sélectionnez ou créez une collection.
- Générer des vecteurs d’intégration et insérer ou mettre à jour des enregistrements dans la collection.
- Recherchez la collection avec du texte ou un vecteur, en fonction des fonctionnalités de l’implémentation.
- Transmettez les résultats de recherche pertinents à un agent en tant que contexte ou exposez la recherche en tant qu’outil d’agent.
Prise en charge des bases de données vectorielles dans .NET
Agent Framework utilise les abstractions autonomes de l'écosystème IA .NET :
-
Microsoft.Extensions.VectorDatafournit des API courantes de magasin de vecteurs, de collection, d’enregistrement et de recherche. -
Microsoft.Extensions.AIfournit des abstractions telles queIEmbeddingGeneratorpour générer des embeddings indépendamment d’un fournisseur de modèles spécifique.
Lorsqu’un composant Agent Framework accepte un magasin de vecteurs, vous pouvez fournir une implémentation compatible Microsoft.Extensions.VectorData . Chaque implémentation de base de données est distribuée séparément du package d’abstractions.
Abstractions principales
| Abstraction | Purpose |
|---|---|
VectorStore |
Fournit des opérations sur plusieurs collections et crée des instances de collection typées. |
VectorStoreCollection<TKey, TRecord> |
Crée ou supprime une collection et insère ou met à jour, récupère ou supprime ses enregistrements. |
IVectorSearchable<TRecord> |
Recherche les enregistrements par vecteur ou par texte lorsqu’un générateur d’incorporation ou une fonctionnalité d’incorporation côté base de données est disponible. |
Implémentations disponibles de bases de données vectorielles
Les implémentations suivantes utilisent les abstractions communes de magasins vectoriels .NET. Passez en revue la documentation de chaque implémentation pour connaître les versions de package, les types de données pris en charge et les limitations spécifiques au service.
| Implementation | Availability | Utilise un Kit de développement logiciel (SDK) de base de données officiellement pris en charge | Maintenance ou fournisseur |
|---|---|---|---|
| Recherche Azure AI | Available | Yes | Microsoft |
| Azure Cosmos DB pour MongoDB vCore | Available | Yes | Microsoft |
| Azure Cosmos DB pour NoSQL | Available | Yes | Microsoft |
| Couchbase | Available | Yes | Couchbase |
| Elasticsearch | Available | Yes | Elastic |
| Chroma | Planifié | Sans objet | Sans objet |
| En mémoire | Available | Sans objet | Microsoft |
| Milvus | Planifié | Sans objet | Sans objet |
| MongoDB | Available | Yes | Microsoft |
| Neon Serverless Postgres | Utiliser l’implémentation postgres | Yes | Microsoft |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | No | Microsoft |
| Postgres | Available | Yes | Microsoft |
| Qdrant | Available | Yes | Microsoft |
| Redis | Available | Yes | Microsoft |
| SQL Server | Available | Yes | Microsoft |
| SQLite | Available | Yes | Microsoft |
| Volatile en mémoire | Déconseillé ; utiliser l’implémentation en mémoire | Sans objet | Microsoft |
| Weaviate | Available | Yes | Microsoft |
Importante
Les implémentations de magasins vectoriels proviennent de plusieurs mainteneurs. Évaluez la qualité, les licences, la stratégie de prise en charge et la compatibilité des versions de chaque implémentation avant de l’utiliser. Certaines implémentations utilisent des sdk de base de données que le fournisseur de base de données ne prend pas officiellement en charge.
Get started
- Ajouter le
Microsoft.Extensions.VectorData.Abstractionspackage et package pour votre implémentation de magasin de vecteurs choisie. - Définissez un type d’enregistrement et identifiez sa clé, ses données et ses propriétés vectorielles.
- Configurez une
IEmbeddingGeneratorconfiguration si votre implémentation nécessite des incorporations générées par l’application. - Créez l’implémentation
VectorStore, puis obtenez un typeVectorStoreCollection<TKey, TRecord>. - Vérifiez que la collection existe, effectuez une opération d’upsert sur les enregistrements, et appelez
SearchAsyncavec du texte ou un vecteur.
Pour une présentation complète des modèles de données, de l’ingestion, des incorporations et de la recherche, consultez les bases de données Vector pour .NET applications IA.
prise en charge des bases de données vectorielles Python
Agent Framework utilise les abstractions et les implémentations de magasin de vecteurs de Noyau sémantique pour Python. Les collections de Noyau sémantique fournissent des opérations courantes pour créer des collections, insérer ou mettre à jour des enregistrements, les récupérer, et exécuter des recherches vectorielles, par mots-clés ou hybrides lorsque l’implémentation sélectionnée les prend en charge.
Avertissement
La fonctionnalité de stockage vectoriel de Noyau sémantique pour Python est en version candidate. Un nombre limité de changements avec rupture de compatibilité pourraient survenir avant la disponibilité générale.
Implémentations disponibles de bases de données vectorielles
| Implementation | Availability | Utilise un Kit de développement logiciel (SDK) de base de données officiellement pris en charge | Maintenance ou fournisseur |
|---|---|---|---|
| Recherche Azure AI | Available | Yes | projet Microsoft Noyau sémantique |
| Azure Cosmos DB pour MongoDB vCore | Available | Yes | projet Microsoft Noyau sémantique |
| Azure Cosmos DB pour NoSQL | Available | Yes | projet Microsoft Noyau sémantique |
| Chroma | Available | Yes | projet Microsoft Noyau sémantique |
| Elasticsearch | Planifié | Sans objet | Sans objet |
| Faiss | Available | Yes | projet Microsoft Noyau sémantique |
| En mémoire | Available | Sans objet | projet Microsoft Noyau sémantique |
| MongoDB | Available | Yes | projet Microsoft Noyau sémantique |
| Neon Serverless Postgres | Utiliser l’implémentation postgres | Yes | projet Microsoft Noyau sémantique |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | Yes | projet Microsoft Noyau sémantique |
| Postgres | Available | Yes | projet Microsoft Noyau sémantique |
| Qdrant | Available | Yes | projet Microsoft Noyau sémantique |
| Redis | Available | Yes | projet Microsoft Noyau sémantique |
| SQL Server | Available | pyodbc |
projet Microsoft Noyau sémantique |
| SQLite | Planifié | Sans objet | projet Microsoft Noyau sémantique |
| Weaviate | Available | Yes | projet Microsoft Noyau sémantique |
Importante
Les implémentations de magasins vectoriels proviennent de plusieurs mainteneurs. Évaluez la qualité, les licences, la stratégie de prise en charge et la compatibilité des versions de chaque implémentation avant de l’utiliser.
Get started
- Installez
semantic-kernelet les dépendances requises par votre implémentation choisie. - Définissez un modèle avec le
@vectorstoremodeldécorateur et identifiez ses champs clé, données et vecteurs. - Créez une collection spécifique à l’implémentation pour ce modèle.
- Vérifiez que la collection existe, puis insérez ou mettez à jour des enregistrements.
- Utilisez les API de recherche de la collection pour récupérer des enregistrements pour votre application.
Pour la configuration de l’implémentation et des exemples complets, consultez Magasins de vecteurs Noyau sémantique.
Prise en charge des bases de données vectorielles en Go
L’intégration du magasin de vecteurs n’est pas encore disponible dans Agent Framework pour Go. Consultez le référentiel Agent Framework Go pour connaître l’état le plus récent.
Scénarios liés à Agent Framework
- Ajoutez RAG à un agent.
- Ajoutez la mémoire de l’historique des conversations sémantiques.
- Choisissez une intégration de fournisseur de contexte.