共用方式為


.NET + AI 的向量資料庫

向量資料庫專為儲存和管理向量內嵌而設計。 內嵌是非數值資料的數值表示法,其可保留語意意義。 字組、文件、影像、音訊和其他資料類型都可以向量化。 您可以使用內嵌來協助 AI 模型了解輸入的意義,以便其可以執行比較和轉換,例如摘要文字、尋找內容相關的資料或從文字描述建立影像。

例如,您可以使用向量資料庫:

  • 根據內容、主題、情緒和樣式,識別類似的影像、文件和歌曲。
  • 根據特性、特徵和使用者群組,識別類似的產品。
  • 根據使用者喜好設定,建議內容、產品或服務。
  • 從大型選擇集區中識別最佳的潛在選項,以符合複雜需求。
  • 識別與主要或正常模式不同的資料異常或詐騙活動。

向量資料庫提供向量搜尋功能,根據資料特性尋找類似的項目,而不是透過屬性欄位的精確比對。 向量搜尋的運作方式是分析您使用 AI 內嵌模型所建立資料的向量表示法,例如 Azure OpenAI 內嵌模型。 搜尋流程會測量資料向量與查詢向量之間的距離。 最接近查詢向量的資料向量就是所找到語意最類似的資料向量。

某些服務,例如 Azure Cosmos DB for MongoDB 虛擬核心,為您的資料提供原生向量搜尋功能。 您可以使用 Azure AI 搜尋服務等服務來編製所儲存資料的索引,搭配向量搜尋功能來增強其他資料庫,該服務可以掃描您的資料並編製其索引,以提供向量搜尋功能。

搭配 .NET 和 OpenAI 的向量搜尋工作流程

在搭配 Azure OpenAI 的 RAG 模式工作流程中,向量資料庫及其搜尋功能特別有用。 此模式可讓您透過資料的額外語意豐富知識來擴增或增強 AI 模型。 使用向量資料庫的常見 AI 工作流程可能包含下列步驟:

  1. 使用 OpenAI 內嵌模型,為您的資料建立內嵌。
  2. 在向量資料庫或搜尋服務中儲存內嵌並編製其索引。
  3. 將來自應用程式的使用者提示轉換成內嵌。
  4. 跨資料執行向量搜尋,將使用者提示內嵌比作內嵌資料庫。
  5. 使用 GPT-35 或 GPT-4 等語言模型,從向量搜尋結果中組合使用者友好的完成。

如需此流程的實作範例,請造訪在 .NET 應用程式中使用向量搜尋搭配 RAG 來實作 Azure OpenAI 教學課程。

RAG 模式的其他優點包括:

  • 從 AI 模型產生內容相關且精確的使用者提示回應。
  • 克服 LLM 語彙基元限制 - 透過資料庫向量搜尋完成繁重的工作。
  • 降低經常微調更新資料的成本。

可用的向量資料庫解決方案

AI 應用程式通常會使用資料向量資料庫和服務來改善相關性並提供自訂功能。 其中許多服務提供適用於 .NET 的原生 SDK,而其他服務則提供 REST 服務,您可以透過自訂程式碼連線。 語意核心會提供可延伸的元件模型,讓您無需了解每個 SDK 即可使用不同的向量存放區。

語意核心會提供下列向量資料庫與服務的連接器:

向量服務 語意核心連接器 .NET SDK
Azure AI 搜尋服務 Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB for MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL 伺服器 Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Database Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma NA
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
MongoDB Atlas 向量搜尋 Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone REST API
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Weaviate Microsoft.SemanticKernel.Connectors.Weaviate REST API

請瀏覽每個個別服務的文件,以探索 .NET SDK 和 API 支援。