Token导航 LogoToken导航TokenDH.com
MCP Resume Engine logo
搜索检索stdio官方级别未说明来源级核验

MCP Resume Engine

MCP Server

一个基于AI的简历智能搜索与分析服务,提供语义搜索和LLM驱动的问答功能,支持PDF简历处理和隐私优先设计。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
隐私保护Python搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Priyanshukumaranand

提供方

Priyanshukumaranand

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

📄 恢复RAG发动机

人工智能驱动的智能简历搜索 -上传PDF文件,提出问题,通过源引用获得智能答案。

![Python 3.11+](https://www.python.org/downloads/) ![FastAPI](https://fastapi.tiangolo.com/) ](https://www.docker.com/)

🎯 概述

一个可用于生产的简历发现API,它使用语义搜索和LLM支持的问答来查找和分析简历。采用隐私优先设计,包括PII编辑和匿名ID。

flowchart LR
    subgraph Input
        PDF[📄 PDF Resume]
        Q[❓ Question]
    end
    
    subgraph Processing
        Extract[🤖 Gemini
Extract Fields]
        Chunk[✂️ Semantic
Chunker]
        Embed[🔢 HuggingFace
Embeddings]
        Search[🔍 Vector
Search]
        Rerank[📊 Reranker]
        Answer[💬 Gemini
Answer]
    end
    
    subgraph Storage
        DB[(ChromaDB)]
        Redis[(Redis Queue)]
    end
    
    PDF --> Extract --> Chunk --> Embed --> DB
    Q --> Search --> DB
    DB --> Rerank --> Answer
    PDF -.-> Redis -.-> Extract

✨ 特性

  • 🔍 语义搜索 -按含义查找简历,而不仅仅是关键字
  • 🤖 人工智能问答 -询问关于候选人的自然语言问题
  • 📄 PDF处理 -从简历中提取文本和元数据
  • 🔒 隐私第一 -PII编辑和匿名候选人ID
  • ⚡ 异步处理 -用于批量上传的可选Redis队列
  • 🎯 多跳检索 -复杂的查询分解以获得更好的答案
  • 📊 置信度分数 -了解每个答案的可靠性

🚀 快速开始

选项1:Docker(推荐)

# 1. Clone the repository
git clone https://github.com/your-repo/mcp-resume-engine.git
cd mcp-resume-engine

# 2. Create .env file
echo "GEMINI_API_KEY=your_gemini_key" > .env
echo "HUGGINGFACE_API_TOKEN=your_hf_token" >> .env

# 3. Start with Docker Compose
docker-compose up --build

# 4. Open API docs
# http://localhost:8000/docs

方案2:地方发展

# 1. Create virtual environment
python -m venv .venv
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # Linux/Mac

# 2. Install dependencies
pip install -r requirements.txt

# 3. Set environment variables
export GEMINI_API_KEY=your_key
export HUGGINGFACE_API_TOKEN=your_token

# 4. Run the server
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000

📁 项目结构

mcp-resume-engine/
├── backend/
│   ├── core/              # Text processing & semantic chunking
│   │   ├── chunker.py     # Section-aware resume chunking
│   │   └── preprocessor.py # Text cleaning & normalization
│   ├── embeddings/        # Vector embeddings & storage
│   │   ├── embedder.py    # HuggingFace API embeddings
│   │   └── vectorstore.py # ChromaDB vector store
│   ├── retrieval/         # Search & reranking
│   │   ├── reranker.py    # Result reranking with skill matching
│   │   ├── multihop.py    # Multi-hop retrieval for complex queries
│   │   └── verifier.py    # Confidence scoring
│   ├── queue/             # Redis queue infrastructure
│   │   ├── worker.py      # Background job processor
│   │   └── jobs.py        # Job definitions
│   ├── main.py            # FastAPI endpoints
│   ├── llm.py             # Gemini LLM integration
│   ├── models.py          # Pydantic data models
│   └── anonymizer.py      # PII redaction
├── docker-compose.yml     # Docker orchestration
├── Dockerfile             # Container build
├── requirements.txt       # Python dependencies
└── README.md

🔌 API终点

方法端点描述
POST/ingest_pdf上传并处理简历PDF
POST/qa询问有关简历的问题
GET/health使用队列状态进行健康检查
GET/resumes列出所有已处理的简历
DELETE/resumes/{id}删除简历

上传简历

curl -X POST "http://localhost:8000/ingest_pdf" \
  -F "file=@resume.pdf"

答复:

{
  "status": "processed",
  "id": "abc123",
  "name": "John Doe",
  "skills": ["Python", "React", "AWS"],
  "chunk_count": 8
}

提问

curl -X POST "http://localhost:8000/qa" \
  -H "Content-Type: application/json" \
  -d '{"question": "Who has Python and machine learning experience?", "top_k": 5}'

答复:

{
  "answer": "John Doe has extensive Python and ML experience...",
  "confidence_score": 0.92,
  "sources": [...],
  "is_fallback": false
}

异步上传(批量处理)

curl -X POST "http://localhost:8000/ingest_pdf?async_mode=true" \
  -F "file=@resume.pdf"

退货 job_id 用于状态检查。

⚙️ 建筑

数据摄取管道

sequenceDiagram
    participant User
    participant API
    participant LLM as Gemini LLM
    participant HF as HuggingFace API
    participant Vec as ChromaDB
    
    User->>API: Upload PDF
    API->>API: Extract text & strip PII
    API->>LLM: Extract fields (name, skills, projects)
    API->>API: Semantic chunking by sections
    API->>HF: Generate embeddings
    HF->>API: 384-dim vectors
    API->>Vec: Store chunks + metadata
    API->>User: ✓ Resume processed

问答管道

sequenceDiagram
    participant User
    participant API
    participant HF as HuggingFace API
    participant Vec as ChromaDB
    participant LLM as Gemini LLM
    
    User->>API: Ask question
    API->>API: Expand query
    API->>HF: Embed question
    HF->>API: Query vector
    API->>Vec: Semantic search (top 15)
    Vec->>API: Candidate chunks
    API->>API: Rerank by skills & sections
    API->>LLM: Generate answer with context
    LLM->>API: Natural language answer
    API->>User: Answer + confidence + sources

🐳 Docker编写服务

services:
  api:        # FastAPI server (port 8000)
  redis:      # Job queue (port 6379)
  worker:     # Background processors (5 replicas)

缩放工人:

docker-compose up --scale worker=10

🔧 环境变量

变量必填描述
GEMINI_API_KEY用于LLM的Google Gemini API密钥
HUGGINGFACE_API_TOKEN用于嵌入的HuggingFace API令牌
ALLOWED_ORIGINSCORS源(默认值: *)
REDIS_URLRedis连接URL(在Docker中自动配置)

📊 技术栈

组件技术
API框架FastAPI+Pydantic
LLM谷歌双子座2.5 Flash
嵌入HuggingFace推理API(MiniLM-L6-v2)
矢量存储ChromaDB
队列Redis+RQ
容器Docker+Docker组合

🔒 隐私功能

  • PII补救措施:电话号码、电子邮件、地址自动屏蔽
  • 匿名ID:基于哈希的候选标识符
  • 无原始存储:不存储原始PDF,只存储处理过的文本

📝 许可证

麻省理工学院

目录标签

目录标签

隐私保护Python搜索简历搜索本地部署语义分析AI问答PDF处理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP