79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
# 总服务器中心 API
|
||
|
||
给**总服务器**单独用的服务:收工位机图片、提供图片 URL、接收识别结果。
|
||
不依赖相机、YOLO、客户端界面。把整个 `dish_server` 文件夹拷到云机即可。
|
||
|
||
## 快速启动
|
||
|
||
Windows / Linux:
|
||
|
||
1. 安装 Python 3.10+(标准库即可,无需 torch)
|
||
2. 在本目录执行:
|
||
|
||
```bat
|
||
python main.py
|
||
```
|
||
|
||
也可在项目根目录:
|
||
|
||
```bat
|
||
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"`。
|
||
|
||
## 配置
|
||
|
||
1. 复制 `env.example` 为 `.env`
|
||
2. 推荐:
|
||
|
||
```
|
||
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
|
||
```
|
||
|
||
3. 确保 Nginx 已把 `/tpweb/` 映射到 `/data/tpweb`
|
||
4. 安全组放行 **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`
|