# 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 需要配置: ```bash # 已有 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 |