向量儲存整合

向量儲存庫將資料及其向量嵌入整合在一起,使應用程式能依語意相似性尋找紀錄。 在 Agent Framework 應用程式中,您可以使用向量儲存器來取得基礎資料以進行檢索增強生成(RAG),或儲存代理日後可回憶的資訊。

向量儲存抽象提供集合與記錄的常見操作,將應用程式邏輯與特定的向量儲存實作分開。 例如,你可以從本地實作開始,然後以最小的改動切換到託管服務。

向量儲存整合的運作方式

典型的向量儲存工作流程包含以下步驟:

  1. 定義一個資料模型,用以識別記錄鍵、資料欄位和向量欄位。
  2. 如果向量儲存庫無法產生嵌入,請設定嵌入產生器。
  3. 連接到向量商店,選擇或建立一個集合。
  4. 產生嵌入向量,並將記錄插入或更新至集合中。
  5. 根據實作的功能,可以用文字或向量搜尋該收藏。
  6. 將相關搜尋結果傳遞給代理,作為上下文,或將搜尋功能提供為代理工具。

.NET 向量儲存支援

代理框架採用 .NET AI 生態系統的獨立抽象:

當 Agent Framework 元件接受向量儲存時,你可以提供相容 Microsoft.Extensions.VectorData 的實作。 每個資料庫實作皆與抽象套件分開分發。

核心抽象概念

抽象 Purpose
VectorStore 提供跨集合操作並建立型別集合實例。
VectorStoreCollection<TKey, TRecord> 建立或刪除集合,並對其記錄進行更新、檢索或刪除。
IVectorSearchable<TRecord> 當有嵌入產生器或資料庫端嵌入功能時,會依向量或文字搜尋紀錄。

可用的向量儲存實作

以下實作使用常見的 .NET 向量儲存抽象。 請檢視每個實作的文件,了解套件版本、支援的資料型態及服務特定限制。

Implementation Availability 使用官方支援的資料庫 SDK 維護人員或廠商
Azure AI 搜尋服務 Available Yes Microsoft
Azure Cosmos DB 用於 MongoDB vCore Available Yes Microsoft
Azure Cosmos DB 用於 NoSQL Available Yes Microsoft
Couchbase Available Yes Couchbase
Elasticsearch Available Yes Elastic
Chroma 規劃中 不適用 不適用
記憶體內 Available 不適用 Microsoft
Milvus 規劃中 不適用 不適用
MongoDB Available Yes Microsoft
Neon Serverless PostgreSQL 使用 Postgres 實作 Yes Microsoft
Oracle Available Yes Oracle
Pinecone Available No Microsoft
Postgres Available Yes Microsoft
Qdrant Available Yes Microsoft
雷迪斯 Available Yes Microsoft
SQL 伺服器 Available Yes Microsoft
SQLite Available Yes Microsoft
記憶體中的揮發性 已棄用;請改用記憶體內實作 不適用 Microsoft
Weaviate Available Yes Microsoft

Important

向量儲存實作由多位維護者提供。 在使用前,請評估每個實作的品質、授權、支援政策及版本相容性。 有些實作使用了資料庫 SDK,但資料庫提供者並未正式支援。

開始

  1. 加入 Microsoft.Extensions.VectorData.Abstractions 套件,以及您所選向量存放區實作的套件。
  2. 定義一個記錄類型,並識別其鍵、資料及向量屬性。
  3. 如果您的實作需要由應用程式產生的嵌入,請設定 IEmbeddingGenerator
  4. 建立實作的 VectorStore,然後取得一個具型別的 VectorStoreCollection<TKey, TRecord>
  5. 確保該集合存在,更新記錄,並用文字或向量呼叫 SearchAsync

欲了解資料模型、資料擷取、嵌入與搜尋的完整介紹,請參閱 .NET AI 應用程式的向量資料庫

Python 向量儲存支援

Agent Framework 採用 語意核心 for Python 的向量儲存抽象與實作。 語意核心 集合提供常見的操作,用於建立集合、上傳與檢索記錄,以及在所選實作支援時執行向量、關鍵字或混合搜尋。

Warning

適用於 Python 的 語意核心 向量存放區功能目前為候選版本。 在正式推出之前,可能會發生少量破壞性變更。

可用的向量儲存實作

Implementation Availability 使用官方支援的資料庫 SDK 維護人員或廠商
Azure AI 搜尋服務 Available Yes Microsoft 語意核心計畫
Azure Cosmos DB 用於 MongoDB vCore Available Yes Microsoft 語意核心計畫
Azure Cosmos DB 用於 NoSQL Available Yes Microsoft 語意核心計畫
色度 Available Yes Microsoft 語意核心計畫
Elasticsearch 規劃中 不適用 不適用
Faiss Available Yes Microsoft 語意核心計畫
記憶體內 Available 不適用 Microsoft 語意核心計畫
MongoDB Available Yes Microsoft 語意核心計畫
Neon Serverless PostgreSQL 使用 Postgres 實作 Yes Microsoft 語意核心計畫
Oracle Available Yes Oracle
Pinecone Available Yes Microsoft 語意核心計畫
Postgres Available Yes Microsoft 語意核心計畫
Qdrant Available Yes Microsoft 語意核心計畫
雷迪斯 Available Yes Microsoft 語意核心計畫
SQL 伺服器 Available pyodbc Microsoft 語意核心計畫
SQLite 規劃中 不適用 Microsoft 語意核心計畫
Weaviate Available Yes Microsoft 語意核心計畫

Important

向量儲存實作由多位維護者提供。 在使用前,請評估每個實作的品質、授權、支援政策及版本相容性。

開始

  1. 安裝 semantic-kernel 以及你所選的實作所需的相依套件。
  2. @vectorstoremodel 裝飾器定義模型,並識別其鍵、資料和向量場。
  3. 為該模型建立一個實作專屬的集合。
  4. 請先確認該集合存在,然後對記錄執行插入或更新操作。
  5. 使用收藏的搜尋 API 來取得申請所需的紀錄。

關於實作設定與完整範例,請參見 語意核心 向量儲存庫

Go 向量儲存支援

Agent Framework for Go 尚未提供向量商店整合功能。 最新狀態請參閱 Agent Framework Go 倉庫

下一步