| name | spring-ai-chat |
| description | 集成 Spring AI 聊天功能。当用户想要与 AI 模型对话、创建聊天端点或处理 AI 对话流程时使用此技能。 |
Spring AI 聊天集成
功能描述
提供 AI 聊天交互能力,支持与多种大语言模型进行对话,基于 Spring AI 框架实现。
何时使用
在以下情况调用此技能:
- 创建聊天端点或 API
- 集成新的 AI 聊天模型
- 添加聊天相关功能
- 处理 AI 对话流程
核心功能
- 多模型支持:支持 OpenAI、DeepSeek 等多种 AI 模型
- 聊天对话:支持简单聊天和完整对话流程
- 参数配置:支持温度、token 数量等参数配置
- 流式响应:支持流式输出模式
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | String | 否 | 模型名称(默认使用配置的模型) |
| message | String | 是 | 用户消息 |
| temperature | Double | 否 | 温度参数(0-1,默认0.7) |
| maxTokens | Integer | 否 | 最大 token 数(默认2048) |
| options | Map | 否 | 其他配置选项 |
输出格式
{
"provider": "deepseek",
"content": "AI 回复内容",
"model": "deepseek-chat",
"usage": {
"promptTokens": 100,
"completionTokens": 50
},
"success": true,
"errorMessage": null
}
支持模型
| 模型类型 | 模型名称 | 配置方式 |
|---|
| DeepSeek | deepseek-chat | 环境变量配置 |
| OpenAI | gpt-3.5-turbo | 环境变量配置 |
| OpenAI | gpt-4 | 环境变量配置 |
API 调用示例
curl -X POST http://localhost:8080/api/chat \
-H "Content-Type: application/json" \
-d '{
"message": "你好,AI!"
}'
curl -X POST http://localhost:8080/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek",
"message": "解释一下量子计算",
"temperature": 0.7,
"maxTokens": 2048
}'
curl -X POST http://localhost:8080/api/chat/stream \
-H "Content-Type: application/json" \
-d '{
"message": "写一首诗"
}'
使用模式
private final ChatService chatService;
ChatResponse response = chatService.chat("你好 AI!");
ChatResponse response = chatService.chat("deepseek", "你好!");
ChatRequest request = new ChatRequest("deepseek", "你好", 0.7, 2048, Map.of());
ChatResponse response = chatService.chat(request);
核心组件
| 组件 | 职责 | 文件路径 |
|---|
| ChatService | 聊天服务接口 | service/ChatService.java |
| ChatServiceImpl | 聊天服务实现 | service/impl/ChatServiceImpl.java |
| ChatController | REST API 控制层 | controller/ChatController.java |
| ChatRequest | 请求 DTO | model/ChatRequest.java |
| ChatResponse | 响应 DTO | model/ChatResponse.java |
配置要求
环境变量
配置文件
server:
port: ${SERVER_PORT:8080}
spring:
ai:
openai:
base-url: ${DEEPSEEK_BASE_URL:https://api.deepseek.com/v1}
api-key: ${DEEPSEEK_API_KEY}
chat:
options:
model: deepseek-chat
temperature: 0.7
max-tokens: 2048
添加新的聊天功能
- 在
ChatService.java 中添加方法
- 在
model 包中创建请求/响应 DTO
- 在
ChatController.java 中添加控制器端点
扩展指南
添加新的模型提供者
- 实现
ModelProvider 接口
- 创建对应的配置类
- 在
ModelProviderManager 中注册
自定义聊天逻辑
继承 ChatServiceImpl 并重写相关方法,实现自定义业务逻辑。
目录结构
src/main/java/com/bage/study/ai/best/practice/hello/
├── controller/
│ └── ChatController.java
├── service/
│ ├── ChatService.java
│ └── impl/
│ └── ChatServiceImpl.java
├── model/
│ ├── ChatRequest.java
│ └── ChatResponse.java
├── provider/
│ └── ModelProvider.java
└── config/
└── ChatConfig.java