ShaoHua 4cee62d652
All checks were successful
SonarQube Code Quality Scan / scan (push) Successful in 32s
fix workflow: remove github dependency + duplicate scan
2025-12-05 17:07:00 +08:00
2025-10-17 02:46:25 +08:00
2025-10-17 02:46:25 +08:00

MilvusDemo

一个使用 C#.NET 9Milvus.Client 的极简示例项目,演示:

  • 初始化集合(存在则删除并重建)
  • 创建向量索引与加载集合
  • 批量插入随机向量
  • 执行向量相似度搜索
  • 通过内置测试流程验证调用链

模块划分

  • App入口层Program.cs
    • 提供交互式入口:输入 1=实际连接 Milvus 执行;输入 2=运行内置测试(无需 Milvus 实例)。
  • Core/Service业务层MilvusService.cs
    • 封装与 Milvus 的连接、集合初始化、索引创建/加载、数据插入与搜索。
  • Test Harness测试层TestRunner.csMilvusServiceTests.cs
    • TestRunner 负责编排测试流程;MilvusServiceTests 提供无外部依赖的模拟测试(验证调用链与参数)。

环境要求

  • .NET SDK 9.0+
  • 仅当选择“实际运行(选项 1”时需要可访问的 Milvus Server默认 localhost:19530)。

快速开始

  1. 构建
    dotnet build
    
  2. 运行(测试模式,无需 Milvus
    • PowerShell
      echo 2 | dotnet run
      
    • Bash
      echo 2 | dotnet run
      
  3. 运行(实际连接 Milvus
    • 确保本地或可达的 Milvus 实例运行在 localhost:19530
    • 程序启动后输入 1

在解决方案根目录运行(多项目)

本仓库包含多个示例项目。可在解决方案根目录使用 --project 指定要运行的项目:

# 运行 Milvus 示例(默认交互菜单 1/2
dotnet run --project MilvusDemo

# 运行语音到函数示例
dotnet run --project VoiceToFunctionDemo

启动 Milvus可选

若需在本机快速启动 Milvus可参考官方快速开始或使用 Docker示例

# 仅供参考,建议按官方文档选择合适的版本与持久化配置
docker pull milvusdb/milvus:latest
docker run -d --name milvus-standalone -p 19530:19530 milvusdb/milvus:latest

文档:https://milvus.io/docs查看“Get Started / Install”

主要参数(实际运行模式)

  • 主机与端口:localhost:19530
  • 集合名:csharp_demo_collection
  • 向量维度:8

提示:若需修改连接地址或集合名,请在代码中相应位置调整(例如在连接初始化与集合定义处)。

文件说明

  • Program.cs:控制台入口与菜单;调用服务或测试。
  • MilvusService.cs:核心服务,封装 Milvus 客户端操作。
  • MilvusServiceTests.cs:简单的模拟测试实现(不依赖 Milvus
  • TestRunner.cs:运行测试流程的编排类。
  • MilvusDemo.csproj:项目与依赖定义(包含 Milvus.Client)。

项目结构

  • MilvusDemo/Milvus 向量数据库最小示例,支持实际连接与模拟测试两种模式。
  • VoiceToFunctionDemo/:语音(文本)解析为函数调用的示例,展示如何从自然语言中抽取参数并调用预定义函数。

VoiceToFunctionDemo

一个将中文自然语言指令解析为函数调用的控制台示例。内置函数库包含:

  • PRODUCT(double[], double[]):计算两列数值的逐项乘积
  • FILTER(List<User>, Func<User,bool>):按条件筛选用户(支持年龄阈值与姓名包含)
  • COUNTIF(double[], Func<double,bool>):按范围统计数量

运行

dotnet run --project VoiceToFunctionDemo

程序内置了示例输入,启动后会依次演示:

  • 计算两列数值的乘积(如 [1,3,5][2,4,6]
  • 筛选年龄大于某值且姓名包含关键字的用户
  • 统计销售额处于指定区间内的订单数

如需扩展,请修改 VoiceToFunctionDemo/Program.cs

  • 新增函数:在 functionLibrary 中增加 FunctionInfo,定义参数类型与执行逻辑。
  • 扩展解析:在 ParseVoiceCommand 中为新函数添加参数解析与类型校验。

常见问题FAQ

  • 无法连接到 Milvus请确认 Milvus 是否已启动并监听 19530 端口,以及本机/容器网络连通性。
  • 还原/编译失败:请确认已安装 .NET 9 SDK并允许联网下载 NuGet 依赖;必要时执行 dotnet restore 后再构建。
  • 端口占用:如 19530 已被占用,请修改容器映射或程序连接端口并保持一致。
Description
No description provided
Readme 112 KiB
Languages
C# 100%