Files
msh-system/models-integration/docs/coze-integration-prd.md

197 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Coze API Java 集成产品需求文档 (PRD)
扣子团队版
## 1. 产品概述
### 1.1 产品背景
Coze (扣子) 是一个强大的 AI Agent 开发平台,支持用户快速构建基于大语言模型的各类 Bot 和 Workflow。为了将 Coze 平台构建的智能体能力接入到我们的 Java 后端系统中,实现业务流程自动化和智能对话功能,本项目计划集成 Coze Open API。
### 1.2 产品定位
为内部系统和第三方应用提供统一的 Coze 能力接入网关,屏蔽底层 API 细节,提供标准化的 Java 接口和 RESTful API支持对话Chat、工作流Workflow和文件上传等核心功能。
### 1.3 目标用户
- 内部业务系统开发团队
- 需要接入 AI 客服/助手的前端应用
- 自动化任务流程设计者
## 2. 核心功能需求
### 2.1 功能模块概览
| 功能模块 | 描述 | 优先级 | 备注 |
|---------|------|--------|------|
| 鉴权管理 (Auth) | 支持 PAT (个人访问令牌) 和 OAuth JWT 两种模式 | P0 | 初期使用 PAT 快速接入 |
| 智能对话 (Chat) | 与 Coze Bot 进行多轮对话,支持流式 (SSE) / 非流式响应 | P0 | 核心交互能力 |
| 工作流执行 (Workflow) | 调用 Coze 定义的工作流,处理复杂业务逻辑 | P0 | 业务自动化 |
| 文件上传 (File) | 上传图片或文档,用于多模态对话或工作流输入 | P1 | 支持多模态 |
| 语音交互 (Voice) | 文本转语音 (TTS) / 语音转文本 (ASR) | P2 | 依赖 SDK WebSocket 能力 |
### 2.2 API 接口设计
#### 2.2.1 鉴权管理
支持两种鉴权方式,通过配置文件切换:
1. **PAT (Personal Access Token)**: 适用于内部系统后台调用,长期有效。
2. **OAuth JWT**: 适用于需要代表不同用户身份调用的场景(高阶需求)。
*参考文档*: [OAuth JWT 授权](https://www.coze.cn/open/docs/developer_guides/oauth_jwt)
#### 2.2.2 智能对话 (Chat)
支持与指定 Bot 进行交互。
- **非流式**: 等待完整回复后返回。
- **流式 (Streaming)**: 使用 Server-Sent Events (SSE) 实时推送 Token提升用户体验。
**接口地址**: `POST /chat`
**请求参数**:
```json
{
"bot_id": "730454116184516****", // Coze Bot ID
"user_id": "user_123", // 业务系统用户ID
"query": "帮我写一个 Java 冒泡排序", // 用户输入
"stream": true, // true: 返回 SSE 流; false: 返回 JSON
"chat_history": [ // (可选) 历史上下文
{"role": "user", "content": "你好", "content_type": "text"},
{"role": "assistant", "content": "你好!", "content_type": "text"}
]
}
```
**响应示例 (非流式)**:
```json
{
"code": 200,
"data": {
"conversation_id": "737999610479815****",
"messages": [
{
"role": "assistant",
"type": "answer",
"content": "当然,这是 Java 冒泡排序的代码...",
"content_type": "text"
}
],
"usage": {
"token_count": 150
}
}
}
```
**响应示例 (流式)**:
Content-Type: `text/event-stream`
```
data: {"event":"message", "content":"当然", "is_finish":false}
data: {"event":"message", "content":"", "is_finish":false}
...
data: {"event":"done", "usage":{...}}
```
#### 2.2.3 工作流执行 (Workflow)
触发 Coze 预定义的工作流。
**接口地址**: `POST /workflow/run`
**请求参数**:
```json
{
"workflow_id": "73505836754923****",
"parameters": {
"input_text": "分析文本",
"input_image": "https://example.com/img.jpg"
}
}
```
#### 2.2.4 文件上传
上传文件到 Coze 平台,获取 file_id。
**接口地址**: `POST /file/upload`
**Content-Type**: `multipart/form-data`
**请求参数**:
- `file`: (Binary) 文件内容
## 3. 技术实现规范
### 3.1 项目结构
`com.integration.api` 包下扩展 Coze 相关模块:
```
models-integration/
├── src/main/java/com/integration/api/
│ ├── config/
│ │ └── CozeConfig.java # Coze Client Bean 配置
│ ├── controller/
│ │ └── CozeController.java # 对外 API 接口 (REST)
│ ├── service/
│ │ ├── CozeService.java # 业务逻辑接口
│ │ └── impl/
│ │ └── CozeServiceImpl.java # 调用 Coze SDK 实现
│ ├── dto/
│ │ ├── coze/
│ │ ├── CozeChatRequest.java # 请求 DTO
│ │ └── CozeBaseResponse.java # 统一响应 DTO
│ └── utils/
│ └── SseEmitterUtil.java # SSE 推送工具类
```
### 3.2 依赖管理
使用 Coze 官方 Java SDK。
```xml
<dependency>
<groupId>com.coze</groupId>
<artifactId>coze-api</artifactId>
<version>0.4.2</version> <!-- 请检查 Maven Central 获取最新版本 -->
</dependency>
```
### 3.3 配置文件
`application.yml` 中配置:
```yaml
coze:
api:
base-url: https://api.coze.cn
token: ${COZE_API_TOKEN} # 优先使用环境变量
connect-timeout: 30000
read-timeout: 60000
```
### 3.4 异常处理
需捕获 SDK 抛出的异常并转换为标准 HTTP 响应:
- `CozeClientException`: 客户端错误 (配置、网络) -> 500
- `CozeServiceException`: 服务端错误 (参数、权限) -> 400/401/429
- **401**: Token 无效
- **429**: Rate Limit Exceeded (需实现重试机制)
## 4. 非功能需求
### 4.1 安全性
- Token 不得提交到代码仓库。
- 生产环境建议使用 OAuth JWT 模式以获得更细粒度的权限控制。
### 4.2 性能与稳定性
- **连接池**: 使用 OkHttp 连接池复用连接。
- **流式响应**: Chat 接口必须支持 SSE避免长轮询等待。
- **超时控制**: 明确设置 ReadTimeout防止请求挂起。
### 4.3 可观测性
- 记录每次调用的 `conversation_id``log_id` (SDK 返回),便于排查问题。
- 监控 Token 消耗量 (Usage)。
## 5. 项目里程碑
### 5.1 第一阶段 (MVP)
- [ ] 引入 Coze SDK (v0.4.2+)。
- [ ] 接入 OAuth JWT 授权流程
- [ ] 实现文件上传接口。
- [ ] 实现 Workflow 接口。
- [ ] 实现基础 Chat 接口 (非流式)。
- [ ] 实现 SSE 流式 Chat 接口。
## 6. 验收标准
1. Chat 接口能正确响应 Bot 回复。
2. Workflow 能执行并返回 JSON 结果。
3. 流式请求能通过 SSE 逐步输出内容。
4. 异常情况下能返回友好的错误信息,不暴露堆栈。