|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| __init__.py | ||
| api_server.py | ||
| env.example | ||
| media_store.py | ||
README.md
总服务器中心 API
给总服务器单独用的服务:收工位机图片、提供图片 URL、接收识别结果。
不依赖相机、YOLO、客户端界面。把整个 central_server 文件夹拷到总机即可。
快速启动
Windows:
- 安装 Python 3.10+(标准库即可,无需 torch)
- 双击
start.bat,或在本目录执行:
python start.py
也可在项目根目录:
python -m central_server
默认地址:http://本机IP:9000
浏览器打开:http://127.0.0.1:9000/api/health 能看到 "status": "up" 即成功。
配置
- 复制
env.example为.env - 把
DISH_MEDIA_PUBLIC_BASE改成工位机能访问的地址,例如:
DISH_MEDIA_PUBLIC_BASE=http://192.168.1.10:9000/media
DISH_API_HOST=0.0.0.0
DISH_API_PORT=9000
DISH_API_TOKEN=你的密钥
防火墙放行 9000 端口。
接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/health |
探活 |
| POST | /api/dish/media/upload |
上传图片,返回 url |
| GET | /media/... |
访问已上传图片 |
| POST | /api/dish/recognize/result |
上报识别结果(字段为 URL) |
| GET | /api/dish/recognize/records |
最近结果列表 |
数据目录(自动创建):
central_server/data/media/ 图片
central_server/data/results/ 识别 JSON
工位机怎么连
工位机客户端设置(或环境变量):
DISH_RESULT_API_MOCK=0
DISH_RESULT_API_URL=http://总服务器IP:9000/api/dish/recognize/result
DISH_MEDIA_UPLOAD_URL=http://总服务器IP:9000/api/dish/media/upload
DISH_MEDIA_PUBLIC_BASE=http://总服务器IP:9000/media
DISH_API_TOKEN=与总服务器相同(若启用)
流程:工位机先传图,再上报 JSON。业务系统只访问总服务器,不直连工位。
生产建议
- 前面加 Nginx,做 HTTPS 反代
DISH_MEDIA_PUBLIC_BASE写成https://域名/media- 图片量大时把
data/media挂到磁盘或 OSS,接口不用改