面试准备RAG系统

一个基于检索增强生成(RAG)技术的AI面试准备助手,自动加载个人资料并使用语义搜索和AI生成个性化面试回答。

  • by saikophat
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 saikophat/digital-twin-mcp-server

使用说明

数字双RAG系统

您的人工智能面试准备助手使用RAG(检索增强生成)。

🚀 快速开始

运行完整的RAG应用程序(推荐):

.venv/Scripts/python.exe digitaltwin_rag.py

此生产就绪应用程序将:

  • 连接到Uptash矢量数据库
  • 自动加载您的个人资料数据(如果数据库为空)
  • 初始化Groq AI以获取响应
  • 启动交互式聊天界面

替代方案:使用原始实现

1.首先,将数据嵌入Uptash矢量数据库:

.venv/Scripts/python.exe embed_digitaltwin.py

2.运行交互式RAG系统:

.venv/Scripts/python.exe digital_twin_mcp_server.py

或者用示例问题进行测试:

.venv/Scripts/python.exe digital_twin_mcp_server.py --test

📁 项目结构

digital-twin-workshop/
├── .env                          # API keys (Upstash, Groq)
├── digitaltwin.json              # Your professional data with content chunks
├── digitaltwin_rag.py            # Main RAG application (recommended)
├── embed_digitaltwin.py          # Embedding script (alternative)
├── digital_twin_mcp_server.py    # RAG query system (alternative)
├── README.md                     # This file
└── data/                         # Additional data files

🛠️ 运作原理

主要应用(digitaltwin_rag.py):

  1. 初始化:

    • 通过内置嵌入连接到Uptash矢量数据库
    • 初始化Groq AI客户端
    • 检查数据是否已加载
  2. 数据加载 (如果数据库为空,则自动):

    • 阅读 content_chunks 来自您的digitalwin.json
    • 为每个块创建丰富的文本
    • 使用元数据上传到Uptash
  3. 查询处理:

    • 回答你的自然语言问题
    • 执行语义搜索以查找相关块
    • 使用Groq LLM生成上下文响应
    • 以第一人称作为您的数字孪生兄弟进行回应

替代实施:

  • 嵌入阶段 (embed_digitaltwin.py):手动分块和嵌入数据
  • 查询阶段 (digital_twin_mcp_server.py):提供高级查询功能

💡 示例问题

试着问你的数字孪生兄弟:

  • “告诉我你的工作经历”
  • “你的技术技能是什么?”
  • “描述你的职业目标”
  • “告诉我你的作品集网站项目”
  • “是什么让你非常适合这个角色?”
  • “你如何跟上新技术的步伐?”
  • “你的长处是什么?”

🔧 配置

所有配置都在 .env:

  • UPSTASH_VECTOR_REST_URL -您的Uptash矢量数据库URL
  • UPSTASH_VECTOR_REST_TOKEN -您的Uptash身份验证令牌
  • GROQ_API_KEY -用于LLM响应的Groq API密钥

📝 定制

编辑 digitaltwin.json 更新您的个人资料。确保包括:

  • 个人信息和联系方式
  • 教育背景和成就
  • 技术和软技能
  • 带有描述和技术的项目
  • 工作经验(学术或专业)
  • 职业目标和抱负
  • 内容块 -用于RAG检索的预格式化块

这 content_chunks 数组应包含以下对象:

  • id:唯一标识符
  • title:块标题
  • type:内容类型(摘要、技能、项目等)
  • content:实际文本内容
  • metadata:附加元数据(类别、标签)

更新后,如果数据库重置,主应用程序将在下次运行时自动重新加载数据。

🎯 特性

✅ 自动数据加载 -检测空数据库并加载数据 ✅ 语义搜索 -使用向量相似度查找相关信息 ✅ AI驱动的响应 -使用Groq的快速LLM推理 ✅ 第一人称回答 -在面试场景中像你一样说话 ✅ 交互式聊天 -自然对话界面 ✅ 内置嵌入件 -Uptash处理嵌入生成 ✅ 生产就绪 -基于经过验证的实施模式