- 标注:AI 预标注直写 labels_json(去候选确认两阶段);重叠去重(minIoU);全量标注按钮 - 训练:脚本迁移入 server/training/(Go 化 prepare_yolo/analyze_rfdetr,保留 train_server.py);tflite 产物自检并入训练流程(check_tflite) - 数据目录/权重不进 git;.gitignore 迁移至仓库根
25 lines
786 B
Go
25 lines
786 B
Go
package common
|
||
|
||
import (
|
||
"context"
|
||
"path/filepath"
|
||
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
)
|
||
|
||
// APK 存储约定:Android 版本下发上传的 APK 存固定文件名(上传即覆盖,原子重命名),
|
||
// 目录下永远只保留最新一个文件;下载由 main.go 静态托管 /download/<ApkFilename>,
|
||
// URL 固定,客户端拼 apiBaseUrl 访问。
|
||
const ApkFilename = "observer-latest.apk"
|
||
|
||
// ApkDir APK 上传目录:config.yml app.apkDir(默认 ./workspace,与 ./data 平级,
|
||
// docker-compose 挂载持久化)
|
||
func ApkDir(ctx context.Context) string {
|
||
return g.Cfg().MustGet(ctx, "app.apkDir", "./workspace").String()
|
||
}
|
||
|
||
// ApkFilePath 最新 APK 完整路径
|
||
func ApkFilePath(ctx context.Context) string {
|
||
return filepath.Join(ApkDir(ctx), ApkFilename)
|
||
}
|