Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- Definujte datový model, který identifikuje klíč záznamu, datová pole a vektorová pole.
- Pokud úložiště vektorů negeneruje vkládání, nakonfigurujte generátor vkládání.
- Připojte se k úložišti vektorů a vyberte nebo vytvořte kolekci.
- Vygenerujte embeddingy a vložte nebo aktualizujte záznamy do kolekce.
- Vyhledejte kolekci pomocí textu nebo vektoru v závislosti na možnostech implementace.
- 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.VectorDataposkytuje běžná rozhraní API pro ukládání vektorů, shromažďování, záznam a vyhledávání. -
Microsoft.Extensions.AIposkytuje abstrakce, napříkladIEmbeddingGenerator, 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
- Přidejte
Microsoft.Extensions.VectorData.Abstractionsbalíček a balíček pro implementaci vámi zvoleného vektorového úložiště. - Definujte typ záznamu a identifikujte jeho klíč, data a vlastnosti vektoru.
- Nakonfigurujte
IEmbeddingGenerator, pokud vaše implementace vyžaduje embeddingy vytvářené aplikací. - Vytvořte implementaci
VectorStorea poté získejte typVectorStoreCollection<TKey, TRecord>. - Ujistěte se, že kolekce existuje, vložte nebo aktualizujte záznamy a zavolejte
SearchAsyncs 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
- Nainstalujte
semantic-kernela závislosti vyžadované vámi zvolenou implementací. - Definujte model s dekorátorem
@vectorstoremodela identifikujte jeho klíčová pole, data a vektorová pole. - Vytvořte pro tento model kolekci specifickou pro implementaci.
- Ujistěte se, že kolekce existuje, a poté aktualizujte existující záznamy a vložte nové.
- 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 .
Související scénáře pro Agent Framework
- Přidejte RAG k agentovi
- Přidejte sémantickou paměť historie chatu.
- Zvolte integraci zprostředkovatele kontextu.