# hongming_dify_factory_api **Repository Path**: freecpu/hongming_dify_factory_api ## Basic Information - **Project Name**: hongming_dify_factory_api - **Description**: 宏明招聘前端以及api - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-25 - **Last Updated**: 2026-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 招聘规则匹配服务 基于规则引擎的招聘信息匹配API服务,为Dify Chatflow提供确定性决策支持。 ## 技术栈 - Python >= 3.10 - FastAPI - MySQL 8.0 - aiomysql (异步MySQL驱动) ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 初始化数据库 使用MySQL root用户执行初始化脚本: ```bash mysql -u root -p < sql/init.sql ``` 该脚本会: - 创建数据库 `recruit` - 创建用户 `recruit`(密码:`recruit`) - 创建所有必要的表 ### 3. 配置环境变量 复制示例配置文件: ```bash cp .env.example .env ``` 根据实际环境修改 `.env` 文件中的数据库连接信息。 ### 4. 启动服务 ```bash uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` 开发模式(自动重载): ```bash uvicorn app.main:app --reload ``` ## Docker 部署 本项目支持使用 Docker 和 Docker Compose 进行快速部署和开发。 ### 1. 环境准备 确保已安装 [Docker](https://docs.docker.com/get-docker/) 和 [Docker Compose](https://docs.docker.com/compose/install/)。 ### 2. 使用 Docker Compose 启动 使用以下命令构建并启动服务: ```bash docker-compose up -d --build ``` 该命令会: - 根据 `Dockerfile` 构建镜像。 - 启动容器并将主机的 8000 端口映射到容器。 - **目录映射**:将本地代码目录映射到容器内的 `/app`,这意味着您在本地修改代码后,容器内的服务会自动触发热重载(reload),无需重新构建镜像。 ### 3. 查看日志 ```bash docker-compose logs -f ``` ### 4. 停止服务 ```bash docker-compose down ``` ## API接口 ### 健康检查 ``` GET /health ``` ### 规则匹配 ``` POST /api/v1/recruit/match ``` **请求参数:** ```json { "rule_type": "RECRUIT_INFO", "city": "广州", "district": "白云", "need_dorm": 0 } ``` | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | rule_type | string | 是 | 规则匹配的作用类型(详见下文) | | city | string | 是 | 城市 | | district | string | 否 | 区县 | | need_dorm | int/str | 否 | 是否住宿:支持 0/1, "need"/"no_need" 等格式 | #### 规则类型 (rule_type) 详细说明及参数要求 | rule_type | 说明 | 参数建议/要求 | |:---|:---|:---| | **RECRUIT_INFO** | 招聘信息。返回工厂介绍、薪资待遇、福利及核心招聘要求。 | **必须**提供 `city`;**广州地区建议**提供 `district` 与 `need_dorm` 以匹配精确薪资。 | | **INTERVIEW_TIME_PLACE** | 面试安排。返回面试的具体时间段、地点定位及联系经理。 | **必须**提供 `city`;**建议**提供 `district` 以获取精确厂区定位。 | | **INTERVIEW_GUIDE** | 面试指引。返回交通路线图、签到流程及入职材料清单。 | **必须**提供 `city`;**广州/东莞地区建议**提供 `need_dorm`(住宿与不住宿的到厂指引可能不同)。 | > **注意**: > 1. 对于**广州**市,系统将其细分为“白云区”和“其他区”,建议查询时始终带上 `district`。 > 2. `need_dorm` 会影响“广州白云”和“东莞”地区的招聘内容和指引匹配。 **成功响应:** ```json { "matched": true, "rule_id": 12, "factory": { "factory_name": "维高集团", "city": "广州", "district": "白云", "address": "...", "latitude": 23.329918, "longitude": 113.202006, "address_remark": "宿舍入口" }, "requirement": { "content": "### 招聘要求..." }, "message": { "tpl_type": "RECRUIT_INFO", "content": "### 白云维高大量招聘中..." } } ``` **未匹配响应:** ```json { "matched": false, "reason": "NO_RULE_MATCHED" } ``` ## API文档 启动服务后访问: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 项目结构 ``` ├── app/ │ ├── main.py # 应用入口 │ ├── api/v1/ # API路由 │ ├── services/ # 业务逻辑 │ ├── db/ # 数据库层 │ ├── models/ # 数据模型 │ └── core/ # 配置和异常 ├── sql/ │ └── init.sql # 数据库初始化脚本 ├── requirements.txt └── .env.example ```