添加注释添加项目文件。

This commit is contained in:
ShaoHua
2025-10-17 02:39:47 +08:00
parent e94dab2050
commit 183177043f
14 changed files with 822 additions and 0 deletions

109
README.md Normal file
View File

@@ -0,0 +1,109 @@
# MilvusDemo
一个使用 C#.NET 9`Milvus.Client` 的极简示例项目,演示:
- 初始化集合(存在则删除并重建)
- 创建向量索引与加载集合
- 批量插入随机向量
- 执行向量相似度搜索
- 通过内置测试流程验证调用链
### 模块划分
- **App入口层**`Program.cs`
- 提供交互式入口:输入 1=实际连接 Milvus 执行;输入 2=运行内置测试(无需 Milvus 实例)。
- **Core/Service业务层**`MilvusService.cs`
- 封装与 Milvus 的连接、集合初始化、索引创建/加载、数据插入与搜索。
- **Test Harness测试层**`TestRunner.cs``MilvusServiceTests.cs`
- `TestRunner` 负责编排测试流程;`MilvusServiceTests` 提供无外部依赖的模拟测试(验证调用链与参数)。
### 环境要求
- .NET SDK 9.0+
- 仅当选择“实际运行(选项 1”时需要可访问的 Milvus Server默认 `localhost:19530`)。
### 快速开始
1. 构建
```powershell
dotnet build
```
2. 运行(测试模式,无需 Milvus
- PowerShell
```powershell
echo 2 | dotnet run
```
- Bash
```bash
echo 2 | dotnet run
```
3. 运行(实际连接 Milvus
- 确保本地或可达的 Milvus 实例运行在 `localhost:19530`。
- 程序启动后输入 `1`。
### 在解决方案根目录运行(多项目)
本仓库包含多个示例项目。可在解决方案根目录使用 `--project` 指定要运行的项目:
```powershell
# 运行 Milvus 示例(默认交互菜单 1/2
dotnet run --project MilvusDemo
# 运行语音到函数示例
dotnet run --project VoiceToFunctionDemo
```
### 启动 Milvus可选
若需在本机快速启动 Milvus可参考官方快速开始或使用 Docker示例
```bash
# 仅供参考,建议按官方文档选择合适的版本与持久化配置
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>)`:按范围统计数量
### 运行
```powershell
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` 已被占用,请修改容器映射或程序连接端口并保持一致。