# Agent OCR 服务 基于大模型的化学品安全标签信息提取服务。 ## 目录结构 ``` ocr/ ├── agent/ # OCR Agent 核心逻辑(.pyc) ├── api/ # FastAPI 服务入口(.pyc) ├── config/ # 配置模块(.pyc) ├── icon/ # GHS 危险象形图(GHS01~GHS09.png) ├── ocr_config.yaml # 服务配置文件 ├── start.py # 启动脚本 └── requirements_ocr.txt ``` ## 安装依赖 ```bash pip install -r requirements_ocr.txt ``` ## 配置 编辑 `ocr_config.yaml`,按实际环境修改以下参数: ```yaml inference: url: "http://<推理服务地址>/v1/chat/completions" auth_token: "Bearer " model: "<模型名称>" server: host: "0.0.0.0" port: 6006 max_concurrent: 5 ``` | 参数 | 说明 | |------|------| | `inference.url` | 推理服务的请求地址 | | `inference.auth_token` | 鉴权 Token,格式为 `Bearer ` | | `inference.model` | 调用的模型名称 | | `server.host` | API 服务监听地址,`0.0.0.0` 允许外部访问 | | `server.port` | API 服务监听端口 | | `server.max_concurrent` | 最大并发请求数 | ## 启动服务 ```bash # 使用默认配置文件 ocr_config.yaml python start.py # 指定配置文件 python start.py --config /path/to/your_config.yaml ``` 服务启动后访问 `http://:/docs` 查看接口文档。 ## 接口说明 ### POST `/api/v1/agent_ocr` 提取化学品安全标签信息。 **请求体** ```json { "image": "" } ``` **成功响应** ```json { "code": "200", "message": "操作成功", "data": { "tag": { "name_cn": "化学品中文名称", "name_en": "化学品英文名称", "cf_list": [ { "cas_name": "成分名称", "cas_cf": "化学式", "true_rate": "实际浓度", "rate": "浓度区间", "cas_no": "CAS号" } ] }, "tag_images": ["GHS02", "GHS07"], "key_word": "警告", "risk_notice": "危险性说明", "pre_notice": { "pre_method": "预防措施", "acc_response": "事故响应", "safe_keep": "安全存储", "abandon_deal": "废弃处置" }, "supplier": [ { "name": "供应商名称", "address": "供应商地址", "tel": "供应商电话", "post": "供应商邮编" } ], "acc_tel": "应急咨询电话" } } ``` **失败响应** ```json { "code": "500", "message": "请求失败", "data": {} } ``` ### GET `/health` 健康检查,返回服务状态及当前并发数。