Skip to content

About

面向大学生求职训练、校园招聘模拟和岗位能力评估场景,构建AI智能面试官系统。系统支持简历解析、岗位知识库检索、结构化面试、多轮追问、回答评分、反馈报告、面试记录和后台题库管理,覆盖大模型、RAG、Agent、前端交互和后端管理模块。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

65 Commits

Folders and files

Repository files navigation

TalentAgent — AI 智能面试官系统

个人开源项目 | LangGraph + Milvus RAG + 语音面试
面向求职训练与校园招聘,支持多轮追问、多维度评分、语音交互

Python FastAPI LangGraph License

关键词:

✨ 核心亮点

  • 🤖 多Agent协作:InterviewAgent(面试官)+ SqlAgent(数据助手)双Agent架构
  • 🔍 RAG题库检索:Milvus 双路混合检索(BM25稀疏 + COSINE密集),RRF融合排序
  • 🗣️ 语音面试:faster-whisper STT + edge-tts TTS,支持实时语音交互
  • 📊 多维度评分:专业能力 / 项目经验 / 行为表达 三维度自动评分
  • 🔧 SQL Agent:自然语言查询招聘数据,自动生成SQL执行
  • 💾 跨会话记忆:上下文压缩 + 会话恢复,面试进度不丢失
  • 🌐 双端架构:候选人端(面试大厅)+ 管理后台(企业/岗位/题库管理)

🏗️ 系统架构

🛠️ 技术栈

组件 技术 用途
Web框架 FastAPI + Uvicorn 异步API + WebSocket
Agent框架 LangGraph (ReAct) 多Agent编排与工具调用
LLM GLM-4 / DeepSeek 面试对话、评分生成
向量化 智谱 text-embedding-v4 题库检索
向量库 Milvus 双路混合检索(BM25+COSINE)
数据库 MySQL 8.0 业务数据持久化
STT faster-whisper (base) 本地语音识别
TTS edge-tts Microsoft 免费语音合成
前端 Vue 3 + Vite + Element Plus 面试大厅界面

🚀 快速开始

前置条件

  • Python 3.11+
  • Docker + Docker Compose(用于 MySQL/Milvus)
  • GLM-4 API Key 或 DeepSeek API Key

安装

# 1. 克隆项目
git clone https://github.com/CW5201/TalentAgent.git
cd TalentAgent

# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,填入 API Key 和数据库配置

# 3. 启动依赖服务
docker-compose up -d

# 4. 安装依赖并启动
pip install -r requirements.txt
python -m server.main

访问地址

📊 面试流程

上传简历 → 选择岗位 → 开始面试
    │
    ├─【开场】欢迎语 + 流程介绍
    ├─【环节1】自我介绍(1题)
    ├─【环节2】项目深挖(20%,结合简历提问)
    ├─【环节3】专业能力(65%,Milvus题库检索出题)
    ├─【环节4】行为面试(15%,软技能考察)
    ├─【环节5】反问环节(1题)
    └─【评分】多维度评分报告生成

📁 目录结构

TalentAgent/
├── server/                 # 后端核心
│   ├── agent/             # Agent 实现
│   │   ├── base_agent.py  # 基类:ReAct模式、消息管理、流式输出
│   │   ├── interview_agent.py  # 面试Agent
│   │   └── sql_agent.py   # SQL Agent
│   ├── api/               # API 层(FastAPI路由)
│   ├── dao/               # 数据访问层(MySQL + Milvus)
│   ├── service/           # 业务逻辑层
│   ├── utils/             # 工具模块(语音管道、LLM封装)
│   └── main.py           # FastAPI应用入口
│
├── webui/                 # 前端(Vue 3 + Vite)
├── scripts/               # 数据同步脚本
├── eval/                  # 评测模块
└── src/                   # 设计文档(架构、UML、测试用例)

🔧 核心设计

BaseAgent 抽象层

class BaseAgent:
    """通用Agent基类,封装ReAct模式"""
    def _get_tools(self) -> list: ...      # 子类实现工具列表
    def _build_system_prompt_content(self) -> str: ...  # 子类实现Prompt
    async def chat_stream(self, msg: str): ...  # 流式对话

Milvus 双路检索

# BM25稀疏 + COSINE密集 → RRF融合排序
result = milvus.hybrid_search(
    reqs=[dense_req, sparse_req],
    ranker=RRFRanker(k=100),
)

语音面试

音频流 → WebSocket → Whisper STT → Agent处理 → TTS → 音频流返回

🚀 部署指南

环境要求

  • Python 3.11+
  • Node.js 18+
  • MySQL 8.0
  • Milvus 2.x

后端启动

pip install -r requirements.txt
uvicorn server.main:app --host 0.0.0.0 --port 8080

前端启动

cd webui/webui
npm install
npm run dev

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/xxx)
  3. 提交更改
  4. 打开 Pull Request

❓ 常见问题

Q: 面试时提示"该岗位尚未配置AI面试官"怎么办? A: 请联系管理员在后台配置Agent参数。

Q: 语音面试没有声音怎么办? A: 请检查浏览器麦克风权限设置,确保允许使用麦克风。

📄 License

MIT License


如果对你有帮助,请给个 ⭐ Star!

About

面向大学生求职训练、校园招聘模拟和岗位能力评估场景,构建AI智能面试官系统。系统支持简历解析、岗位知识库检索、结构化面试、多轮追问、回答评分、反馈报告、面试记录和后台题库管理,覆盖大模型、RAG、Agent、前端交互和后端管理模块。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages