ca42a7d9a4
- 删除分布式架构相关文件和配置 - 将backend-distributed重命名为backend保留分布式代码作为参考 - 优化backend-single单体架构实现 - 添加Coze API集成相关文档和测试 - 清理项目根目录的部署脚本和配置文件 - 更新WebSocket和消息服务实现 - 完善认证服务和密码加密功能
3.4 KiB
3.4 KiB
Coze API 集成说明
概述
本项目已经优化了 AiChatServiceImpl 的 Coze API 接口实现,确保能够正确调用 Coze 的 v3 API。
配置说明
application.yml 配置
emotion:
coze:
api:
token: pat_GCR4qKzqpf90wMCvKsldMrB18KG3QsLDci65bZthssKsbLxu8X70BKYumleDcabO
base-url: https://api.coze.cn
chat:
path: /v3/chat
talk:
bot-id: 7523042446285439016
workflow-id: 7523047462895796287
summary:
bot-id: 7529062814150295595
workflow-id: 7523047462895796287
timeout: 30000
retry-count: 3
retry-delay: 1000
配置项说明
token: Coze API 的访问令牌,格式为pat_开头base-url: Coze API 的基础URL,通常为https://api.coze.cnchat.path: 聊天API的路径,固定为/v3/chatchat.talk.bot-id: 对话聊天使用的机器人IDchat.talk.workflow-id: 对话聊天使用的工作流IDchat.summary.bot-id: 聊天记录总结使用的机器人IDchat.summary.workflow-id: 聊天记录总结使用的工作流IDtimeout: API调用超时时间(毫秒)retry-count: 重试次数retry-delay: 重试延迟(毫秒)
API 调用流程
1. 发送聊天消息
String response = aiChatService.sendChatMessage(conversationId, message, userId);
2. 访客聊天
Map<String, Object> response = aiChatService.guestChat(message, clientIp);
3. 生成对话总结
String summary = aiChatService.generateConversationSummary(conversationId, userId);
实现特点
1. 正确的 API 调用流程
- 发送聊天请求: 调用
/v3/chat接口发送消息 - 获取 chat_id: 从响应中提取
chat_id和conversation_id - 轮询状态: 使用
/v3/chat/retrieve接口轮询聊天状态 - 获取消息: 当状态为
completed时,调用/v3/chat/message/list获取AI回复
2. 请求格式
{
"bot_id": "7523042446285439016",
"workflow_id": "7523047462895796287",
"user_id": "user-123",
"stream": false,
"additional_messages": [
{
"role": "user",
"content": "用户消息内容",
"content_type": "text",
"type": "question"
}
],
"parameters": {}
}
3. 响应处理
- 解析初始响应获取
chat_id和conversation_id - 轮询聊天状态直到完成(最多30秒,每2秒一次)
- 从消息列表中提取 AI 回复(role=assistant, type=answer)
4. 错误处理
- 网络异常处理
- API 错误响应处理
- 超时处理
- 重试机制
测试
运行以下命令测试 API 集成:
mvn test -Dtest=CozeApiTest
注意事项
- API Token: 确保使用有效的 Coze API token
- Bot ID: 确保 bot_id 和 workflow_id 正确配置
- 网络连接: 确保服务器能够访问
https://api.coze.cn - 超时设置: 根据实际情况调整超时时间
- 错误处理: 生产环境中应该有完善的错误处理和日志记录
故障排除
1. 检查配置
# 检查配置是否正确加载
curl -X GET http://localhost:19089/api/ai/health
2. 查看日志
# 查看详细的API调用日志
tail -f logs/emotion-single.log | grep -i coze
3. 常见错误
- 401 Unauthorized: 检查 API token 是否正确
- 404 Not Found: 检查 bot_id 是否存在
- Timeout: 增加超时时间或检查网络连接
- Rate Limit: 检查API调用频率限制