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

2.7 KiB
Raw Blame History

播课功能 API 接口规范

设计原则

触发即可Coze工作流直接写数据库

  • 管理员点击"生成播课"触发Coze工作流
  • 后端API只负责触发立即返回
  • Coze工作流生成完成后直接更新数据库无需后端介入

API 端点

1. 触发播课生成

接口: POST /api/v1/courses/{course_id}/generate-broadcast

权限: manager、admin

请求参数:

  • Path: course_id (int) - 课程ID

响应数据:

{
  "code": 200,
  "message": "播课生成已启动",
  "data": {
    "message": "播课生成工作流已启动,生成完成后将自动更新"
  }
}

说明:

  • 立即返回,不等待生成完成
  • Coze工作流会异步处理并直接写数据库

2. 获取播课信息

接口: GET /api/v1/courses/{course_id}/broadcast

权限: 所有登录用户

请求参数:

  • Path: course_id (int) - 课程ID

响应数据:

{
  "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示例:

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 - 简化为触发模式