Integrering av vektorlager

Vektorlager håller ihop data och dess vektorbäddningar så att program kan hitta poster med semantisk likhet. I Agent Framework-program kan du använda vektorlager för att hämta jordningsdata för RAG (Retrieval Augmented Generation) eller för att lagra information som en agent kan återkalla senare.

Abstraktioner för vektorlager tillhandahåller gemensamma operationer för samlingar och poster, så att programmets logik hålls åtskild från den specifika implementeringen av vektorlagret. Du kan till exempel börja med en lokal implementering och växla till en hanterad tjänst med minimala ändringar.

Så här fungerar integreringar av vektorlager

Ett vanligt arbetsflöde för vektorlager innehåller följande steg:

  1. Definiera en datamodell som identifierar postnyckeln, datafälten och vektorfälten.
  2. Konfigurera en inbäddningsgenerator om vektorarkivet inte genererar inbäddningar.
  3. Anslut till ett vektorlager och välj eller skapa en samling.
  4. Generera embeddingar och infoga eller uppdatera poster i samlingen.
  5. Sök i samlingen med text eller en vektor, beroende på implementeringens funktioner.
  6. Skicka relevanta sökresultat till en agent som kontext eller exponera sökning som ett agentverktyg.

stöd för .NET vektorarkiv

Agent Framework använder .NET AI-ekosystemets fristående abstraktioner:

  • Microsoft.Extensions.VectorData innehåller vanliga API:er för vektorlagring, insamling, post och sökning.
  • Microsoft.Extensions.AI tillhandahåller abstraktioner, till exempel IEmbeddingGenerator för att generera inbäddningar oberoende av en specifik modellprovider.

Om en Agent Framework-komponent accepterar ett vektorlager kan du tillhandahålla en kompatibel Microsoft.Extensions.VectorData implementering. Varje databasimplementering distribueras separat från abstraktionspaketet.

Kärnabstraktioner

Abstraktion Purpose
VectorStore Tillhandahåller operationer för samlingar och skapar typade samlingsinstanser.
VectorStoreCollection<TKey, TRecord> Skapar eller tar bort en samling och infogar eller uppdaterar, hämtar eller tar bort posterna i den.
IVectorSearchable<TRecord> Söker efter vektor eller text när en inbäddningsgenerator eller inbäddningsfunktion på databassidan är tillgänglig.

Tillgängliga implementeringar av vektorlager

Följande implementeringar använder de vanliga .NET vektorlagringsabstraktioner. Granska dokumentationen för varje implementering för paketversioner, datatyper som stöds och tjänstspecifika begränsningar.

Implementation Availability Använder en databas-SDK som stöds officiellt Underhållare eller leverantör
Azure AI-sökning Tillgängligt Ja Microsoft
Azure Cosmos DB för MongoDB vCore Tillgängligt Ja Microsoft
Azure Cosmos DB för NoSQL Tillgängligt Ja Microsoft
Couchbase Tillgängligt Ja Couchbase
Elasticsearch Tillgängligt Ja Elastic
Chroma Planerat Ej tillämpligt Ej tillämpligt
Minnesinternt Tillgängligt Ej tillämpligt Microsoft
Milvus Planerat Ej tillämpligt Ej tillämpligt
MongoDB Tillgängligt Ja Microsoft
Neon Serverless Postgres Använda Postgres-implementeringen Ja Microsoft
Oracle Tillgängligt Ja Oracle
Tallkotte Tillgängligt No Microsoft
Postgres Tillgängligt Ja Microsoft
Qdrant Tillgängligt Ja Microsoft
Redis Tillgängligt Ja Microsoft
SQL Server Tillgängligt Ja Microsoft
SQLite Tillgängligt Ja Microsoft
Flyktig i minnet Inaktuell; använda implementeringen i minnet Ej tillämpligt Microsoft
Viaviate Tillgängligt Ja Microsoft

Important

Implementeringar av vektorlager tillhandahålls av flera utvecklare. Utvärdera varje implementerings kvalitet, licensiering, supportprincip och versionskompatibilitet innan du använder den. Vissa implementeringar använder databas-SDK:er som databasprovidern inte officiellt stöder.

Get started

  1. Lägg till Microsoft.Extensions.VectorData.Abstractions paketet och paketet för implementeringen av din valda vektordatabas.
  2. Definiera en posttyp och identifiera dess nyckel-, data- och vektoregenskaper.
  3. Konfigurera en IEmbeddingGenerator om implementeringen kräver programgenererade inbäddningar.
  4. Skapa implementeringens VectorStore och hämta sedan en typad VectorStoreCollection<TKey, TRecord>.
  5. Kontrollera att samlingen finns, uppdatera eller infoga poster och anropa SearchAsync med text eller en vektor.

En fullständig introduktion till datamodeller, inmatning, inbäddningar och sökning finns i Vektordatabaser för .NET AI-appar.

stöd för Python vektorarkiv

Agent Framework använder abstraktioner och implementeringar av vektorlager från Semantic Kernel för Python. Semantic Kernel samlingar tillhandahåller vanliga åtgärder för att skapa samlingar, utöka och hämta poster och köra vektor-, nyckelords- eller hybridsökningar när den valda implementeringen stöder dem.

Varning

Funktionaliteten i Semantic Kernel Vector Store för Python är i versionskandidatfas. Begränsade icke-bakåtkompatibla ändringar kan förekomma före allmän tillgänglighet.

Tillgängliga implementeringar av vektorlager

Implementation Availability Använder en databas-SDK som stöds officiellt Underhållare eller leverantör
Azure AI-sökning Tillgängligt Ja Microsoft Semantic Kernel projekt
Azure Cosmos DB för MongoDB vCore Tillgängligt Ja Microsoft Semantic Kernel projekt
Azure Cosmos DB för NoSQL Tillgängligt Ja Microsoft Semantic Kernel projekt
Chroma Tillgängligt Ja Microsoft Semantic Kernel projekt
Elasticsearch Planerat Ej tillämpligt Ej tillämpligt
Faiss Tillgängligt Ja Microsoft Semantic Kernel projekt
Minnesinternt Tillgängligt Ej tillämpligt Microsoft Semantic Kernel projekt
MongoDB Tillgängligt Ja Microsoft Semantic Kernel projekt
Neon Serverless Postgres Använda Postgres-implementeringen Ja Microsoft Semantic Kernel projekt
Oracle Tillgängligt Ja Oracle
Tallkotte Tillgängligt Ja Microsoft Semantic Kernel projekt
Postgres Tillgängligt Ja Microsoft Semantic Kernel projekt
Qdrant Tillgängligt Ja Microsoft Semantic Kernel projekt
Redis Tillgängligt Ja Microsoft Semantic Kernel projekt
SQL Server Tillgängligt pyodbc Microsoft Semantic Kernel projekt
SQLite Planerat Ej tillämpligt Microsoft Semantic Kernel projekt
Viaviate Tillgängligt Ja Microsoft Semantic Kernel projekt

Important

Implementeringar av vektorlager tillhandahålls av flera utvecklare. Utvärdera varje implementerings kvalitet, licensiering, supportprincip och versionskompatibilitet innan du använder den.

Get started

  1. Installera semantic-kernel och de beroenden som krävs av den valda implementeringen.
  2. Definiera en modell med dekoratören @vectorstoremodel och identifiera dess nyckel-, data- och vektorfält.
  3. Skapa en implementeringsspecifik samling för den modellen.
  4. Se till att samlingen finns och infoga eller uppdatera sedan poster.
  5. Använd samlingens sök-API:er för att hämta poster för ditt program.

För implementeringskonfiguration och fullständiga exempel, se Semantic Kernel Vector Stores.

Stöd för Go-vektordatabaser

Vektorlagringsintegrering är ännu inte tillgängligt i Agent Framework för Go. Se Agent Framework Go-lagringsplatsen för den senaste statusen.

Nästa steg