ChatClient 预定义
| 预定义方式 | 适用场景 | 优点 | 缺点 | 项目建议 |
|---|---|---|---|---|
预定义 ChatClient.Builder | 多个接口共用同一套对话配置 | 灵活,可继续追加 advisor、prompt、参数 | 每次使用前还要 build() | 推荐,适合你的 RAG 场景 |
直接预定义 ChatClient Bean | 全项目只需要一个固定对话入口 | 使用最简单,注入即用 | 后续扩展不同场景不够灵活 | 可用,但不一定最优 |
多个 ChatClient Bean + @Qualifier | 不同业务场景要不同模型/提示词/Advisor | 职责清晰,适合中大型项目 | Bean 数量会增加,配置更复杂 | 如果未来场景增多,可以考虑 |
预定义 ChatModel,业务层动态构建 ChatClient | 模型配置统一,调用时按需组合不同能力 | 复用模型配置,调用灵活 | 代码里会有一定重复 | 你现在这种方式很合适 |
仅靠 application-dev.yml 自动装配 | 配置主要由 yml 驱动,减少 Java 配置 | 符合 Spring Boot 风格,简单清晰 | 复杂场景下不够直观 | 推荐作为基础配置 |