数字孪生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](app/api/%5Btransport%5D/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 | 根据职位描述运行完整的面试模拟 |
文档
- docs/implementation-plan.md –每周实施计划和进度
- docs/design.md –技术设计决策
- docs/ARCHITECTURE.md –系统架构和组件
- docs/mcp.md –MCP集成详细信息
- docs/GIT_WORKFLOW.md –分支机构和公关指南
- docs/performance-iimprovement-aniraj.md –第4周优化结果
部署
现场演示: 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咨询公司。
