💻 Code | 🤗 Model | 🤖 Demo | 📑 Technical Report
English | 中文
SmartResume 是一个面向版面结构的智能简历解析系统,系统支持 PDF、图片及常见 Office 文档格式,融合 OCR 与 PDF 元数据完成文本提取,结合版面检测重建阅读顺序,并通过 LLM 将内容转换为结构化字段(如:基本信息、教育经历、工作经历等)。系统同时支持远程 API 和本地模型部署,提供灵活的使用方式。
smartresume_demo_new.mp4
- Python >= 3.9
- CUDA >= 11.0 (可选,用于GPU加速)
- 内存 >= 8GB
- 存储 >= 10GB
- GPU: 推荐 NVIDIA GPU,6GB+ VRAM(用于本地模型推理)
- 内存: 推荐 16GB+(本地模型需要更多内存)
- 存储: 每个模型需要 2-10GB 存储空间
- 克隆项目
git clone https://github.com/alibaba/SmartResume.git
cd SmartResume- 创建conda环境
conda create -n resume_parsing python=3.9
conda activate resume_parsing- 安装依赖
pip install -e .- 配置环境
# 复制配置文件模板
cp configs/config.yaml.example configs/config.yaml
# 编辑配置文件,添加API密钥
vim configs/config.yaml# 解析单个简历文件
python scripts/start.py --file resume.pdf
# 指定提取类型
python scripts/start.py --file resume.pdf --extract_types basic_info work_experience educationfrom smartresume import ResumeAnalyzer
# 初始化分析器
analyzer = ResumeAnalyzer(init_ocr=True, init_llm=True)
# 解析简历
result = analyzer.pipeline(
cv_path="resume.pdf",
resume_id="resume_001",
extract_types=["basic_info", "work_experience", "education"]
)
print(result)提示: 命令行每次调用都会重新加载模型,适合单次使用。如需多次调用,推荐以下方式避免重复加载:
python demo/web_app.py
# 在浏览器中访问 http://localhost:4999 上传简历from smartresume import ResumeAnalyzer
import glob, json
analyzer = ResumeAnalyzer(init_ocr=True, init_llm=True) # 只加载一次
for f in glob.glob("/path/to/resumes/*.pdf"):
result = analyzer.pipeline(cv_path=f, resume_id=f.split("/")[-1])
print(json.dumps(result, ensure_ascii=False, indent=2))SmartResume 现在支持使用 vLLM 进行本地模型部署,减少对外部 API 的依赖:
# 下载 Qwen-0.6B-resume 模型
python scripts/download_models.py在 configs/config.yaml 中配置 use_direct_models: true 和 direct_model_name,无需单独启动 vLLM 服务(进程内调用)。
详细的本地模型部署指南请参考 LOCAL_MODELS。
| 指标类别 | 具体指标 | 数值 | 说明 |
|---|---|---|---|
| 布局检测 | mAP@0.5 | 92.1% | 高布局检测精度 |
| 信息抽取 | 整体准确率 | 93.1% | 高准确率 |
| 处理速度 | 单页处理时间 | 1.22s | 高性能 |
| 多语言支持 | 支持语言数 | 多种 | 覆盖全球主要语言 |
详细的基准测试结果请参考 基准测试结果。
详细的配置选项请参考 配置指南。
复制配置模板并根据需要编辑:
cp configs/config.yaml.example configs/config.yaml主要配置区域:
- 模型设置: API密钥、模型选择和参数配置
- 处理选项: OCR设置和输出格式
- 本地模型: vLLM部署和GPU配置
本项目采用 LICENSE。
未来我们将逐步替换为更宽松许可的方案,以提升用户友好度与灵活性。
受限于开源合规性问题,代码是重构版本,内部PDF解析和OCR无法公布,使用的开源版本平替,部分功能未全部兼容。
@article{Zhu2025SmartResume,
title={Layout-Aware Parsing Meets Efficient LLMs: A Unified, Scalable Framework for Resume Information Extraction and Evaluation},
author={Fanwei Zhu and Jinke Yu and Zulong Chen and Ying Zhou and Junhao Ji and Zhibo Yang and Yuxue Zhang and Haoyuan Hu and Zhenghao Liu},
journal={arXiv preprint arXiv:2510.09722},
year={2025},
url={https://arxiv.org/abs/2510.09722}
}注意: 请确保项目使用遵守相关法律法规和隐私政策。
