Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- Definiera en datamodell som identifierar postnyckeln, datafälten och vektorfälten.
- Konfigurera en inbäddningsgenerator om vektorarkivet inte genererar inbäddningar.
- Anslut till ett vektorlager och välj eller skapa en samling.
- Generera embeddingar och infoga eller uppdatera poster i samlingen.
- Sök i samlingen med text eller en vektor, beroende på implementeringens funktioner.
- 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.VectorDatainnehåller vanliga API:er för vektorlagring, insamling, post och sökning. -
Microsoft.Extensions.AItillhandahåller abstraktioner, till exempelIEmbeddingGeneratorfö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
- Lägg till
Microsoft.Extensions.VectorData.Abstractionspaketet och paketet för implementeringen av din valda vektordatabas. - Definiera en posttyp och identifiera dess nyckel-, data- och vektoregenskaper.
- Konfigurera en
IEmbeddingGeneratorom implementeringen kräver programgenererade inbäddningar. - Skapa implementeringens
VectorStoreoch hämta sedan en typadVectorStoreCollection<TKey, TRecord>. - Kontrollera att samlingen finns, uppdatera eller infoga poster och anropa
SearchAsyncmed 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
- Installera
semantic-kerneloch de beroenden som krävs av den valda implementeringen. - Definiera en modell med dekoratören
@vectorstoremodeloch identifiera dess nyckel-, data- och vektorfält. - Skapa en implementeringsspecifik samling för den modellen.
- Se till att samlingen finns och infoga eller uppdatera sedan poster.
- 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.
Relaterade Scenarier för Agent Framework
- Lägg till RAG i en agent.
- Lägg till minneshistorik för semantisk chatt.
- Välj en integrering för kontextprovider.