Vectoropslagintegraties

Vectorarchieven bewaren gegevens en de bijbehorende vector-insluitingen, zodat toepassingen records kunnen vinden op basis van semantische overeenkomsten. In Agent Framework-toepassingen kunt u vectorarchieven gebruiken om grondgegevens op te halen voor RAG (Retrieval Augmented Generation) of om informatie op te slaan die een agent later kan intrekken.

Abstracties van vectoropslag bieden algemene bewerkingen voor verzamelingen en records, waardoor uw toepassingslogica gescheiden blijft van de implementatie van het specifieke vectorarchief. U kunt bijvoorbeeld beginnen met een lokale implementatie en overschakelen naar een beheerde service met minimale wijzigingen.

Hoe vector store-integraties werken

Een typische vector store-werkstroom omvat deze stappen:

  1. Definieer een gegevensmodel dat de recordsleutel, gegevensvelden en vectorvelden identificeert.
  2. Configureer een insluitingsgenerator als het vectorarchief geen insluitingen genereert.
  3. Maak verbinding met een vectorarchief en selecteer of maak een verzameling.
  4. Genereer embeddings en upsert records in de collectie.
  5. Zoek in de verzameling met tekst of een vector, afhankelijk van de mogelijkheden van de implementatie.
  6. Geef relevante zoekresultaten door aan een agent als context of zoekfunctie beschikbaar maken als agenthulpprogramma.

ondersteuning voor .NET vector store

Agent Framework maakt gebruik van de zelfstandige abstracties van het .NET AI-ecosysteem:

Wanneer een Agent Framework-onderdeel een vectorarchief accepteert, kunt u een compatibele Microsoft.Extensions.VectorData implementatie leveren. Elke database-implementatie wordt afzonderlijk van het abstractiespakket gedistribueerd.

Kernabstracties

Abstractie Purpose
VectorStore Biedt bewerkingen in verzamelingen en maakt getypte verzamelingexemplaren.
VectorStoreCollection<TKey, TRecord> Hiermee maakt of verwijdert u een verzameling en voegt u records toe of werkt u deze bij, haalt u ze op of verwijdert u ze.
IVectorSearchable<TRecord> Zoekt records op basis van vectoren of tekst wanneer een embeddinggenerator of een databasezijdige embeddingmogelijkheid beschikbaar is.

Beschikbare implementaties voor vectoropslag

In de volgende implementaties worden de algemene abstracties van .NET vectoropslag gebruikt. Bekijk de documentatie van elke implementatie voor pakketversies, ondersteunde gegevenstypen en servicespecifieke beperkingen.

Implementation Availability Maakt gebruik van een officieel ondersteunde database-SDK Onderhouder of leverancier
Azure AI Zoeken Beschikbaar Yes Microsoft
Azure Cosmos DB voor MongoDB vCore Beschikbaar Yes Microsoft
Azure Cosmos DB voor NoSQL Beschikbaar Yes Microsoft
Couchbase Beschikbaar Yes Couchbase
Elasticsearch Beschikbaar Yes Elastic
Chroma Gepland Niet van toepassing Niet van toepassing
In-memory Beschikbaar Niet van toepassing Microsoft
Milvus Gepland Niet van toepassing Niet van toepassing
MongoDB Beschikbaar Yes Microsoft
Neon Serverless Postgres De Postgres-implementatie gebruiken Yes Microsoft
Oracle Beschikbaar Yes Oracle
Dennenappel Beschikbaar No Microsoft
Postgres Beschikbaar Yes Microsoft
Qdrant Beschikbaar Yes Microsoft
Redis Beschikbaar Yes Microsoft
SQL Server Beschikbaar Yes Microsoft
SQLite Beschikbaar Yes Microsoft
Vluchtig geheugen Afgeschaft; de in-memory implementatie gebruiken Niet van toepassing Microsoft
Weaviate Beschikbaar Yes Microsoft

Important

Vector Store-implementaties zijn afkomstig van meerdere onderhouders. Evalueer de kwaliteit, licentieverlening, ondersteuningsbeleid en versiecompatibiliteit van elke implementatie voordat u deze gebruikt. Sommige implementaties maken gebruik van database-SDK's die de databaseprovider niet officieel ondersteunt.

Get started

  1. Voeg de Microsoft.Extensions.VectorData.Abstractions pakket en het pakket voor de door jou gekozen implementatie van de vectorstore.
  2. Definieer een recordtype en identificeer de sleutel, gegevens en vectoreigenschappen.
  3. Configureer een IEmbeddingGenerator als uw implementatie toepassingsgegenereerde insluitingen vereist.
  4. Maak de VectorStore van de implementatie en haal vervolgens een getypeerde VectorStoreCollection<TKey, TRecord> op.
  5. Zorg ervoor dat de verzameling bestaat, voeg records in of werk ze bij, en roep SearchAsync aan met tekst of een vector.

Zie Vector-databases voor .NET AI-apps voor een volledige inleiding tot gegevensmodellen, opname, insluitingen en zoeken.

ondersteuning voor Python vectoropslag

Agent Framework maakt gebruik van de vectorarchiefabstracties en -implementaties van Semantic Kernel voor Python. Verzamelingen in Semantic Kernel bieden standaardbewerkingen voor het maken van verzamelingen, het invoegen of bijwerken en ophalen van records, en het uitvoeren van vector-, trefwoord- of hybride zoekopdrachten wanneer de geselecteerde implementatie deze ondersteunt.

Warning

Semantic Kernel Vector Store-functionaliteit voor Python is een releasekandidaat. Er kunnen beperkte wijzigingen optreden die fouten veroorzaken voordat algemene beschikbaarheid plaatsvindt.

Beschikbare implementaties voor vectoropslag

Implementation Availability Maakt gebruik van een officieel ondersteunde database-SDK Onderhouder of leverancier
Azure AI Zoeken Beschikbaar Yes Microsoft Semantic Kernel project
Azure Cosmos DB voor MongoDB vCore Beschikbaar Yes Microsoft Semantic Kernel project
Azure Cosmos DB voor NoSQL Beschikbaar Yes Microsoft Semantic Kernel project
Chroma Beschikbaar Yes Microsoft Semantic Kernel project
Elasticsearch Gepland Niet van toepassing Niet van toepassing
Faiss Beschikbaar Yes Microsoft Semantic Kernel project
In-memory Beschikbaar Niet van toepassing Microsoft Semantic Kernel project
MongoDB Beschikbaar Yes Microsoft Semantic Kernel project
Neon Serverless Postgres De Postgres-implementatie gebruiken Yes Microsoft Semantic Kernel project
Oracle Beschikbaar Yes Oracle
Dennenappel Beschikbaar Yes Microsoft Semantic Kernel project
Postgres Beschikbaar Yes Microsoft Semantic Kernel project
Qdrant Beschikbaar Yes Microsoft Semantic Kernel project
Redis Beschikbaar Yes Microsoft Semantic Kernel project
SQL Server Beschikbaar pyodbc Microsoft Semantic Kernel project
SQLite Gepland Niet van toepassing Microsoft Semantic Kernel project
Weaviate Beschikbaar Yes Microsoft Semantic Kernel project

Important

Vector Store-implementaties zijn afkomstig van meerdere onderhouders. Evalueer de kwaliteit, licentieverlening, ondersteuningsbeleid en versiecompatibiliteit van elke implementatie voordat u deze gebruikt.

Get started

  1. Installeer semantic-kernel en de afhankelijkheden die vereist zijn voor de door u gekozen implementatie.
  2. Definieer een model met de @vectorstoremodel decorator en identificeer de sleutel-, gegevens- en vectorvelden.
  3. Maak een implementatiespecifieke verzameling voor dat model.
  4. Zorg ervoor dat de verzameling bestaat en voeg vervolgens records in of werk ze bij.
  5. Gebruik de zoek-API's van de verzameling om records voor uw toepassing op te halen.

Zie Semantic Kernel Vector Stores voor het instellen van de implementatie en volledige voorbeelden.

Ondersteuning voor Go Vector Store

Vector Store-integratie is nog niet beschikbaar in Agent Framework voor Go. Zie de opslagplaats Agent Framework Go voor de meest recente status.

Volgende stappen