返回作品
01

Mock-Interview

AI 模拟面试系统

// Year

2025.12 – 2026.02

// Role

Full-Stack Developer

// Duration

3 months

Mock-Interview 系统主界面

面试对话界面 — 实时语音交互与动态追问

// Overview

一个可以在本地跑起来的 AI 面试官。上传简历和知识库文档,它会基于你的背景生成针对性问题,支持实时语音对话,面试结束后输出多维度量化报告。不是玩具——RTX 5080 上端到端延迟约 4 秒,面试成功率 98%。

// Challenge

挑战

核心难点是全链路语音的延迟控制。从用户说话到 AI 回复出声,中间经过 ASR → LLM → TTS 三个模型,任何一环卡住都会破坏对话的自然感。另一个挑战是让 AI 面试官具备真正的追问能力,而不是照着题库念。

// Approach

方案

WebSocket 双向通信保证语音流的实时性。ASR 用 FunASR 的 2-pass 模型(先出草稿再修正),TTS 用 CosyVoice2 的流式输出(不等整句生成完就开始播放)。LLM 侧做了激进的句子切分和 hedge delay 优化,把首 token 延迟压到 0.29s。追问能力通过 RAG 检索用户简历 + 知识库上下文实现,每轮对话都带完整的面试状态。

// Tech Stack

技术栈

React 18TypeScriptFastAPIOllama (qwen3:8b)FunASRCosyVoice2ChromaDBPostgreSQLRedisWebSocketDocker ComposeCUDA
// Highlights

亮点

  • 01

    全链路语音:FunASR 2-pass ASR + CosyVoice2 流式 TTS + Ollama 本地推理,端到端延迟 ~4s

  • 02

    RAG 知识库:异步文档解析、智能分块、向量化入库,SSE 流式输出带引用溯源

  • 03

    面试 Agent:简历结构化解析 → 定制题目生成 → 多轮动态追问 → 量化报告

  • 04

    行为监测:实时眼神接触、面部表情、头部姿态分析,纳入最终评估

  • 05

    GPU 利用率 91%(14.5GB/16GB VRAM),面试会话成功率 98%

// Result

成果

完整的面试系统:支持 PDF/Markdown/TXT 简历解析,多轮动态追问,实时行为监测(眼神、表情、头部姿态),自动生成包含内容质量、表达流畅度、行为分析的量化报告。Docker Compose 一键部署 6 个服务。

// Reflection

反思与收获

这个项目让我理解了"延迟即体验"。技术指标上 4 秒的端到端延迟看起来不短,但通过流式输出和视觉反馈,用户感知到的等待远小于实际延迟。工程上最大的收获是学会了在多个异步服务之间做状态编排——6 个 Docker 容器的协调比单体应用复杂一个量级。

在 GitHub 查看
// Gallery
系统架构图

六服务微架构:React + FastAPI + Ollama + FunASR + CosyVoice2 + 向量数据库

面试报告

多维度量化面试报告 — 内容质量、表达流畅度、行为分析