跳到主要內容
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 容器無縫集成

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