跳到主要内容
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 容器无缝集成

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。