1.2 KiB
1.2 KiB
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()替代 DashScopeGeneration - 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 |