数字孪生面试代理

数字孪生面试代理是一种基于RAG架构和MCP集成的个人AI代理,能够自主代表用户在专业面试中进行回答。

  • by Ethanduong-BA
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Ethanduong-BA/digital-twin-rag-solution

使用说明

数字孪生I(RAG解决方案)

A. 数字孪生 --一个个人AI代理,能够使用RAG架构和MCP集成在专业面试中自主代表你。

架构概述

User/Recruiter ──► Interview Chat UI
                        │
                        ▼
              ragInterview() Server Action
                        │
         ┌──────────────┴──────────────┐
         ▼                              ▼
  Upstash Vector                    Groq LLaMA 3.1
  (profile search)                  (answer generation)
         │                              │
         └──────────────┬──────────────┘
                        ▼
            First-Person Answer + Sources
                        
              ──── MCP Integration ────
                        
  VS Code Copilot ──► search_profile / get_profile_section / run_interview
  Claude Desktop ──┘

              ──── Interview Simulation ────
                        
  Job Descriptions (/jobs) ──► Simulation Script ──► Results (/interview)

特性

  • 面试模拟UI:基于网络的面试问答聊天界面
  • RAG提供的答案:基于专业概况数据的回应
  • 第一人称角色:用真实的声音回答“我”
  • MCP工具: search_profile, get_profile_section,以及 run_interview 用于AI代理集成
  • 面试模拟:根据实际职位描述进行批量测试
  • 来源引用:查看每个答案使用了哪些配置文件部分
  • 分析仪表板:跟踪查询模式和响应质量

仓库的规划

路径 目的
应用程序/ Next.js应用路由器视图和服务器操作
app/actions-interview.ts 用数字孪生角色采访RAG服务器行为
app/api/[transport]/route.ts 带3个工具的MCP服务器端点
app/analytics/page.tsx 分析仪表板
组件/面试-chat.tsx 面试模拟聊天界面
lib/profile-search.ts 使用Zod模式进行轮廓向量搜索
lib/面试模拟器.ts MCP面试模拟引擎
lib/analytics。ts Redis支持的分析跟踪
data/profile.json 专业档案数据
工作/ 模拟的真实职位描述
面试/ 面试模拟结果
scripts/upstart-profile.ts 将配置文件数据嵌入Uptash Vector
脚本/测试面试.ts 自动化面试测试工具
脚本/运行界面模拟。ts 全程面试模拟跑者

快速开始

# Install dependencies
pnpm install

# Embed profile data into vector database
pnpm upsert-profile

# Run automated interview tests (optional)
pnpm test-interview

# Start the development server
pnpm dev

访问 http://localhost:3000 开始采访数字孪生兄弟!

环境变量

创建 .env.local 与:

# Required
UPSTASH_VECTOR_REST_URL=https://your-index.upstash.io
UPSTASH_VECTOR_REST_TOKEN=your-token
GROQ_API_KEY=your-groq-api-key

# Digital Twin Identity
OWNER_NAME=Your Full Name
OWNER_FIRST_NAME=YourFirstName

# Optional (for analytics)
UPSTASH_REDIS_REST_URL=https://your-redis.upstash.io
UPSTASH_REDIS_REST_TOKEN=your-redis-token
变量 必填 描述
UPSTASH_VECTOR_REST_URL 是 Uptash Vector数据库的REST端点
UPSTASH_VECTOR_REST_TOKEN 是 Uptash Vector的承载令牌
GROQ_API_KEY 是 Groq Cloud API密钥
OWNER_NAME 是 用户界面中显示全名(例如“Aniraj Khadgi”)
OWNER_FIRST_NAME 是 欢迎信息的名字(例如“Aniraj”)
UPSTASH_REDIS_REST_URL 否 分析存储(回退到内存中)
UPSTASH_REDIS_REST_TOKEN 否 Redis身份验证

MCP集成

该项目公开了用于AI代理集成的MCP工具:

可用工具

工具 说明
search_profile 跨专业档案的语义搜索
get_profile_section 检索特定部分(总结、经验、技能等)
run_interview 根据工作要求运行面试模拟

VS代码MCP配置

增添 .vscode/mcp.json:

{
  "servers": {
    "digital-twin": {
      "type": "http",
      "url": "http://localhost:3000/api/mcp"
    }
  }
}

Claude桌面配置

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "digital-twin": {
      "type": "http",
      "url": "http://localhost:3000/api/mcp"
    }
  }
}

配置文件数据结构

data/profile.json
├── personalInfo (name, title, location, work rights)
├── professionalSummary (elevator pitch, unique value proposition)
├── skills (software_development, business_analytics, technical, soft_skills)
├── experience (roles, responsibilities, achievements, metrics)
├── education (degrees, coursework)
├── certifications (AWS, Docker, Terraform)
├── projects (professional + personal)
├── interview_qa (pre-crafted responses)
├── preferences (role interests, culture fit)
└── contact (email, LinkedIn, portfolio, GitHub)

面试问题示例

问题 预期主题
“说说你自己” 专业总结、双重专业知识、地点
“你的技术技能是什么?” React、Next.js、Python、SQL、分析工具
“描述您在LIS尼泊尔的经验” B2B SaaS,50000多名用户,API改进
“您的主要成就是什么?” API提高40%,NPS提高25%
“告诉我你的教育背景” 南加州大学硕士,博卡拉大学学士

脚本

命令 描述
pnpm dev 启动开发服务器
pnpm build 为生产而建
pnpm upsert-profile 将profile.json嵌入Uptash Vector
pnpm test-interview 运行自动化面试测试套件
pnpm run-simulation 根据职位描述运行完整的面试模拟

文档

部署

现场演示: https://digital-twin-rag-solution.vercel.app

部署到Vercel

# Install Vercel CLI
npm i -g vercel

# Login and deploy
vercel login
vercel --prod

环境变量(Vercel仪表板)

在Vercel项目设置中添加这些→ 环境变量:

变量 描述
UPSTASH_VECTOR_REST_URL Uptash矢量端点
UPSTASH_VECTOR_REST_TOKEN Uptash矢量令牌
GROQ_API_KEY Groq Cloud API密钥
OWNER_NAME UI的全名
OWNER_FIRST_NAME 欢迎信息的名字
UPSTASH_REDIS_REST_URL 升级Redis端点(分析)
UPSTASH_REDIS_REST_TOKEN Uptash Redis令牌

课程参考

该项目是 数字孪生I课程 来自ausbiz咨询公司。