跳到主要內容
AI News HubLIVE
站內改寫1 分鐘閱讀

程式碼即架構:Weaviate 託管型 C# 客戶端

文章摘要

Weaviate 託管型 .NET 客戶端為 C# 開發者帶來了類似 Entity Framework Core 的體驗,透過屬性驅動架構、型別安全查詢和自動遷移,簡化了向量資料庫的使用。

程式碼即架構:Weaviate 託管型 C# 客戶端
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

Weaviate 託管型 .NET 客戶端(Technical Preview)為 C# 開發者提供了一種全新的方式與 Weaviate 向量資料庫互動。它受 Entity Framework Core 啟發,允許你透過 C# 屬性直接在模型類上定義集合架構,無需字串配置或單獨的配置檔案。

例如,一個包含標題、內容、來源標籤和自由標籤的文件類可以這樣定義:

[WeaviateCollection("Document")]
public class Document
{
    [WeaviateUUID]
    public Guid Id { get; set; }

    [Property]
    [Index(Filterable = true, Searchable = true)]
    public string Title { get; set; }

    [Property]
    [Index(Searchable = true)]
    [Tokenization(PropertyTokenization.Word)]
    public string Content { get; set; }

    // ... 其他屬性與向量定義
}

透過 [Vector] 屬性可以定義命名向量(如標題向量和內容向量),實現精確匹配與深度語義搜尋。建立集合只需一行 await client.Collections.CreateFromClass();。

客戶端還支援跨集合引用(透過 [Reference] 屬性)、自動批次插入(自動處理依賴順序)、以及型別安全的查詢語法:

var results = await context.Documents
    .Query()
    .NearText("zero downtime deployment strategies")
    .Where(d => d.Source == "blog" && d.Tags.ContainsAny(["kubernetes"]))
    .WithMetadata()
    .Limit(5)
    .Execute();

當架構需要演進時,CheckMigrate() 和 Migrate() 方法提供安全、僅追加的遷移計劃,避免破壞性變更。此外,透過 [Generative] 屬性即可啟用 RAG(檢索增強生成),在查詢結果上自動生成摘要或整合回答。

對於需要隔離資料的場景,多租戶支援允許透過 ForTenant() 方法以同一模型類隔離資料。在 ASP.NET Core 中,可透過 AddWeaviateContext 註冊上下文,並可選擇 AutoMigrate 選項在啟動時自動應用遷移。

如果屬性無法滿足高階需求(如排除集合名稱參與向量化),ConfigMethod 提供了命令式配置的“逃生艙”。

總之,Weaviate 託管型 C# 客戶端讓 .NET 開發者以熟悉的模式構建語義搜尋和 AI 功能,無需樣板程式碼。它已在 NuGet 上釋出,開源在 GitHub。

展開要點與分析

文章情報

工程師進階

要點

  • 使用 C# 屬性定義集合架構,無需字串配置
  • 支援型別安全的 LINQ 風格向量搜尋與混合搜尋
  • 提供安全遷移、RAG 和多租戶功能
  • 與 ASP.NET Core DI 容器無縫整合

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。