AI简历推荐器
Streamlit应用程序分析简历,并使用人工智能提供Naukri.com的工作建议。
特性
- PDF简历上传和文本提取
- 基于人工智能的简历分析(总结、技能差距、职业路线图)
- 作业关键字提取
- 从Naukri.com获取实时工作
- 干净、用户友好的界面
安装
- 安装依赖项:
pip install -r requirements.txt- 创建一个
.env使用API密钥文件:
OPENAI_API_KEY=your_openai_api_key_here
APIFY_API_TOKEN=your_apify_token_here- 运行应用程序:
streamlit run app.py模拟到无模拟切换
该应用程序支持模拟响应(用于测试)和真实的OpenAI API调用。
当前状态:MOCK模式
该应用程序目前使用模拟响应来避免开发过程中的OpenAI API成本。
从模拟切换到真正的OpenAI:
- 打开
app.py - 找到第2-5行:
# Mock version (comment/uncomment to switch)
from src.helper_mock import extract_text_from_pdf, ask_openai
# Real OpenAI version (comment/uncomment to switch)
# from src.helper_no_mock import extract_text_from_pdf, ask_openai- 进行以下两项更改:
- 注释掉 第3行:添加 # 之前 from src.helper_mock... - 取消注释 第5行:删除 # 从 from src.helper_no_mock...
- 结果应该如下:
# Mock version (comment/uncomment to switch)
# from src.helper_mock import extract_text_from_pdf, ask_openai
# Real OpenAI version (comment/uncomment to switch)
from src.helper_no_mock import extract_text_from_pdf, ask_openai真正的OpenAI模式的先决条件:
- 有效的OpenAI API密钥
.env文件 - 充足的OpenAI学分/配额
- Internet连接
要切换回模拟模式:
- 打开
app.py - 找到第2-5行(在非模拟模式下应该看起来像这样):
# Mock version (comment/uncomment to switch)
# from src.helper_mock import extract_text_from_pdf, ask_openai
# Real OpenAI version (comment/uncomment to switch)
from src.helper_no_mock import extract_text_from_pdf, ask_openai- 进行以下两项更改:
- 取消注释 第3行:删除 # 从 from src.helper_mock... - 注释掉 第5行:添加 # 之前 from src.helper_no_mock...
- 结果应该如下:
# Mock version (comment/uncomment to switch)
from src.helper_mock import extract_text_from_pdf, ask_openai
# Real OpenAI version (comment/uncomment to switch)
# from src.helper_no_mock import extract_text_from_pdf, ask_openai注: 一次只能有一个导入行处于活动状态——要么模拟,要么不模拟,永远不要两者都激活。
文件结构
├── app.py # Main Streamlit application
├── src/
│ ├── helper_mock.py # Mock OpenAI responses
│ ├── helper_no_mock.py # Real OpenAI API calls
│ └── jobs_api.py # Naukri job fetching
├── requirements.txt # Dependencies
└── README.md # This file故障排除
如果你在模拟模式下遇到OpenAI配额错误:
GitHub版本可能存在以下问题 helper_mock.py如果你看到 openai.RateLimitError 即使在模拟模式下:
- 打开
src/helper_mock.py - 更换
ask_openai功能包括:
def ask_openai(prompt, max_tokens=500):
# Mock response for testing
if "summarize" in prompt.lower():
return "Mock Summary: Experienced software developer with skills in Python, JavaScript, and cloud technologies."
elif "missing skills" in prompt.lower() or "skill gaps" in prompt.lower():
return "Mock Skills Gap: Consider learning Docker, Kubernetes, and advanced machine learning frameworks."
elif "roadmap" in prompt.lower() or "future roadmap" in prompt.lower():
return "Mock Roadmap: 1. Complete cloud certifications 2. Build portfolio projects 3. Contribute to open source."
elif "job titles" in prompt.lower():
return "Mock Keywords: Senior Software Engineer, Backend Developer, Cloud Solutions Architect, DevOps Engineer"
else:
return "Mock response for testing purposes."- 保存文件并重新启动应用程序
依赖项
- 流明
- 开放人工智能
- PyPDF2
- python dotenv
- apify客户端
