[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80462":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":13,"starSnapshotCount":13,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},80462,"multimodal-interview-system","zhaojingru-ai\u002Fmultimodal-interview-system","zhaojingru-ai","Multimodal interview system with Coze workflow exports",null,"TypeScript",71,3,0,20,1.81,"MIT License",false,"main",true,[],"2026-06-12 02:04:02","# 多模态面试系统\n\n一个基于 Next.js 与 Coze 工作流的多模态面试原型系统。系统从候选人简历和岗位 JD 出发，自动匹配岗位模版、生成结构化面试题，支持逐题视频作答，并对单题回答进行文本、音频、视频多模态评估，最后生成综合面试报告。\n\n当前版本适合用于课程设计、毕业设计、研究原型和 Coze 工作流复现实验。默认支持本地 mock 模式，不配置 Coze 也能跑通主要产品流程。\n\n## 运行状态\n\n- `npm run lint` 通过\n- `npm run build` 通过\n- `npm audit --registry=https:\u002F\u002Fregistry.npmjs.org --audit-level=high` 通过\n- 仓库只提供 `.env.example`，真实 Coze、数据库和认证密钥请配置在本地或部署环境变量中\n- Coze 工作流导出与 7 个职业模版已归档到 `docs\u002Fcoze\u002F`\n\n## 界面预览\n\n| 首页 | 登录 |\n| --- | --- |\n| \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fhome.png\" alt=\"首页\" width=\"420\"> | \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Flogin.png\" alt=\"登录页\" width=\"420\"> |\n\n| 简历输入 | JD 输入 |\n| --- | --- |\n| \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fresume-input.png\" alt=\"简历输入\" width=\"420\"> | \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fjd-input.png\" alt=\"JD 输入\" width=\"420\"> |\n\n| 题目工作台 | 视频作答 |\n| --- | --- |\n| \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fquestion-workspace.png\" alt=\"题目工作台\" width=\"420\"> | \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fvideo-answer.png\" alt=\"视频作答\" width=\"420\"> |\n\n| 异步评估 | 最终报告 |\n| --- | --- |\n| \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Fevaluation-progress.png\" alt=\"异步评估进度\" width=\"420\"> | \u003Cimg src=\"docs\u002Fassets\u002Fscreenshots\u002Ffinal-report.png\" alt=\"最终报告\" width=\"420\"> |\n\n## 产品流程\n\n1. 登录系统，进入面试创建页。\n2. 输入候选人简历文本。\n3. 输入岗位 JD 文本，或上传 JD 图片。\n4. 系统解析简历和 JD，匹配 7 类职业模版之一：`dev \u002F da \u002F pm \u002F sales \u002F ops \u002F cs \u002F hr`。\n5. 系统生成面试题集和每题评价要点。\n6. 候选人逐题接受题目、录制视频并提交。\n7. 后台异步执行单题多模态评估。\n8. 所有题目完成后，系统生成综合报告。\n\n## 核心能力\n\n- 简历解析：将简历文本转成结构化 `resume_profile`\n- JD 解析：将岗位文本或图片转成结构化 `jd_profile`\n- 岗位模版匹配：推荐最合适的职业模版\n- 题目与要点生成：生成完整题目集 `question` 和评价要点包 `point`\n- 逐题视频作答：浏览器摄像头\u002F麦克风录制，保存单题视频\n- 单题多模态评估：抽取文本、音频、视频轻量特征并生成评分证据\n- 报告生成：聚合逐题结果，输出综合面试报告\n\n## 技术栈\n\n- Next.js 16 + React 19\n- TypeScript\n- Coze Workflow API\n- bcryptjs + jose\n- Postgres 或本地 JSON file store\n- Playwright smoke\u002Fe2e 脚本\n\n## 快速开始\n\n```bash\nnpm install\ncp .env.example .env.local\nnpm run dev\n```\n\n打开 `http:\u002F\u002Flocalhost:3000`。\n\n本地开发默认账号：\n\n```text\nusername: admin\npassword: admin-local-password\n```\n\n首次开源体验建议保持 mock 模式：\n\n```bash\nINTERVIEW_USE_MOCK=true\n```\n\n生产环境请务必设置：\n\n```bash\nAUTH_SECRET=\nAUTH_DEFAULT_USER_PASSWORD=\nDATABASE_URL=或者 POSTGRES_URL=\n```\n\n如果没有配置 `AUTH_DEFAULT_USER_PASSWORD`，生产环境不会创建可预测的默认密码。\n\n## 运行模式\n\n| 配置 | 行为 |\n| --- | --- |\n| `INTERVIEW_USE_MOCK=true` | 使用本地 deterministic mock\u002Ffallback，不依赖 Coze |\n| `INTERVIEW_USE_MOCK=false` | 强制调用真实 Coze 工作流 |\n| `INTERVIEW_USE_MOCK` 留空 | 自动模式，有 `COZE_PAT` 时调用 Coze，否则使用 mock |\n\n真实 Coze 联调时设置：\n\n```bash\nINTERVIEW_USE_MOCK=false\nCOZE_PAT=\nCOZE_APP_ID=\n```\n\n## Coze 复现资料\n\n本仓库已归档当前可公开的 Coze 工作流导出和 7 个职业模版：\n\n- 工作流导出：`docs\u002Fcoze\u002Fworkflow-exports\u002F`\n- 职业模版：`docs\u002Fcoze\u002Fjob-templates\u002F`\n- 复现指南：`docs\u002FCOZE_REPRODUCTION.md`\n- 代码映射：`docs\u002FWORKFLOW_CODE_MAPPING.md`\n\n工作流导出中包含准备阶段与单题评估所需的核心子流程，也包含可选父流程。真实 Coze 复现时，建议先使用子流程链路跑通，再打开父流程联调。\n\n## 主流程\n\n```mermaid\nflowchart TD\n  A[\"创建面试：简历 + JD\"] --> B[\"准备阶段工作流\"]\n  B --> C[\"生成题目集与评价要点\"]\n  C --> D[\"逐题视频作答\"]\n  D --> E[\"单题多模态评估\"]\n  E --> F[\"单题报告\"]\n  F --> G[\"综合报告\"]\n```\n\n## 核心文件\n\n| 文件 | 说明 |\n| --- | --- |\n| `src\u002Flib\u002Finterview-store.ts` | 面试 session 状态机、后台队列、本地持久化 |\n| `src\u002Flib\u002Finterview-workflow-gateway.ts` | Coze 工作流调用网关 |\n| `src\u002Flib\u002Fcoze-client.ts` | Coze API 调用、轮询、文件上传 |\n| `src\u002Flib\u002Fcoze-workflows.ts` | workflow id 默认值与环境变量覆盖 |\n| `src\u002Flib\u002Finterview-types.ts` | 工作流和业务对象的 TypeScript 类型 |\n| `src\u002Flib\u002Finterview-mock.ts` | 本地 mock\u002Ffallback 数据 |\n| `src\u002Flib\u002Finterview-final-report.ts` | 综合报告生成 |\n\n## 常用命令\n\n```bash\nnpm run dev\nnpm run lint\nnpm run build\nnpm run smoke\n```\n\n真实 Coze 联调脚本：\n\n```bash\nnode scripts\u002Fcoze-preparation-smoke.mjs\nnode scripts\u002Fcoze-single-question-smoke.mjs \u003CsessionId> \u003Cqid>\n```\n\n## 文档\n\n- `docs\u002FCOZE_REPRODUCTION.md`: 如何在 Coze 上复现工作流和知识库\n- `docs\u002FWORKFLOW_CODE_MAPPING.md`: 工作流和代码文件的对应关系\n- `docs\u002FWORKFLOW_MEMORY.md`: 工作流字段契约和历史约定\n\n## 安全配置\n\n- 不要提交 `.env.local`、`.data\u002F`、`.next\u002F`、`node_modules\u002F`\n- 真实 Coze PAT、数据库连接串和认证密钥请只保存在本地 `.env.local` 或部署平台环境变量中\n","这是一个基于Next.js与Coze工作流的多模态面试原型系统，旨在从候选人简历和岗位JD出发，自动生成结构化面试题并支持逐题视频作答及多模态评估。其核心功能包括简历和JD解析、岗位模版匹配、题目生成、视频录制与提交以及单题文本、音频、视频多模态评估，并最终生成综合面试报告。技术上采用了TypeScript、React、Postgres等现代Web开发技术栈。该系统适合用于教育场景下的课程设计或毕业设计项目，同时也适用于需要构建研究原型或进行Coze工作流复现的研究人员。默认支持本地mock模式运行，方便在没有实际Coze配置的情况下测试主要流程。",2,"2026-06-11 04:00:50","CREATED_QUERY"]