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

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

138 lines
2.7 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.
# 播课功能 API 接口规范
## 设计原则
**触发即可Coze工作流直接写数据库**
- 管理员点击"生成播课"触发Coze工作流
- 后端API只负责触发立即返回
- Coze工作流生成完成后直接更新数据库无需后端介入
## API 端点
### 1. 触发播课生成
**接口**: `POST /api/v1/courses/{course_id}/generate-broadcast`
**权限**: manager、admin
**请求参数**:
- Path: `course_id` (int) - 课程ID
**响应数据**:
```json
{
"code": 200,
"message": "播课生成已启动",
"data": {
"message": "播课生成工作流已启动,生成完成后将自动更新"
}
}
```
**说明**:
- 立即返回,不等待生成完成
- Coze工作流会异步处理并直接写数据库
---
### 2. 获取播课信息
**接口**: `GET /api/v1/courses/{course_id}/broadcast`
**权限**: 所有登录用户
**请求参数**:
- Path: `course_id` (int) - 课程ID
**响应数据**:
```json
{
"code": 200,
"message": "success",
"data": {
"has_broadcast": true,
"mp3_url": "https://example.com/broadcast.mp3",
"generated_at": "2025-10-14T12:00:00Z"
}
}
```
**字段说明**:
- `has_broadcast` (boolean): 是否有播课
- `mp3_url` (string): 播课音频URL
- `generated_at` (string): 生成时间
---
## 数据库表结构
### courses 表
播课相关字段:
| 字段名 | 类型 | 说明 |
|--------|------|------|
| broadcast_audio_url | varchar(500) | 播课音频URL |
| broadcast_generated_at | datetime | 播课生成时间 |
**更新方式**: Coze工作流直接执行SQL更新
**SQL示例**:
```sql
UPDATE courses
SET
broadcast_audio_url = '{mp3_url}',
broadcast_generated_at = NOW(),
updated_at = NOW()
WHERE id = {course_id}
```
---
## Coze 工作流配置
### 数据库连接信息
- **主机**: `aiedu.ireborn.com.cn`
- **端口**: `3306`
- **数据库**: `kaopeilian`
- **用户**: `root`
- **密码**: `Kaopeilian2025!@#`
### 工作流参数
- **workflow_id**: `7561161554420482088`
- **space_id**: `7474971491470688296`
- **输入参数**: `course_id` (字符串)
- **输出**: 无(直接写数据库)
---
## 前端交互流程
1. **触发生成**
- 管理员点击"生成播课"按钮
- 调用 `POST /generate-broadcast`
- 显示提示:"播课生成已启动,完成后会自动更新"
2. **查看结果**
- 用户刷新页面或重新进入
- 调用 `GET /broadcast` 获取最新状态
- 如果 `has_broadcast=true` 则显示"已生成"和播放链接
---
## 错误处理
| HTTP 状态码 | 说明 | 处理方式 |
|------------|------|---------|
| 404 | 课程不存在 | 提示用户 |
| 500 | 触发失败 | 提示用户稍后重试 |
---
## 日期
创建: 2025-10-14
更新: 2025-10-14 - 简化为触发模式