数字双RAG系统
您的人工智能面试准备助手使用RAG(检索增强生成)。
🚀 快速开始
运行完整的RAG应用程序(推荐):
.venv/Scripts/python.exe digitaltwin_rag.py此生产就绪应用程序将:
- 连接到Uptash矢量数据库
- 自动加载您的个人资料数据(如果数据库为空)
- 初始化Groq AI以获取响应
- 启动交互式聊天界面
替代方案:使用原始实现
1.首先,将数据嵌入Uptash矢量数据库:
.venv/Scripts/python.exe embed_digitaltwin.py2.运行交互式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):
- 初始化:
- 通过内置嵌入连接到Uptash矢量数据库 - 初始化Groq AI客户端 - 检查数据是否已加载
- 数据加载 (如果数据库为空,则自动):
- 阅读 content_chunks 来自您的digitalwin.json - 为每个块创建丰富的文本 - 使用元数据上传到Uptash
- 查询处理:
- 回答你的自然语言问题 - 执行语义搜索以查找相关块 - 使用Groq LLM生成上下文响应 - 以第一人称作为您的数字孪生兄弟进行回应
替代实施:
- 嵌入阶段 (
embed_digitaltwin.py):手动分块和嵌入数据 - 查询阶段 (
digital_twin_mcp_server.py):提供高级查询功能
💡 示例问题
试着问你的数字孪生兄弟:
- “告诉我你的工作经历”
- “你的技术技能是什么?”
- “描述你的职业目标”
- “告诉我你的作品集网站项目”
- “是什么让你非常适合这个角色?”
- “你如何跟上新技术的步伐?”
- “你的长处是什么?”
🔧 配置
所有配置都在 .env:
UPSTASH_VECTOR_REST_URL-您的Uptash矢量数据库URLUPSTASH_VECTOR_REST_TOKEN-您的Uptash身份验证令牌GROQ_API_KEY-用于LLM响应的Groq API密钥
📝 定制
编辑 digitaltwin.json 更新您的个人资料。确保包括:
- 个人信息和联系方式
- 教育背景和成就
- 技术和软技能
- 带有描述和技术的项目
- 工作经验(学术或专业)
- 职业目标和抱负
- 内容块 -用于RAG检索的预格式化块
这 content_chunks 数组应包含以下对象:
id:唯一标识符title:块标题type:内容类型(摘要、技能、项目等)content:实际文本内容metadata:附加元数据(类别、标签)
更新后,如果数据库重置,主应用程序将在下次运行时自动重新加载数据。
🎯 特性
✅ 自动数据加载 -检测空数据库并加载数据 ✅ 语义搜索 -使用向量相似度查找相关信息 ✅ AI驱动的响应 -使用Groq的快速LLM推理 ✅ 第一人称回答 -在面试场景中像你一样说话 ✅ 交互式聊天 -自然对话界面 ✅ 内置嵌入件 -Uptash处理嵌入生成 ✅ 生产就绪 -基于经过验证的实施模式
