同一盘在约 1.5 秒内再次识别,即使个别菜名不同,只要检测框布局相近,就不再重复上传 |
||
|---|---|---|
| .. | ||
| README.md | ||
| __init__.py | ||
| __main__.py | ||
| api_server.py | ||
| deploy_tpweb.sh | ||
| env.example | ||
| main.py | ||
| media_store.py | ||
| nginx.https.example.conf | ||
| nginx.tpweb.example.conf | ||
| start.bat | ||
README.md
总服务器中心 API
给总服务器单独用的服务:收工位机图片、提供图片 URL、接收识别结果。
不依赖相机、YOLO、客户端界面。把整个 dish_server 文件夹拷到云机即可。
快速启动
Windows / Linux:
- 安装 Python 3.10+(标准库即可,无需 torch)
- 在本目录执行:
python main.py
也可在项目根目录:
python -m dish_server
上传接口:http://116.147.40.47:9100(与 cpsb.ruimeida.cc 同机)
图片落盘:/data/tpweb
对外访问:https://cpsb.ruimeida.cc/tpweb/...(由站点 Nginx 提供 HTTPS)
浏览器探活:http://116.147.40.47:9100/api/health → "status": "up"。
配置
- 复制
env.example为.env - 推荐:
DISH_API_HOST=0.0.0.0
DISH_API_PORT=9100
DISH_MEDIA_ROOT=/data/tpweb
DISH_MEDIA_PUBLIC_BASE=https://cpsb.ruimeida.cc/tpweb
- 确保 Nginx 已把
/tpweb/映射到/data/tpweb - 安全组放行 9100(工位机上传用)
接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/health |
探活 |
| POST | /api/dish/media/upload |
上传图片,返回 url |
| GET | /tpweb/... 或 /media/... |
访问已上传图片(同目录) |
| POST | /api/dish/recognize/result |
上报识别结果(字段为 URL) |
| GET | /api/dish/recognize/records |
最近结果列表 |
数据目录:
/data/tpweb/ 图片(DISH_MEDIA_ROOT)
dish_server/data/results/ 识别 JSON(可选)
工位机怎么连
工位机客户端设置(或环境变量):
DISH_RESULT_API_MOCK=0
DISH_MEDIA_UPLOAD_URL=http://116.147.40.47:9100/api/dish/media/upload
DISH_MEDIA_PUBLIC_BASE=https://cpsb.ruimeida.cc/tpweb
DISH_RESULT_API_URL=https://cpsb.ruimeida.cc/api/public/recognition-orders
客户端默认:上传到 :9100,上报 JSON 里的图为 https://cpsb.ruimeida.cc/tpweb/...。
生产建议
- 对外图片 URL 必须用 HTTPS:
https://cpsb.ruimeida.cc/tpweb - Nginx 将
/tpweb/映射到/data/tpweb - 云机一键部署:
bash deploy_tpweb.sh