双胞胎
用于个性化面试准备的情境感知数字双胞胎系统。
TwiNSYNC是一个上下文增强的数字孪生系统,它模拟了 *你* 会用你的经验、语气和从多个来源实时提取的内容来回答面试问题。它由模型上下文协议(MCP)原理提供支持,可以动态地获取相关上下文并将其注入到每个响应中。
什么是TwiNSYNC?
TwiNSYNC通过创建自己的智能表示来协助面试准备。它作为一个数字模型,能够理解你的体验,用你的声音进行交流,并反映你的语气和风格。
这个系统从你以前的工作、写作和项目中学习。当被提出一个问题时,它会生成与以下方式一致的答案 *你* 会做出回应——清晰、自信、个性化。
它将实时信息(如您的LinkedIn帖子或YouTube演示文稿)与您的简历和历史记录相结合,帮助您自然、真实地回答具有挑战性的问题,有效地指导您完成面试过程。
系统概述
User Query
↓
[1] Query Understanding → classify + extract topic
↓
[2] Prompt Blueprint Selection → build template
↓
[3] Context Fetchers (MCPs):
- LinkedIn
- X (Twitter)
- YouTube
- Memory DB (projects, past Q&A)
↓
[4] Prompt Composer → inject everything into prompt template
↓
[5] LLM or Agentic Framework → generate Twin's response
↓
[6] Output Display + Trace (sources used, feedback, rating)技术栈
| 组件 | 技术 |
|---|---|
| 后端 | FastAPI |
| LLM | OpenAI GPT-4o(可以互换) |
| 内存 | Chroma/SQLite+句子转换器 |
| 网络爬虫 | 剧作家/SerpAPI/非官方API |
| 可选UI | Streamlit、Gradio或CLI |
| 代理层 | LangGraph(可选) |
项目结构
twinsync/
├── app/
│ ├── main.py # FastAPI entrypoint
│ ├── core/
│ │ ├── prompt_builder.py # Injects context into prompt
│ │ ├── query_classifier.py# Extracts type & topic
│ │ └── twin_persona.yaml # Stores your identity template
│ ├── mcp/
│ │ ├── linkedin.py # Fetches LinkedIn data
│ │ ├── x.py # Fetches Twitter posts
│ │ ├── youtube.py # Gets transcripts
│ ├── models/
│ │ ├── memory_db.py # Local memory (past answers, projects)
│ │ └── embeddings.py
│ └── routes/
│ └── ask.py # Endpoint: /ask构建计划(MVP阶段)
第一阶段:核心提示系统
- \[\]定义
twin_persona.yaml(你的静态身份) - \[\]构建一个提示模板(例如基于STAR的行为)
- \[\]添加基本查询分类器(
technical,behavioral等等) - \[\]创建
ask使用FastAPI的端点
阶段2:MCP上下文获取器
- \[\]构建
mcp.linkedin.py:刮除器/刮除器 - \[\]构建
mcp.x.py:从您的帐户中获取最新推文 - \[\]构建
mcp.youtube.py:从已知会谈中获取记录 - \[\]集成
memory_db.py(简单的JSON或Chroma)
第三阶段:快速作曲
- \[\]基于意图+查询组装动态上下文
- \[\]将所有上下文注入所选提示模板
- \[\]对LLM+的最终调用返回格式化响应
第四阶段:产出+评估
- \[\]显示Twin的回复
- \[\]包括跟踪:源列表、使用的内存、注入的上下文
- \[\]添加可选的评估者来对双胞胎的答案进行评分
拓展目标
- \[\]通过Streamlit或Gradio的用户界面
- \[\]反馈回路:通过正确答案训练双胞胎
- \[\]使用LangGraph/CrewAI进行高级行为模拟
提示模板示例
persona:
name: "Zubin"
role: "Product-Minded Technologist"
tone: "Clear, warm, confident"
prompt_template: |
You are {{persona.name}}, a {{persona.role}}.
Respond with {{persona.tone}} in a job interview scenario.
Role Context: {{role_applied}}
Question Topic: {{interview_topic}}
From Resume: {{memory_context}}
LinkedIn Insight: {{linkedin_snippet}}
From X: {{x_snippet}}
YouTube Snippet: {{youtube_snippet}}
Question: {{user_query}}
Answer clearly and in your own voice.学分和命名
项目名称: 双胞胎™
一个上下文感知的MCP系统,使您的数字孪生兄弟与一切保持同步 *你* 是。
下一步
要启动服务器,请执行以下操作:
uvicorn app.main:app --reload使用模拟问题进行测试:
curl -X POST http://localhost:8000/ask -d '{"query": "Tell me about a time you led a design team."}'