Files
012-kaopeilian/docs/规划/全链路联调/Ai工作流/coze/播课/Coze工作流运行API文档.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

184 lines
5.2 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 文档
## 接口说明
执行已发布的工作流。此接口为非流式响应模式,对于支持流式输出的节点,应使用流式响应接口。
## 播课工作流配置信息
- **workflow_id**: `7561161554420482088`
- **space_id**: `7474971491470688296`
- **个人令牌**: 同陪练功能使用的 COZE_API_TOKEN
- **输入参数**: `course_id`(字符串类型)
- **输出结果**: mp3 音频文件 URL
## 基础信息
| 项目 | 内容 |
|------|------|
| 请求方式 | POST |
| 请求地址 | `https://api.coze.cn/v1/workflow/run` |
| 权限 | run确保个人令牌开通了 run 权限) |
| 超时时间 | 默认 10 分钟,建议控制在 5 分钟以内 |
## 限制说明
| 限制项 | 说明 |
|--------|------|
| 工作流发布状态 | 必须为已发布状态 |
| 请求大小上限 | 20 MB |
| 超时时间 | 未开启异步时为 10 分钟,开启异步后为 24 小时 |
## 请求参数
### Header
| 参数 | 取值 | 说明 |
|------|------|------|
| Authorization | Bearer $Access_Token | Personal Access Token 认证 |
| Content-Type | application/json | 请求正文格式 |
### Body
| 参数 | 类型 | 是否必选 | 说明 |
|------|------|----------|------|
| workflow_id | String | 必选 | 待执行的 Workflow ID |
| parameters | Map | 可选 | 工作流开始节点的输入参数JSON 格式 |
| bot_id | String | 可选 | 需要关联的智能体 ID |
| app_id | String | 可选 | 关联的扣子应用 ID |
| ext | JSON Map | 可选 | 额外字段经纬度、user_id 等) |
| is_async | Boolean | 可选 | 是否异步运行(仅付费版可用) |
## 播课工作流请求示例
```json
{
"workflow_id": "7561161554420482088",
"parameters": {
"course_id": "5"
}
}
```
## 返回参数
| 参数 | 类型 | 说明 |
|------|------|------|
| code | Long | 调用状态码0 表示成功 |
| data | String | 工作流执行结果,通常为 JSON 序列化字符串 |
| msg | String | 状态信息,失败时包含详细错误信息 |
| execute_id | String | 异步执行的事件 ID |
| debug_url | String | 调试页面 URL7天有效期 |
| usage | Object | Token 使用情况 |
| detail | Object | 请求详情(包含 logid |
### Usage 对象
| 参数 | 类型 | 说明 |
|------|------|------|
| input_count | Integer | 输入 Token 数 |
| output_count | Integer | 输出 Token 数 |
| token_count | Integer | Token 总量 |
## 播课工作流返回示例
```json
{
"code": 0,
"data": "{\"mp3_url\":\"https://example.com/broadcast/course_5.mp3\"}",
"debug_url": "https://www.coze.cn/work_flow?execute_id=741364789030728****&space_id=7474971491470688296&workflow_id=7561161554420482088",
"msg": "",
"usage": {
"input_count": 120,
"token_count": 350,
"output_count": 230
}
}
```
## 使用 cozepy SDK 调用示例
### Python SDK0.2.0版本)
```python
from cozepy import Coze, TokenAuth
from app.core.config import settings
import json
async def generate_broadcast(course_id: int) -> str:
"""调用 Coze 工作流生成播课音频"""
# 初始化 Coze 客户端
coze = Coze(
auth=TokenAuth(token=settings.COZE_API_TOKEN),
base_url=settings.COZE_API_BASE
)
try:
# 调用工作流
result = await coze.workflows.runs.create(
workflow_id=settings.COZE_BROADCAST_WORKFLOW_ID,
parameters={"course_id": str(course_id)}
)
# 解析返回结果
if result.code == 0:
data = json.loads(result.data)
mp3_url = data.get("mp3_url")
return mp3_url
else:
raise Exception(f"工作流执行失败: {result.msg}")
except Exception as e:
logger.error(f"调用 Coze 工作流失败: {e}")
raise
```
## 错误处理
### 常见错误码
| code | 说明 | 处理方式 |
|------|------|---------|
| 0 | 成功 | 正常处理 |
| 400 | 参数错误 | 检查 workflow_id 和 parameters |
| 4200 | 工作流未发布 | 确保工作流已发布 |
| 500 | 服务器错误 | 记录 logid 并重试 |
| 6003 | 异步运行需付费版 | 使用同步模式或升级账号 |
### 错误日志记录
```python
logger.error(
f"Coze工作流执行失败",
extra={
"workflow_id": workflow_id,
"course_id": course_id,
"logid": result.detail.logid if hasattr(result, 'detail') else None,
"error_code": result.code,
"error_msg": result.msg
}
)
```
## 注意事项
1. **超时配置**:播课音频生成通常需要 10 分钟,建议设置超时时间为 180 秒
2. **Token 认证**:使用 Personal Access Token与陪练功能共用同一个 token
3. **参数类型**course_id 需要转换为字符串类型传递
4. **返回解析**data 字段为 JSON 字符串,需要反序列化后提取 mp3_url
5. **调试支持**:返回的 debug_url 可用于查看工作流执行详情7天有效期
6. **异步模式**:免费版不支持异步模式,使用同步调用即可
## 参考链接
- Coze 官方文档https://www.coze.cn/open/docs/developer_guides/workflow_run
- cozepy SDK 文档https://github.com/coze-dev/coze-py
---
**文档版本**: v1.0
**创建日期**: 2025-10-14
**维护人**: 考培练系统开发团队