Initial commit: AI Interview System

This commit is contained in:
111
2026-01-23 13:57:48 +08:00
commit 95770afe21
127 changed files with 24686 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
type: Workflow
version: 1.0.0
main:
id: 7595077233002840079
name: Consultant_interviewer
desc: |-
“咨询师面试官” 是专注轻医美咨询师初试的智能人力资源 AI以精准评估、高效筛选为核心助力企业锁定适配人才。
它围绕销售观、销售技巧、知识储备与职业素质四大维度,运用 STAR 面试法深入挖掘候选人行为细节,配合性格剖面报告与行为提问话术库,剖析其性格特质与领导力潜力,同步生成任用风险提示与决策矩阵图,规避用人风险。针对轻医美行业特性,重点评估 “情绪稳定性”,结合德锐 9 大致命点,从技能、知识、价值观等方面综合评分。​
面试结束后Agent 输出精准面试评分、背调问题清单,还定制未来 5 年培养规划,实现人才的可持续发展。后台的人才画像卡支持个性化生成,适配不同企业对素质项的筛选需求。凭借专业、智能的特性,“咨询师面试官” Agent 成为企业构建轻医美人才梯队的有力工具。
icon: plugin_icon/workflow.png
version: ""
flowMode: 3
commitId: ""
sub: []

File diff suppressed because one or more lines are too long

72
coze-workflows/README.md Normal file
View File

@@ -0,0 +1,72 @@
# Coze 工作流
本目录存放 Coze 平台导出的工作流文件。
---
## 工作流列表
| 名称 | ID | 描述 | 状态 |
|------|-----|------|------|
| Consultant_interviewer | 7595077233002840079 | 轻医美咨询师面试官 | ✅ 生产环境 |
---
## 目录结构
```
coze-workflows/
├── README.md # 本文件
├── 工作流分析.md # 工作流与架构对照分析
└── Chatflow-Consultant_interviewer-draft-268/
├── MANIFEST.yml # 工作流元信息
└── workflow/
└── Consultant_interviewer-draft.yaml # 工作流定义文件
```
---
## 工作流核心信息
### Consultant_interviewer
**用途**:轻医美咨询师岗位 AI 初试面试官
**核心能力**
- 4 维度面试评估(销售技能、销售观、素质项、求职动机)
- STAR 行为面试法提问
- 自动评分与报告生成
- 断点续传(支持中途退出后恢复)
**关联资源**
| 资源 | ID |
|------|-----|
| Bot ID | 7595113005181386792 |
| Workflow ID | 7595077233002840079 |
| Database ID | 7595077053909712922 |
**节点统计**
| 类型 | 数量 |
|------|------|
| LLM 节点 | 18 |
| 问答节点 | 11 |
| 循环节点 | 5 |
| 条件分支 | 6 |
| 数据库操作 | 8 |
---
## 如何导入
1. 登录 [Coze 平台](https://www.coze.cn)
2. 进入工作空间
3. 点击「导入工作流」
4. 上传 `Chatflow-Consultant_interviewer-draft-268` 文件夹
---
## 相关文档
- [工作流分析](./工作流分析.md) - 工作流与前后端架构对照
- [PRD](../docs/PRD.md) - 产品需求文档
- [技术选型](../docs/技术选型.md) - 技术栈说明

View File

@@ -0,0 +1,250 @@
# 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 |