Skip to content

evelynzhang88/langgraph-interview-202601

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 LangGraph 多智能体面试系统

基于 LangGraph 构建的多智能体面试系统,包含 HR、技术面试官、技术总监三个智能体,协同完成候选人面试评估。

✨ 功能特点

  • 多智能体协作:HR → 技术面试官 → 技术总监 三轮面试
  • 结构化评估:每位面试官输出包含分数和评语的 JSON 评价
  • 智能路由:Supervisor 节点自动判断面试进度并路由
  • 综合评估:Summary 节点汇总所有评价,判断是否录用
  • 现代化 UI:响应式设计,深色主题,流畅动画

🏗️ 系统架构

┌─────────────────────────────────────────────────────────────┐
│                      InterviewState                         │
│  - messages: 消息列表                                        │
│  - currentInterviewer: 当前面试官                            │
│  - evaluations: 评价记录                                     │
│  - finalResult: 最终结果                                     │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                       Graph Flow                             │
│                                                              │
│   START → Router ─┬→ HR Node ────┐                          │
│                   ├→ Tech Node ──┼→ Supervisor → Router     │
│                   └→ Director ───┘       │                   │
│                                          ▼                   │
│                                    Summary Node → END        │
└─────────────────────────────────────────────────────────────┘

📦 安装

# 安装依赖
npm install

# 设置环境变量 (二选一)

# 方式一:使用 DeepSeek(默认)
export DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY"

# 方式二:使用 OpenAI
export OPENAI_API_KEY="your-openai-api-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
export MODEL_NAME="deepseek-chat"

🚀 运行

# 启动服务
npm start

# 或开发模式(自动重载)
npm run dev

访问 http://localhost:3000 开始面试

📁 项目结构

├── src/
│   ├── interview-graph.js    # LangGraph 图定义和节点实现
│   └── server.js             # Express 服务器
├── public/
│   └── index.html            # 前端界面
├── package.json
└── README.md

🔧 核心组件

InterviewState

{
  messages: [],           // 对话消息列表
  currentInterviewer: "", // 当前面试官 (hr/tech/director)
  evaluations: {},        // 各面试官评价
  interviewerFinished: false,
  finalResult: null       // 最终评估结果
}

节点说明

节点 功能
hr_node HR 面试,评估软技能和文化匹配度
tech_node 技术面试,评估技术能力
director_node 总监面试,评估领导力和战略思维
supervisor_node 解析面试官是否完成,决定路由
summary_node 汇总评价,判断是否录用

评价 JSON 格式

{
  "interviewer": "hr",
  "finished": true,
  "evaluation": {
    "score": 85,
    "comment": "候选人表现优秀...",
    "strengths": ["沟通能力", "团队协作"],
    "weaknesses": ["某方面待提升"]
  }
}

录用标准

  • 平均分 ≥ 70
  • 所有单项分数 ≥ 60

🎨 界面预览

  • 深色科技风格主题
  • 实时显示当前面试阶段
  • 支持 Markdown 格式消息
  • 流畅的加载动画

📝 API 接口

开始面试

POST /api/interview/start
Body: { "candidateName": "张三" }
Response: { "success": true, "sessionId": "...", "message": "..." }

发送回复

POST /api/interview/respond
Body: { "sessionId": "...", "message": "我的回答是..." }
Response: { "success": true, "message": "...", "isComplete": false }

获取状态

GET /api/interview/status/:sessionId
Response: { "success": true, "state": {...} }

🔑 环境变量

变量 说明 默认值
DEEPSEEK_API_KEY DeepSeek API 密钥 -
OPENAI_API_KEY OpenAI API 密钥(备选) -
OPENAI_BASE_URL API 基础 URL https://api.deepseek.com
MODEL_NAME 模型名称 deepseek-chat
PORT 服务端口 3000

💡 提示:默认使用 DeepSeek,只需设置 DEEPSEEK_API_KEY 即可。如需使用 OpenAI,请同时设置 OPENAI_BASE_URLMODEL_NAME

📄 License

MIT

About

langgraph-interview-202601

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors