Vektorspeicherintegrationen

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:

  1. Definieren Sie ein Datenmodell, das den Datensatzschlüssel, Datenfelder und Vektorfelder identifiziert.
  2. Konfigurieren Sie einen Einbettungsgenerator, wenn der Vektorspeicher keine Einbettungen generiert.
  3. Stellen Sie eine Verbindung mit einem Vektorspeicher her und wählen Sie eine Sammlung aus oder erstellen Sie eine.
  4. Embeddings generieren und Datensätze in die Sammlung einfügen oder aktualisieren.
  5. Durchsuchen Sie die Sammlung mit Text oder einem Vektor, abhängig von den Funktionen der Implementierung.
  6. Ü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:

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

  1. Hinzufügen des Microsoft.Extensions.VectorData.Abstractions Paket und das Paket für Ihre gewählte Vektorspeicher-Implementierung.
  2. Definieren Sie einen Datensatztyp, und identifizieren Sie dessen Schlüssel-, Daten- und Vektoreigenschaften.
  3. Konfigurieren Sie IEmbeddingGenerator, wenn Ihre Implementierung von der Anwendung generierte Einbettungen erfordert.
  4. Erstellen Sie das VectorStore der Implementierung, und rufen Sie dann ein typisiertes VectorStoreCollection<TKey, TRecord> ab.
  5. Stellen Sie sicher, dass die Sammlung vorhanden ist, aktualisieren oder fügen Sie Datensätze ein und rufen Sie SearchAsync mit 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

  1. Installieren Sie semantic-kernel und die Abhängigkeiten, die für Ihre gewählte Implementierung erforderlich sind.
  2. Definieren Sie ein Modell mit dem @vectorstoremodel Dekorateur, und identifizieren Sie seine Schlüssel-, Daten- und Vektorfelder.
  3. Erstellen Sie eine implementierungsspezifische Auflistung für dieses Modell.
  4. Stellen Sie sicher, dass die Sammlung vorhanden ist, und fügen Sie dann Datensätze per Upsert ein oder aktualisieren Sie sie.
  5. 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 .

Nächste Schritte