数字孪生组合AI助手

一个基于Next.js的组合应用,集成了数字孪生AI助手,支持Claude Desktop、Groq LLaMA 3.3和语义搜索功能,具备企业级安全性和全面的测试。

  • by TheaMarieM
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 TheaMarieM/digital-twin-portfolio

使用说明

# 数字孪生组合

基于人工智能的产品组合,集成MCP、RAG系统和生产就绪安全

Next.js组合应用程序,具有由Claude Desktop、Groq LLaMA 3.3和语义搜索功能支持的数字孪生人工智能助手。内置企业级安全、速率限制和全面测试。


特性

现代UI/UX

  • 渐变主题:紫色到粉色渐变设计,带有玻璃形态效果
  • 深色模式:完全支持CSS自定义属性的主题切换
  • 响应式设计:采用自适应布局的移动优先方法
  • 自定义动画:平滑过渡、悬停效果和微交互
  • 漂浮猫助手:用于AI聊天导航的动画猫按钮
  • 专业足球运动员:具有渐变悬停效果的社交链接

AI和MCP集成

  • Claude桌面集成: 可操作的 -完全支持MCP协议
  • 7生产工具:投资组合查询、技能评估、面试准备、RAG搜索
  • 数字双胞胎助手:对专业经验的情境感知回应
  • FastAPI MCP服务器:HTTP和stdio通信模式

RAG系统

  • 语义搜索:带有16个嵌入式投资组合块的Uptash Vector
  • OpenAI嵌入:text-embedding-3-small用于高质量矢量
  • 上下文检索:智能投资组合数据提取
  • 本地嵌入:用于开发的可选句子转换器(384 dim)

企业安全

  • 速率限制:基于Redis的分布式速率限制(20请求/分钟聊天,30请求/分钟RAG)
  • 输入验证:全面的消息/查询清理
  • 内容过滤:API密钥检测、密码过滤、防止提示注入
  • 加密安全会话:256位安全会话ID生成
  • 安全标头:X-Content类型选项、X-Frame-Options、X-XSS-Protection
  • 会话管理:每个会话限制100条消息,并自动清理

数据管理

  • 升级Redis:聊天记录、会话存储、速率限制
  • STAR格式:5个结构化的专业经验项目
  • 面试问答:10对预先生成的面试培训对
  • 语义缓存:余弦相似度(0.95阈值),100个项目容量,30分钟TTL

快速开始

先决条件

  • Node.js 18+及 pnpm 安装
  • python 3.8+带 点
  • Uptash 帐户(Redis+Vector)
  • 格罗克API key(或用于嵌入的OpenAI)

安装

# Clone the repository
git clone https://github.com/TheaMarieM/digital-twin-portfolio.git
cd digital-twin-portfolio

# Install Node.js dependencies
pnpm install

# Create Python virtual environment
python -m venv .venv
.venv\Scripts\Activate.ps1  # Windows PowerShell

# Install Python dependencies
pip install -r requirements.txt

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your API keys

环境变量

使用以下内容创建.env.local文件:

# OpenAI (for embeddings)
OPENAI_API_KEY=sk-...

# Groq (for LLM responses)
GROQ_API_KEY=gsk_...

# Upstash Vector
UPSTASH_VECTOR_REST_URL=https://...upstash.io
UPSTASH_VECTOR_REST_TOKEN=...

# Upstash Redis
UPSTASH_REDIS_REST_URL=https://...upstash.io
UPSTASH_REDIS_REST_TOKEN=...

运行应用程序

# Start Next.js dev server
pnpm dev
# Open http://localhost:3001

# Start MCP server (optional, for Claude Desktop)
python mcp/server.py
# Server runs on http://127.0.0.1:3000

建筑

my-ai-app/
 app/                        # Next.js App Router
    api/
       chat/              # AI chat endpoint (Groq + LLaMA 3.3)
       rag/               # RAG semantic search endpoint
       metrics/           # Performance metrics
    components/
       sections/          # Page sections (Hero, Skills, Contact)
       ui/                # Reusable UI components
    page.tsx               # Home page with all sections
 mcp/                        # Model Context Protocol Server
    server.py              # FastAPI HTTP server (port 3000)
    stdio_server.py        # stdio MCP server for Claude Desktop
    tools/                 # MCP tool implementations
        portfolio_tools.py # Portfolio queries, projects, skills
        interview_tools.py # Interview Q&A, question generation
        rag_tools.py       # Semantic search, embeddings
 data/
    profile.json           # 5 STAR-format portfolio items
    interview_qa.jsonl     # 10 interview training Q&A pairs
 scripts/
    chat_with_ollama.py    # CLI chat with RAG
    index_local_embeddings.py # Vector database upserter
 docs/
     CLAUDE_DESKTOP_SETUP.md # MCP setup for Claude Desktop
     VERCEL_DEPLOY.md        # Vercel deployment guide

MCP服务器

可用工具

工具 说明
query_portfolio 自然语言作品集查询
get_projects 列出所有具有STAR详细信息的项目
get_skills 按类别提取技术技能
search_experience 基于关键字的体验搜索
ask_interview_question 基于作品集的面试答案
get_interview_questions 按类别列出的常见面试问题
语义搜索 基于RAG的语义搜索

安全特性

速率限制

  • 聊天API:20个请求/分钟(基于Redis,分布式)
  • RAG API:30个请求/分钟(内存中,每个会话)

输入验证

  • 消息长度:聊天最多500个字符,RAG最多300个字符
  • 会话消息:每个会话限制100条消息
  • 内容过滤:API密钥检测、密码过滤、SQL注入预防

部署

维塞尔

# Install Vercel CLI
npm i -g vercel

# Deploy
vercel --prod

# Set environment variables:
vercel env add OPENAI_API_KEY
vercel env add GROQ_API_KEY
vercel env add UPSTASH_VECTOR_REST_URL
vercel env add UPSTASH_VECTOR_REST_TOKEN
vercel env add UPSTASH_REDIS_REST_URL
vercel env add UPSTASH_REDIS_REST_TOKEN

文档


联系

西娅玛丽


Made with by Thea Marie