
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团队制作 ❤️
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务