gabzz/cv-matcher一个AI驱动的Python库,用于分析简历与职位描述的匹配度。获取匹配分数、识别缺失技能,并接收专业的格式建议以改进简历。
✨ 内置Web UI,搭配OpenAI GPT-4实现最佳性能 ✨
 # - USE_LOCAL_MODEL=true(使用本地模型,无需API密钥) # - OPENAI_API_KEY=your-key-here(若USE_LOCAL_MODEL=false则必填)
bash# 安装包含本地模型依赖的版本 pip install cv-matcher[local] # 在.env中设置USE_LOCAL_MODEL=true echo "USE_LOCAL_MODEL=true" > .env
bash# 若未安装uv,先安装 curl -LsSf [***] | sh # 克隆仓库 git clone [***] cd cv-matcher # 创建虚拟环境并安装依赖 uv venv source .venv/bin/activate # Windows系统:.venv\Scripts\activate uv pip install -e .
在项目根目录创建.env文件以配置AI后端:
bash# 切换本地模型和OpenAI模型 USE_LOCAL_MODEL=false # false=OpenAI(默认),true=本地模型 # OpenAI配置(若USE_LOCAL_MODEL=false则必填) OPENAI_API_KEY=your-openai-api-key-here # OPENAI_MODEL=gpt-4o-mini # 可选,默认gpt-4o-mini # 本地模型配置(若USE_LOCAL_MODEL=true则使用) # LOCAL_MODEL_NAME=microsoft/Phi-3-mini-4k-instruct # 可选
切换模型:
USE_LOCAL_MODEL=false使用OpenAI(更快、更准确,需要API密钥)USE_LOCAL_MODEL=true使用本地模型(隐私保护,无需API密钥,速度较慢)启动脚本会自动读取这些设置 - 无需修改代码!
pythonfrom cv_matcher import launch_ui # 启动Web界面 # 使用.env文件中的设置(USE_LOCAL_MODEL和OPENAI_API_KEY) launch_ui()
或从命令行启动:
bashpython launch_ui.py # 从.env读取USE_LOCAL_MODEL设置
然后在浏览器中打开http://localhost:7860开始分析简历!
💡 提示: 通过修改.env文件中的USE_LOCAL_MODEL值可切换OpenAI和本地模型 - 无需修改代码!
pythonimport os from cv_matcher import CVMatcher # 设置OpenAI API密钥 os.environ["OPENAI_API_KEY"] = "your-api-key-here" # 初始化为OpenAI(默认以获得最佳性能) matcher = CVMatcher(use_local_model=False) # 分析简历与职位描述的匹配度 analysis = matcher.analyze_cv( cv_path="path/to/cv.pdf", job_description="职位描述文本或URL", verbose=True ) # 打印结果 matcher.print_analysis(analysis) # 导出为JSON matcher.export_analysis(analysis, "analysis_results.json")
pythonfrom cv_matcher import CVMatcher # 使用本地AI模型(无需API密钥,但速度较慢) matcher = CVMatcher( use_local_model=True, local_model_name="microsoft/Phi-3-mini-4k-instruct" # 可选,默认值 ) analysis = matcher.analyze_cv("cv.pdf", "职位描述")
bash# 简单方式 python launch_ui.py # 或使用Python命令 python -c "from cv_matcher import launch_ui; launch_ui()" # 创建可共享的公共URL python -c "from cv_matcher import launch_ui; launch_ui(share=True)"
pythonmatcher = CVMatcher() # 从URL获取职位描述 analysis = matcher.analyze_cv( cv_path="cv.pdf", job_description="[***]" )
pythonCVMatcher( use_local_model: bool = False, # False=OpenAI(默认),True=本地模型 local_model_name: str = "microsoft/Phi-3-mini-4k-instruct", api_key: Optional[str] = None, # OpenAI密钥(若未提供则从.env读取) model: str = "gpt-4o-mini", # OpenAI模型名称 timeout: int = 10 # HTTP超时时间(秒) )
推荐: 使用.env文件进行配置,而非硬编码参数。
microsoft/Phi-3-mini-4k-instruct(默认,快速,3.8B参数)mistralai/Mistral-7B-Instruct-v0.2(更大,功能更强)gpt-4o-mini(性价比高)gpt-4o(更高级)gpt-4-turbo(高性能)分析返回一个CVAnalysis对象,包含:
查看examples目录获取更详细的使用示例:
local_model_usage.py:使用本地AI模型(无需API密钥)basic_usage.py:简单简历分析(支持本地和OpenAI模型)batch_analysis.py:分析多个简历url_fetching.py:从URL获取职位描述custom_model.py:使用不同的AI模型launch_ui.py:启动Web界面bash# 克隆仓库 git clone [***] cd cv-matcher # 安装开发依赖 uv venv source .venv/bin/activate uv pip install -e ".[dev]"
bashpytest tests/ -v --cov=cv_matcher
bash# 格式化代码 black src/cv_matcher # 代码检查 ruff check src/cv_matcher # 类型检查 mypy src/cv_matcher
cv-matcher/ ├── src/ │ └── cv_matcher/ │ ├── __init__.py # 包初始化 │ ├── matcher.py # 主要CVMatcher类 │ ├── models.py # Pydantic数据模型 │ ├── pdf_parser.py # PDF文本提取 │ ├── job_fetcher.py # 职位描述获取 │ └── ai_analyzer.py # AI分析逻辑 ├── tests/ # 测试文件 ├── examples/ # 使用示例 ├── pyproject.toml # 项目配置 ├── README.md # 本文档 └── LICENSE # MIT许可证
注意: 首次运行将下载AI模型(根据模型选择,约3-7GB)。后续运行使用缓存模型。
简历分析的主类。
analyze_cv(cv_path, job_description, verbose=False):分析简历print_analysis(analysis, detailed=True):显示结果export_analysis(analysis, output_path):保存为JSONCVAnalysis:完整分析结果MatchScore:匹配评分详情FormattingAdvice:简历改进建议欢迎贡献!请随时提交Pull Request。对于重大更改,请先打开issue讨论您想要更改的内容。
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)本项目采用MIT许可证 - 详见LICENSE文件。
由CV Matcher团队制作 ❤️
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务