LalithNeelapu/SMARTHIREAI

GitHub: LalithNeelapu/SMARTHIREAI

一个基于两阶段语义检索的 AI 候选人排名系统,能在大规模候选人池中快速匹配职位需求并过滤虚假档案。

Stars: 0 | Forks: 0

## SmartHireAI emoji: 🤖 colorFrom: indigo colorTo: green sdk: streamlit sdk_version: 1.39.0 app_file: app.py pinned: false license: mit # SmartHireAI 候选人排名系统 SmartHireAI 是一个为 Redrob Hackathon 设计的端到端智能候选人发现与排名系统。它根据指定的职位描述,将候选人池与 **Senior AI Engineer — Founding Team** 职位进行匹配。 ## 🚀 核心功能 * **两阶段候选人检索**: * **阶段 1 (启发式过滤)**:使用快速且 CPU 友好的启发式函数(结合职位名称匹配、检索关键词、所需技能、工作年限和行为参与度),在 2 秒内对所有 100,000 名候选人进行评分。 * **阶段 2 (语义重排)**:提取前 2,500 名候选人,并使用本地 `SentenceTransformer` 双编码器(`sentence-transformers/all-MiniLM-L6-v2` 或 `BAAI/bge-small-en-v1.5`)对他们进行排名,在 1.5 分钟内完成。 * **蜜罐/陷阱防护机制**: * 使用严格的阈值检查(`honeypot_penalty >= 0.4`),明确过滤掉具有不可能的配置文件或关键蜜罐信号的合成候选人(例如,技能持续时间超过工作年限、摘要中堆砌关键词、具有 AI 技能的非技术职位),在前 100 名中实现了 **0% 的蜜罐率**。 * **完全遵守 CPU 约束**: * 经过优化,可以在标准 CPU 上 **1.5 分钟** 内(远低于 5 分钟的限制)完全离线执行(无网络 API 调用)。 ## 📁 仓库结构 ``` SmartHireAI/ │ ├── README.md ├── requirements.txt ├── rank.py │ ├── src/ │ ├── candidate_filter.py │ ├── feature_engineering.py │ ├── honeypot_detector.py │ ├── jd_parser.py │ ├── scoring.py │ ├── ranker.py │ └── submission_generator.py │ ├── output/ │ └── final_submission.csv │ ├── audit_honeypots.py ├── submission_metadata.yaml └── docs/ └── PPT.pdf ``` ## 🛠️ 设置与安装 1. 创建并激活您的虚拟环境: python -m venv venv .\venv\Scripts\activate # On Windows source venv/bin/activate # On Linux/macOS 2. 安装依赖项: pip install -r requirements.txt ## 🏃 使用与复现 运行排名 pipeline: ``` python rank.py --model fast ``` * 使用 `--model fast` 选择快速的 MiniLM embedding 模型(默认,耗时约 1.5 分钟)。 * 使用 `--model quality` 选择 BGE-small embedding 模型。 * 输出结果将保存为 `output/final_submission.csv`。 ## 🔍 验证 运行蜜罐审计工具,以验证最终前 100 名候选人列表的质量和安全性: ``` python audit_honeypots.py ``` 预期输出: ``` Loading candidates... Honeypots in Top100: 0 ``` ## 🌐 Streamlit Web 界面 我们提供了一个专业的 Streamlit Web 界面,用于交互式的候选人排名和发现。它允许您动态上传自定义的职位描述和候选人数据集,运行 AI 排名 pipeline,检查排名前列的候选人,并下载生成的 CSV 文件。 ### 🛠️ 本地运行 1. 确保已安装所有依赖项(包括 Streamlit): pip install -r requirements.txt 2. 启动 Streamlit 应用程序: streamlit run app.py 3. 打开浏览器并访问 `http://localhost:8501`。 4. 上传您的职位描述(格式为 `.md` 或 `.txt`)和候选人档案(`.jsonl`),选择 embedding 模型,然后点击 **Rank Candidates**。 ### ☁️ 部署到 Hugging Face Spaces 您只需几个步骤即可将此应用程序部署到 Hugging Face Spaces: 1. **创建新的 Space**: - 前往 [Hugging Face Spaces](https://huggingface.co/spaces) 并点击 **Create new Space**。 - 设置名称,选择 **Streamlit** 作为 SDK,并选择所有者/可见性。 2. **提交/上传文件**: - 将以下文件和目录上传到您的 Space 仓库的根目录下: * `app.py` (Streamlit 入口点) * `requirements.txt` (依赖项列表) * `src/` (包含过滤器、特征和排名代码的整个源代码目录) * `rank.py` (命令行脚本) * `audit_honeypots.py` (蜜罐审计工具) * `submission_metadata.yaml` (元数据描述) 3. **自动部署**: - 文件上传完成后,Hugging Face 将自动安装 `requirements.txt` 中的依赖项并启动 Streamlit 服务器。 - 您可以通过以下地址访问您已部署上线的应用程序:`https://huggingface.co/spaces//`。
标签:Kubernetes, 人力资源科技, 人工智能, 候选人匹配, 反作弊检测, 特征工程, 用户模式Hook绕过, 语义搜索, 逆向工具