Files
011-ai-interview/coze-workflows/工作流分析.md
2026-01-23 13:57:48 +08:00

8.0 KiB
Raw Blame History

Coze 工作流分析

分析 Consultant_interviewer 工作流与当前前后端架构的对应关系


一、工作流概览

属性
工作流名称 Consultant_interviewer
工作流 ID 7595077233002840079
模式 Chatflow对话流
描述 轻医美咨询师初试智能面试官

二、工作流核心节点

2.1 节点类型统计

节点类型 数量 说明
start 1 开始节点
end 1 结束节点
llm 18 大模型调用节点
question 11 问答交互节点
loop 5 循环节点
condition 6 条件分支节点
code 2 代码执行节点
output 4 输出节点
select_record 2 数据库查询节点
plugin 1 插件节点(读取简历)

2.2 面试阶段流程

开始
  │
  ├─ 查询数据(检查 session_id 是否存在)
  │
  ├─ 生成会话ID代码节点
  │
  ├─ 条件分支:根据 current_stage 决定进入哪个阶段
  │   ├─ stage < 20 → 信息收集阶段
  │   ├─ stage >= 20 → 销售技能循环
  │   ├─ stage >= 30 → 销售观循环
  │   ├─ stage >= 40 → 素质项循环
  │   └─ stage >= 50 → 求职动机识别
  │
  ├─ 【阶段0】姓名收集 → 上传简历 → 读取简历 → 新增数据
  │
  ├─ 【阶段1】打招呼、介绍面试流程
  │
  ├─ 【阶段2】销售技能提问循环1轮
  │   ├─ 销售技巧提问LLM
  │   ├─ 问答(用户回复)
  │   ├─ 追问LLM
  │   ├─ 问答(用户回复)
  │   └─ 新增数据(保存面试记录)
  │
  ├─ 【阶段3】销售观提问循环1轮
  │   ├─ 销售观提问LLM
  │   ├─ 问答 → 追问 → 问答
  │   └─ 新增数据
  │
  ├─ 【阶段4】素质项提问循环1轮
  │   ├─ 读取素质项侧重(数据库)
  │   ├─ 素质项提问LLM
  │   ├─ 问答 → 追问 → 问答
  │   └─ 新增数据
  │
  ├─ 【阶段5】求职动机识别循环1轮
  │   ├─ 求职动机提问LLM
  │   ├─ 问答 → 追问 → 问答
  │   └─ 新增数据
  │
  ├─ 【评分阶段】
  │   ├─ 销售技能评分LLM
  │   ├─ 销售观、服务观评分LLM
  │   ├─ 素质项评分LLM
  │   └─ 更新数据(保存评分结果)
  │
  ├─ 【报告阶段】
  │   ├─ 求职动机总结LLM
  │   ├─ 未来发展规划LLM
  │   ├─ 背调问题清单LLM
  │   ├─ 直觉验证LLM
  │   └─ 任用风险提示LLM
  │
  └─ 【反问阶段】回答面试者问题循环
      ├─ 意图识别
      ├─ 回答面试者问题LLM
      └─ 终止循环判断

三、与当前架构的对应关系

3.1 前端需负责的部分

前端功能 工作流对应 当前状态
欢迎页 已有页面骨架
姓名输入 question 节点 "姓名" 已有 info.vue
简历上传 question 节点 "上传简历" → plugin "读取简历" 已有上传逻辑
模拟来电 无(纯前端效果) 已有 call.vue
语音通话 整个对话流由 Coze RTC 处理 ⚠️ 需对接 RTC SDK
面试结束 end 节点 已有 complete.vue

3.2 后端需负责的部分

后端功能 工作流对应 当前状态
简历上传到 Coze POST /v1/files/upload 已实现 coze_service
创建语音房间 POST /v1/audio/rooms 已实现 coze_service
候选人数据查询 数据库节点 select_record ⚠️ Coze 无 REST API
候选人数据新增 数据库节点 insert_record ⚠️ 由工作流自动处理

3.3 完全由 Coze 工作流处理的部分

以下功能完全在 Coze 工作流内部完成,前后端无需实现:

功能 工作流节点
打招呼、介绍面试流程 LLM "打招呼、介绍面试流程"
销售技能提问 Loop "销售技能提问循环"
销售观提问 Loop "销售观提问循环"
素质项提问 Loop "素质项提问循环"
求职动机识别 Loop "求职动机识别提问循环"
追问逻辑 各循环内的 "追问" LLM 节点
销售技能评分 LLM "销售技能评分"
销售观评分 LLM "销售观、服务观评分"
素质项评分 LLM "素质项评分"
求职动机总结 LLM "求职动机总结"
未来发展规划 LLM "未来发展规划"
背调问题清单 LLM "背调问题清单"
直觉验证 LLM "直觉验证"
任用风险提示 LLM "任用风险提示"
回答面试者问题 Loop "回答面试者问题循环"
面试记录保存 各 "新增数据" 节点
评分结果保存 "更新数据" 节点

四、关键发现

4.1 匹配的设计

  1. 面试维度一致:工作流的 4 维度(销售技能、销售观、素质项、求职动机)与 PRD 一致
  2. 简历上传流程一致:前端上传 → 后端调用 Coze API → 工作流解析
  3. 语音房间创建:后端调用 POST /v1/audio/rooms 创建房间,前端使用 RTC SDK 加入

4.2 ⚠️ 需调整的设计

1数据库访问问题

问题Coze 数据库不提供直接的 REST API 查询接口

影响:管理后台的"候选人列表"、"候选人详情"功能无法直接实现

解决方案

方案 说明 推荐度
A 工作流增加 Webhook 节点,面试结束后推送数据到后端
B 自建数据库SQLite/MySQL前端上传时同步写入
C 暂时搁置管理后台(当前选择)

2会话断点续传

工作流逻辑

  • 工作流通过 current_stage 字段记录面试进度10/20/30/40/50...
  • 用户中途退出后,可通过 session_id 恢复进度

前端需支持

  • 保存 session_id 到 localStorage
  • 重新进入时检查是否有未完成的面试

3环境变量补充

工作流中使用的数据库 ID 需要配置:

# 已有
COZE_BOT_ID=7595113005181386792

# 需补充(工作流中的数据库)
COZE_WORKFLOW_ID=7595077233002840079
COZE_DATABASE_ID=7595077053909712922

4.3 待确认事项

问题 影响范围 建议
工作流的 BOT_ID 与 WORKFLOW_ID 哪个用于创建房间? 后端 API 需测试确认
工作流是否支持传入 session_id 参数? 断点续传 查看 start 节点
CONVERSATION_NAME 参数的用途? 会话隔离 可能是会话标识

五、开发优先级调整

基于工作流分析,建议调整开发重点:

5.1 优先完成(用户端)

  1. 前端用户端 4 个页面
  2. 后端 Coze API 封装(文件上传、房间创建)
  3. ⚠️ 前端 RTC SDK 集成(核心功能)
  4. ⚠️ 会话状态管理session_id 本地存储)

5.2 暂时搁置(管理后台)

由于 Coze 数据库无 REST API管理后台需等待以下方案之一落地

  • 工作流添加 Webhook 推送
  • 自建数据库方案

六、RTC 对接要点

根据工作流,语音通话的核心逻辑如下:

1. 后端调用 POST /v1/audio/rooms 创建房间
   请求体:{ bot_id, user_id, voice_id? }
   返回:{ room_id, token, app_id, uid }

2. 前端使用 @volcengine/rtc SDK 加入房间
   - 使用返回的 token 进行鉴权
   - 使用返回的 app_id、room_id、uid 加入房间

3. 语音对话
   - 前端采集麦克风音频
   - SDK 自动推送到 Coze 工作流
   - 工作流处理后返回 AI 语音

4. 面试结束
   - 工作流达到 end 节点
   - 可能通过事件通知前端

变更日志

日期 内容 操作人
2026-01-20 初始化工作流分析文档 AI