Dish_Recognition/central_server
wanghanbo 0c2576afec commit 2026-09-28 10:09:23 +08:00
..
README.md commit 2026-09-28 10:09:23 +08:00
__init__.py commit 2026-09-28 10:09:23 +08:00
__main__.py commit 2026-09-28 10:09:23 +08:00
api_server.py commit 2026-09-28 10:09:23 +08:00
env.example commit 2026-09-28 10:09:23 +08:00
main.py commit 2026-09-28 10:09:23 +08:00
media_store.py commit 2026-09-28 10:09:23 +08:00
start.bat commit 2026-09-28 10:09:23 +08:00

README.md

总服务器中心 API

给总服务器单独用的服务:收工位机图片、提供图片 URL、接收识别结果。
不依赖相机、YOLO、客户端界面。把整个 central_server 文件夹拷到总机即可。

快速启动

Windows:

  1. 安装 Python 3.10+(标准库即可,无需 torch)
  2. 双击 start.bat,或在本目录执行:
python start.py

也可在项目根目录:

python -m central_server

默认地址:http://本机IP:9000

浏览器打开:http://127.0.0.1:9000/api/health 能看到 "status": "up" 即成功。

配置

  1. 复制 env.example 为 .env
  2. 把 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,接口不用改