Integrace vektorových úložiště

Vektor ukládá data a jejich vektorové vkládání dohromady, aby aplikace mohly najít záznamy podle sémantické podobnosti. V aplikacích využívajících Agent Framework můžete pomocí vektorových úložišť získávat podkladová data pro generování rozšířené o vyhledávání (RAG) nebo ukládat informace, které si agent může později vybavit.

Abstrakce vektorového úložiště poskytují běžné operace pro kolekce a záznamy, přičemž logika aplikace je oddělená od implementace konkrétního úložiště vektorů. Můžete například začít místní implementací a přepnout na spravovanou službu s minimálními změnami.

Jak fungují integrace vektorových úložiště

Typický pracovní postup úložiště vektorů zahrnuje tyto kroky:

  1. Definujte datový model, který identifikuje klíč záznamu, datová pole a vektorová pole.
  2. Pokud úložiště vektorů negeneruje vkládání, nakonfigurujte generátor vkládání.
  3. Připojte se k úložišti vektorů a vyberte nebo vytvořte kolekci.
  4. Vygenerujte embeddingy a vložte nebo aktualizujte záznamy do kolekce.
  5. Vyhledejte kolekci pomocí textu nebo vektoru v závislosti na možnostech implementace.
  6. Předejte agentovi relevantní výsledky vyhledávání jako kontext nebo zpřístupněte vyhledávání jako nástroj agenta.

podpora úložiště vektorů .NET

Agent Framework používá samostatné abstrakce ekosystému AI .NET:

  • Microsoft.Extensions.VectorData poskytuje běžná rozhraní API pro ukládání vektorů, shromažďování, záznam a vyhledávání.
  • Microsoft.Extensions.AI poskytuje abstrakce, například IEmbeddingGenerator, pro generování embeddingů nezávisle na konkrétním poskytovateli modelu.

Kde komponenta Agent Framework přijímá úložiště vektorů, můžete zadat kompatibilní Microsoft.Extensions.VectorData implementaci. Každá implementace databáze se distribuuje odděleně od balíčku abstrakcí.

Základní abstrakce

Abstrakce Purpose
VectorStore Poskytuje operace napříč kolekcemi a vytváří typové instance kolekce.
VectorStoreCollection<TKey, TRecord> Vytváří nebo odstraňuje kolekci a vkládá nebo aktualizuje, načítá či odstraňuje její záznamy.
IVectorSearchable<TRecord> Vyhledá záznamy podle vektoru nebo textu, pokud je k dispozici funkce vkládání generátoru nebo vkládání na straně databáze.

Dostupné implementace úložiště vektorů

Následující implementace používají běžné abstrakce úložiště vektorů .NET. Projděte si dokumentaci každé implementace týkající se verzí balíčků, podporovaných datových typů a omezení specifických pro službu.

Implementace Availability Používá oficiálně podporovanou databázovou sadu SDK. Správce nebo dodavatel
Azure AI Vyhledávač Available Ano Microsoft
Azure Cosmos DB pro MongoDB vCore Available Ano Microsoft
Azure Cosmos DB pro NoSQL Available Ano Microsoft
Couchbase Available Ano Couchbase
Elasticsearch Available Ano Elastic
Chroma Naplánováno Není relevantní Není relevantní
V paměti Available Není relevantní Microsoft
Milvus Naplánováno Není relevantní Není relevantní
MongoDB Available Ano Microsoft
Neon Serverless Postgres Použití implementace Postgres Ano Microsoft
Oracle Available Ano Oracle
Borová šiška Available No Microsoft
Postgres Available Ano Microsoft
Qdrant Available Ano Microsoft
Redis Available Ano Microsoft
SQL Server Available Ano Microsoft
SQLite Available Ano Microsoft
Volatilní v operační paměti Zastaralé; použijte implementaci v paměti Není relevantní Microsoft
Weaviate Available Ano Microsoft

Important

Implementace vektorového úložiště pocházejí z více správců. Před použitím každé implementace vyhodnoťte kvalitu, licencování, zásady podpory a kompatibilitu verzí. Některé implementace používají databázové sady SDK, které poskytovatel databáze oficiálně nepodporuje.

Začínáme

  1. Přidejte Microsoft.Extensions.VectorData.Abstractions balíček a balíček pro implementaci vámi zvoleného vektorového úložiště.
  2. Definujte typ záznamu a identifikujte jeho klíč, data a vlastnosti vektoru.
  3. Nakonfigurujte IEmbeddingGenerator, pokud vaše implementace vyžaduje embeddingy vytvářené aplikací.
  4. Vytvořte implementaci VectorStorea poté získejte typ VectorStoreCollection<TKey, TRecord>.
  5. Ujistěte se, že kolekce existuje, vložte nebo aktualizujte záznamy a zavolejte SearchAsync s textem nebo vektorem.

Úplný úvod k datovým modelům, příjmu dat, vkládání a vyhledávání najdete v tématu Vektorové databáze pro .NET aplikace AI.

podpora úložiště vektorů Python

Agent Framework používá abstrakce a implementace vektorového úložiště z Sémantické jádro pro Python. Sémantické jádro kolekce poskytují běžné operace pro vytváření kolekcí, upsertování a načítání záznamů a spouštění vektorů, klíčových slov nebo hybridních hledání, pokud je vybraná implementace podporuje.

Warning

Funkce vektorového úložiště Sémantické jádro pro Python je ve fázi kandidátské verze. Před obecnou dostupností může dojít k omezeným změnám způsobujícím chybu.

Dostupné implementace úložiště vektorů

Implementace Availability Používá oficiálně podporovanou databázovou sadu SDK. Správce nebo dodavatel
Azure AI Vyhledávač Available Ano projekt Microsoft Sémantické jádro
Azure Cosmos DB pro MongoDB vCore Available Ano projekt Microsoft Sémantické jádro
Azure Cosmos DB pro NoSQL Available Ano projekt Microsoft Sémantické jádro
Sytost barvy Available Ano projekt Microsoft Sémantické jádro
Elasticsearch Naplánováno Není relevantní Není relevantní
Faiss Available Ano projekt Microsoft Sémantické jádro
V paměti Available Není relevantní projekt Microsoft Sémantické jádro
MongoDB Available Ano projekt Microsoft Sémantické jádro
Neon Serverless Postgres Použití implementace Postgres Ano projekt Microsoft Sémantické jádro
Oracle Available Ano Oracle
Borová šiška Available Ano projekt Microsoft Sémantické jádro
Postgres Available Ano projekt Microsoft Sémantické jádro
Qdrant Available Ano projekt Microsoft Sémantické jádro
Redis Available Ano projekt Microsoft Sémantické jádro
SQL Server Available pyodbc projekt Microsoft Sémantické jádro
SQLite Naplánováno Není relevantní projekt Microsoft Sémantické jádro
Weaviate Available Ano projekt Microsoft Sémantické jádro

Important

Implementace vektorového úložiště pocházejí z více správců. Před použitím každé implementace vyhodnoťte kvalitu, licencování, zásady podpory a kompatibilitu verzí.

Začínáme

  1. Nainstalujte semantic-kernel a závislosti vyžadované vámi zvolenou implementací.
  2. Definujte model s dekorátorem @vectorstoremodel a identifikujte jeho klíčová pole, data a vektorová pole.
  3. Vytvořte pro tento model kolekci specifickou pro implementaci.
  4. Ujistěte se, že kolekce existuje, a poté aktualizujte existující záznamy a vložte nové.
  5. K načtení záznamů pro vaši aplikaci použijte rozhraní API pro vyhledávání kolekce.

Informace o nastavení implementace a úplných příkladech najdete v tématu Sémantické jádro Vector Stores.

Podpora úložiště vektorů Go

Integrace vektorového úložiště ještě není dostupná v rozhraní Agent Framework for Go. Nejnovější stav najdete v úložišti Agent Framework Go .

Další kroky