3.1 KiB
3.1 KiB
Acceptance
验证分类
启动验证
| 检查项 | 结果 |
|---|---|
mvn compile |
✅ 无错误 |
mvn spring-boot:run |
✅ 4.5s 启动,端口 9900 |
ChatModel 路由 |
✅ keyword=deepseek → DeepSeekChatModel |
EmbeddingModel 路由 |
✅ keyword=siliconflow → Bean 名匹配 siliconFlowEmbeddingModel |
| Milvus 连接 | ✅ Zilliz Cloud 连接成功, biz collection 已 load |
| Mock 模式 | ✅ Prometheus Mock + CLS Mock 均启用 |
启动命令:
mvn spring-boot:run
启动需要:DeepSeek API Key、SiliconFlow API Key 已在 yml 中配置。无需其他外部服务(Prometheus/CLS 使用 Mock)。
已知 NPE 修复:
ChatService.getToolCallbacks()/logAvailableTools()— tools 为 null 时兜底ChatController/ai_ops— tools 为 null 时返回空数组ChatService+ChatController中ToolCallbackProvider改为@Autowired(required = false)- 原因:MCP 客户端禁用后框架不提供
ToolCallbackProviderBean
脚本验证
| 测试 | 覆盖 | 结果 |
|---|---|---|
ChatAndEmbeddingSmokeTest#contextLoads |
Spring 容器启动 + Bean 注入 | ✅ 通过 |
ChatAndEmbeddingSmokeTest#chatModelPrimaryBeanWorks |
ModelRoutingConfig ChatModel 路由 | ✅ 通过 |
ChatAndEmbeddingSmokeTest#chatServiceAcceptsChatModelInterface |
ReactAgent 接受 ChatModel 接口 | ✅ 通过 |
FullPipelineSmokeTest#chatDeepSeekWorks |
DeepSeek V4 Flash 真实 API 调用 | ✅ 通过 |
FullPipelineSmokeTest#embeddingBgeM3Works |
BGE-M3 1024 维向量生成 | ✅ 通过 |
FullPipelineSmokeTest#embeddingBatchWorks |
批量向量生成 | ✅ 通过 |
FullPipelineSmokeTest#milvusSearchWorks |
Milvus 连接 + 搜索 | ✅ 通过(collection 无数据) |
运行命令:
mvn test -Dtest="ChatAndEmbeddingSmokeTest" -DfailIfNoTests=false
mvn test -Dtest="FullPipelineSmokeTest" -DfailIfNoTests=false
静态验证
| 检查项 | 方法 | 结果 |
|---|---|---|
| DashScope SDK import 全部清除 | grep -r "com.alibaba.dashscope" src/ |
✅ 0 匹配 |
| 编译通过 | mvn compile -q |
✅ 无错误 |
未验证
| 项目 | 原因 | 建议 |
|---|---|---|
| RagService SSE 流式对话 | 需启动应用 + 前端 | 用 /run skill 启动后手动验证 |
| AiOpsService 多 Agent 编排 | 需要真实 Prometheus 告警 + CLS 日志 | 配置 MCP 端点和真实环境后验证 |
| MCP 客户端 | 当前禁用(enabled: false) |
恢复 MCP 配置后验证 |
| 真实文档向量存入 Milvus | collection 为空 | 上传文件后通过 /api/upload 验证 |
文件变更统计
12 files changed, 140 insertions(+), 312 deletions(-)
+ 2 new files: ModelRoutingConfig.java, SiliconFlowEmbeddingConfig.java
+ 2 test files: ChatAndEmbeddingSmokeTest.java, FullPipelineSmokeTest.java
已知限制
- OpenAI starter 仍保留(供 SiliconFlow Embedding 复用
OpenAiApi),其openAiChatModelBean 闲置 spring.ai.openai.api-key: unused是为了满足 auto-config 最低要求- 如需清理闲置 Bean,可排除 OpenAI auto-config 的 ChatModel 部分