This commit is contained in:
aruo
2026-05-31 21:45:14 +08:00
parent d4b5015beb
commit ac08345369
67 changed files with 11120 additions and 387 deletions
@@ -0,0 +1,33 @@
# ChatModel + Embedding 解耦 — Brief
## 背景
项目 5 个 Java 文件硬编码 DashScope 具体实现类(`DashScopeChatModel`、`TextEmbedding`、`Generation`),替换 LLM 或 Embedding 模型需要改代码而非改配置。
## 目标
面向 Spring AI 抽象接口(`ChatModel`、`EmbeddingModel`)编程,通过 Spring Boot Starter + yml 配置切换模型实现。
## 范围
- ChatService/ChatController/AiOpsService → `@Autowired ChatModel`
- VectorEmbeddingService → `@Autowired EmbeddingModel`
- RagService → `ChatModel.stream()` 替代 DashScope `Generation`
- VECTOR_DIM → 配置化(`application.yml`)
- 新增 ModelRoutingConfig(yml 关键字驱动的 @Primary 路由)
- 新增 SiliconFlowEmbeddingConfig(BGE-M3 via SiliconFlow)
## 非目标
- 不替换 DashScope 为其他提供商(只做解耦,不换实现)→ 后期追加了 DeepSeek + SiliconFlow
- 不修改 Agent Framework 本身
- 不改 Milvus 核心逻辑
- 不改 MCP 客户端
## 最终模型
| 角色 | 厂商 | 实现 |
|---|---|---|
| Chat | DeepSeek V4 Flash | `DeepSeekChatModel` (Spring AI 原生) |
| Embedding | SiliconFlow BGE-M3 | `OpenAiEmbeddingModel` (OpenAI 兼容) |
| 向量存储 | Zilliz Cloud (Milvus) | `MilvusServiceClient` |