Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vektorspeicher speichern Daten und deren Vektoreinbettungen zusammen, sodass Anwendungen Datensätze nach semantischer Ähnlichkeit finden können. In Agent Framework-Anwendungen können Sie Vektorspeicher verwenden, um Erdungsdaten für die erweiterte Abrufgenerierung (Retrieval Augmented Generation, RAG) abzurufen oder Informationen zu speichern, die ein Agent später zurückrufen kann.
Vektorspeicherabstraktionen stellen allgemeine Vorgänge für Sammlungen und Datensätze bereit, wobei Ihre Anwendungslogik von der spezifischen Vektorspeicherimplementierung getrennt bleibt. Sie können z. B. mit einer lokalen Implementierung beginnen und mit minimalen Änderungen zu einem verwalteten Dienst wechseln.
Funktionsweise von Vektorspeicherintegrationen
Ein typischer Vektorspeicherworkflow umfasst die folgenden Schritte:
- Definieren Sie ein Datenmodell, das den Datensatzschlüssel, Datenfelder und Vektorfelder identifiziert.
- Konfigurieren Sie einen Einbettungsgenerator, wenn der Vektorspeicher keine Einbettungen generiert.
- Stellen Sie eine Verbindung mit einem Vektorspeicher her und wählen Sie eine Sammlung aus oder erstellen Sie eine.
- Embeddings generieren und Datensätze in die Sammlung einfügen oder aktualisieren.
- Durchsuchen Sie die Sammlung mit Text oder einem Vektor, abhängig von den Funktionen der Implementierung.
- Übergeben Sie relevante Suchergebnisse als Kontext an einen Agent oder machen Sie die Suche als Agenttool verfügbar.
Unterstützung für .NET Vektorspeicher
Agent Framework verwendet die eigenständigen Abstraktionen des .NET KI-Ökosystems:
-
Microsoft.Extensions.VectorDatastellt allgemeine Vektorspeicher-, Sammlungs-, Datensatz- und Such-APIs bereit. -
Microsoft.Extensions.AIstellt Abstraktionen wieIEmbeddingGeneratorbereit, um Einbettungen unabhängig von einem bestimmten Modellanbieter zu generieren.
Wenn eine Agent Framework-Komponente einen Vektorspeicher akzeptiert, können Sie eine kompatible Microsoft.Extensions.VectorData Implementierung bereitstellen. Jede Datenbankimplementierung wird separat vom Abstraktionspaket verteilt.
Kernabstraktionen
| Abstraktion | Purpose |
|---|---|
VectorStore |
Stellt Vorgänge über Sammlungen hinweg bereit und erstellt typierte Sammlungsinstanzen. |
VectorStoreCollection<TKey, TRecord> |
Erstellt oder löscht eine Sammlung und fügt deren Datensätze ein oder aktualisiert sie, ruft sie ab oder löscht sie. |
IVectorSearchable<TRecord> |
Durchsucht Datensätze nach Vektor oder Text, wenn ein Einbettungsgenerator oder eine datenbankseitige Einbettungsfunktion verfügbar ist. |
Verfügbare Vektorspeicherimplementierungen
Die folgenden Implementierungen verwenden die allgemeinen .NET Vektorspeicherabstraktionen. Überprüfen Sie die Dokumentation der einzelnen Implementierungen für Paketversionen, unterstützte Datentypen und dienstspezifische Einschränkungen.
| Implementation | Availability | Verwendet ein offiziell unterstütztes Datenbank-SDK | Maintainer oder Anbieter |
|---|---|---|---|
| Azure KI-Suche | Available | Yes | Microsoft |
| Azure Cosmos DB für MongoDB vCore | Available | Yes | Microsoft |
| Azure Cosmos DB für NoSQL | Available | Yes | Microsoft |
| Couchbase | Available | Yes | Couchbase |
| Elasticsearch | Available | Yes | Elastic |
| Farbton | Geplant | Nicht anwendbar | Nicht anwendbar |
| Im Arbeitsspeicher | Available | Nicht anwendbar | Microsoft |
| Milvus | Geplant | Nicht anwendbar | Nicht anwendbar |
| MongoDB | Available | Yes | Microsoft |
| Neon Serverless Postgres | Verwenden der Postgres-Implementierung | 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 |
| Veränderlich im Arbeitsspeicher | Veraltet; verwenden Sie die In-Memory-Implementierung | Nicht anwendbar | Microsoft |
| Weaviate | Available | Yes | Microsoft |
Important
Implementierungen für Vektorspeicher stammen von verschiedenen Maintainern. Bewerten Sie die Qualität, Lizenzierung, Supportrichtlinie und Versionskompatibilität jeder Implementierung, bevor Sie sie verwenden. Einige Implementierungen verwenden Datenbank-SDKs, die der Datenbankanbieter nicht offiziell unterstützt.
Get started
- Hinzufügen des
Microsoft.Extensions.VectorData.AbstractionsPaket und das Paket für Ihre gewählte Vektorspeicher-Implementierung. - Definieren Sie einen Datensatztyp, und identifizieren Sie dessen Schlüssel-, Daten- und Vektoreigenschaften.
- Konfigurieren Sie
IEmbeddingGenerator, wenn Ihre Implementierung von der Anwendung generierte Einbettungen erfordert. - Erstellen Sie das
VectorStoreder Implementierung, und rufen Sie dann ein typisiertesVectorStoreCollection<TKey, TRecord>ab. - Stellen Sie sicher, dass die Sammlung vorhanden ist, aktualisieren oder fügen Sie Datensätze ein und rufen Sie
SearchAsyncmit Text oder einem Vektor auf.
Eine vollständige Einführung in Datenmodelle, Aufnahme, Einbettungen und Suchen finden Sie in vector-Datenbanken für .NET KI-Apps.
Unterstützung für Python Vektorspeicher
Agent Framework verwendet die Vektorspeicherabstraktionen und Implementierungen von Semantischer Kernel für Python. Sammlungen in Semantischer Kernel bieten gängige Operationen zum Erstellen von Sammlungen, zum Einfügen oder Aktualisieren und Abrufen von Datensätzen sowie zur Durchführung von Vektor-, Schlüsselwort- oder Hybridsuchen, sofern die gewählte Implementierung diese unterstützt.
Warnung
Semantischer Kernel Vector Store-Funktionalität für Python ist ein Releasekandidat. Begrenzte Änderungen können vor der allgemeinen Verfügbarkeit auftreten.
Verfügbare Vektorspeicherimplementierungen
| Implementation | Availability | Verwendet ein offiziell unterstütztes Datenbank-SDK | Maintainer oder Anbieter |
|---|---|---|---|
| Azure KI-Suche | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Azure Cosmos DB für MongoDB vCore | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Azure Cosmos DB für NoSQL | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Chroma | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Elasticsearch | Geplant | Nicht anwendbar | Nicht anwendbar |
| Faiss | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Im Arbeitsspeicher | Available | Nicht anwendbar | Microsoft Semantischer Kernel Projekt |
| MongoDB | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Neon Serverless Postgres | Verwenden der Postgres-Implementierung | Yes | Microsoft Semantischer Kernel Projekt |
| Oracle | Available | Yes | Oracle |
| Pinecone | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Postgres | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Qdrant | Available | Yes | Microsoft Semantischer Kernel Projekt |
| Redis | Available | Yes | Microsoft Semantischer Kernel Projekt |
| SQL Server | Available | pyodbc |
Microsoft Semantischer Kernel Projekt |
| SQLite | Geplant | Nicht anwendbar | Microsoft Semantischer Kernel Projekt |
| Weaviate | Available | Yes | Microsoft Semantischer Kernel Projekt |
Important
Implementierungen für Vektorspeicher stammen von verschiedenen Maintainern. Bewerten Sie die Qualität, Lizenzierung, Supportrichtlinie und Versionskompatibilität jeder Implementierung, bevor Sie sie verwenden.
Get started
- Installieren Sie
semantic-kernelund die Abhängigkeiten, die für Ihre gewählte Implementierung erforderlich sind. - Definieren Sie ein Modell mit dem
@vectorstoremodelDekorateur, und identifizieren Sie seine Schlüssel-, Daten- und Vektorfelder. - Erstellen Sie eine implementierungsspezifische Auflistung für dieses Modell.
- Stellen Sie sicher, dass die Sammlung vorhanden ist, und fügen Sie dann Datensätze per Upsert ein oder aktualisieren Sie sie.
- Verwenden Sie die Such-APIs der Sammlung, um Datensätze für Ihre Anwendung abzurufen.
Implementierungssetup und vollständige Beispiele finden Sie unter Semantischer Kernel Vector Stores.
Unterstützung für Go-Vektorspeicher
Die Vektorspeicherintegration ist im Agent Framework für Go noch nicht verfügbar. Den neuesten Status finden Sie im Agent Framework Go-Repository .
Verwandte Agent-Framework-Szenarien
- Fügen Sie RAG zu einem Agent hinzu.
- Fügen Sie speicher für semantischen Chatverlauf hinzu.
- Wählen Sie eine Kontextanbieterintegration aus.