# HotlineAI Platform
**Repository Path**: newpc/hotline-ai-platform
## Basic Information
- **Project Name**: HotlineAI Platform
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-14
- **Last Updated**: 2026-07-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 算法中心 (Algorithm Center)
算法中心 (Algorithm Center) 用于统一管理算法插件、训练数据、模型版本、服务实例、模型验证和多服务器训练资源。平台本身不把算法逻辑写死在中心系统里,而是通过插件仓库加载分类、大模型、业务 HTTP 等能力,再把模型、训练、验证和接口调用流程统一托管起来。
## 核心能力
- **插件仓库**:上传、检测、启用算法或业务插件,插件通过 `algorithm.json` 声明能力、接口、配置项和训练参数。
- **数据集管理**:维护训练、验证、测试样本,支持分类数据、大模型对话数据等不同能力类型。
- **模型管理**:统一登记预训练模型、上传模型和训练产出模型,记录训练参数、训练指标、验证结果和绑定插件。
- **模型训练**:支持本机训练和集群训练,训练过程可查看日志、事件、指标曲线、checkpoint 和产出模型。
- **模型验证评估**:对模型执行批量验证,查看整体准确率、TopK、预测分布、大类准确率、小类召回率和样本明细。
- **服务实例**:同一个插件可以创建多个服务实例,并分别绑定不同模型和运行参数。
- **接口映射**:把平台内部服务实例接口映射为业务可调用接口,统一记录请求、响应、耗时和成功率。
- **集群节点**:通过 Go Node 接入 GPU 服务器,调度训练/推理容器并回传节点状态、日志和结果。
- **实时通知**:通过通知流提示 Go Node 上下线、训练分配、训练完成、模型登记、服务发布等关键事件。
## 命名与路径迁移策略
项目正式名称:
- 中文:**算法中心**
- 英文:**Algorithm Center**
命名与路径迁移采用兼容渐进策略,不破坏现有线上环境:
1. **新配置 / 新部署默认路径**:新安装和新建配置优先使用 `/egova_apps/algorithm-center-*` 作为部署根路径(如 `/egova_apps/algorithm-center-data`、`/egova_apps/algorithm-center-node-data`、`/egova_apps/algorithm-center-node-code`、`/egova_apps/algorithm-center-go-node`)。
2. **历史兼容路径**:已有线上部署的 `/egova_apps/hotline-*` 路径作为兼容路径继续生效,不做强制替换。迁移时需先同步配置、服务、数据库、Agent 数据,确认新路径完全就绪后再改名备份旧目录。
3. **节点数据根目录**:新部署默认节点数据根为 `/egova_apps/algorithm-center-node-data`,但当前已部署节点可继续使用 `/egova_apps/algorithm-center-agent-data` 或 `/egova_apps/hotline-agent-data`,由节点配置文件显式指定 `data_root` 决定实际路径。
4. **协议与格式兼容**:`hotline_vlm_sft` 等数据集格式名、已有插件包/模型包 manifest 中的协议字段暂时作为兼容格式保留,不破坏现有导入和训练流程,后续另做版本化迁移。
5. **中心平台本机 Go Node**:中心平台服务器本身也需要部署 Go Node,用于本机推理容器调度和镜像缓存管理。安装目录为 `/egova_apps/algorithm-center-go-node`,配置文件与节点组件同目录(`config.json`),数据根为 `/egova_apps/algorithm-center-node-data`,代码根为 `/egova_apps/algorithm-center-node-code`,节点编码建议 `CENTER-LOCAL-GO`。下载代理默认不开启,仅在目标节点无法直连外网时手动填写临时代理地址(如 `http://111.4.141.154:7755`),不写入新节点默认配置。底层 `/api/agent/...` 协议字段和旧 `hotline-go-agent` 二进制名暂保留兼容,后续分阶段迁移。
## 目录结构
```text
HotlineAI Platform/
server/ # FastAPI 后端,负责平台 API、调度、训练、模型、验证和插件运行时
web/ # Vue 3 + Vite 前端管理台
node-go/ # Go Node,面向宿主机注册、心跳、镜像缓存、推理/训练 Docker 调度和中心本机部署
agent-deploy-template/ # 脱敏训练镜像 Docker 和离线部署模板
docs/screenshots/ # 平台页面截图,README 中可直接预览
README.md # 项目入口说明
平台使用说明.md # 面向使用者的功能说明
开发规范.md # 平台代码开发约束
部署.md # 环境部署说明,包含现场化配置内容
```
插件 SDK 位于同级目录 `Hotline Algorithm SDK/`,插件开发请优先阅读该目录下的 `README.md` 和 `插件开发说明.md`。
## 本地开发
### 后端
```powershell
cd "D:\project\egova-ai\hotline\HotlineAI Platform\server"
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
python main.py
```
后端配置以 `server/config.toml` 为准。不同现场的数据库、模型存储、插件存储、下载源和集群配置不要写入代码,应通过配置文件或部署脚本管理。
文件存储建议优先配置统一数据根目录 `storage_data_root`,再让附件、模型、插件、集群产物等路径使用相对路径。这样现场迁移时只需要调整一个根目录,避免多个绝对路径分散维护。
### 前端
```powershell
cd "D:\project\egova-ai\hotline\HotlineAI Platform\web"
npm install
npm run dev
```
开发环境默认连接本地后端;如果后端地址不同,请按前端项目中的环境配置调整。
### Go Node
```powershell
cd "D:\project\egova-ai\hotline\HotlineAI Platform\node-go"
D:\tool\go\bin\go.exe test ./...
```
生产 GPU 节点运行优先参考 `node-go/README.md`;脱敏训练镜像和离线部署模板参考 `agent-deploy-template/README.md`。现场私有脚本、服务器地址、账号、密钥等内容仅保留在本地忽略目录中,不提交到仓库。
### 插件离线调试
开发算法插件时,可以不启动中心平台,直接用后端自带的离线测试器解析和调用本地插件包:
```powershell
cd "D:\project\egova-ai\hotline\HotlineAI Platform"
python server\tools\plugin_dev_tester.py --plugin-path "D:\plugins\my-plugin" inspect
python server\tools\plugin_dev_tester.py --plugin-path "D:\plugins\my-plugin" call --endpoint predict --payload '{"content":"小区暖气不热","topK":1}'
python server\tools\plugin_dev_tester.py --plugin-path "D:\plugins\my-plugin" call --endpoint predict --model-path "D:\models\classtype\checkpoint-7000" --payload '{"content":"小区暖气不热","topK":1}'
python server\tools\plugin_dev_tester.py --plugin-path "D:\plugins\my-plugin" call --endpoint predict --config '{"model_path":"D:/models/classtype/checkpoint-7000","device":"cuda:0","max_seq_length":256}' --payload '{"content":"小区暖气不热","topK":1}'
```
`--plugin-path` 支持插件目录或 zip 包;`call` 支持 `health`、`predict`、`load_model`、`unload_model`、`train` 以及插件注册的自定义接口。`--payload` 传接口请求体,`--config` 临时覆盖插件 `config`,`--model-path` 是 `config.model_path` 的快捷写法,适合测试需要先加载模型的分类插件。这个工具复用平台的 manifest 解析、入口类加载和接口注册收集逻辑,但不会启动中心平台、不会写数据库、不会登记插件或模型。
## 页面截图
截图位于 `docs/screenshots/`,已压缩为 JPG,便于在 README 或发布材料中快速查看平台主要页面。截图覆盖菜单页以及训练详情、验证任务详情、集群节点详情、训练任务对比等子页面。下面按常用查看顺序折叠展示,点击标题可展开预览。
训练任务详情
[](docs/screenshots/08_training_detail.jpg)
训练任务对比
[](docs/screenshots/09_training_compare.jpg)
验证任务详情
[](docs/screenshots/11_evaluation_detail.jpg)
集群节点详情
[](docs/screenshots/16_cluster_node_detail.jpg)
工作台
[](docs/screenshots/01_dashboard.jpg)
插件仓库
[](docs/screenshots/02_plugin_repo.jpg)
插件资产详情
[](docs/screenshots/03_plugin_detail.jpg)
数据集管理
[](docs/screenshots/04_dataset_list.jpg)
数据集详情
[](docs/screenshots/05_dataset_detail.jpg)
模型管理
[](docs/screenshots/06_model_list.jpg)
模型训练
[](docs/screenshots/07_training_list.jpg)
模型验证记录
[](docs/screenshots/10_evaluation_list.jpg)
服务实例
[](docs/screenshots/12_service_instances.jpg)
服务实例详情
[](docs/screenshots/13_service_detail.jpg)
接口映射
[](docs/screenshots/14_interface_mappings.jpg)
集群节点
[](docs/screenshots/15_cluster_nodes.jpg)
角色管理
[](docs/screenshots/17_system_roles.jpg)
系统配置
[](docs/screenshots/18_system_configs.jpg)
## 常用流程
### 插件到服务
1. 在“插件仓库”上传插件包。
2. 检查依赖、入口类、接口声明和配置项。
3. 在“服务实例”中新建实例,选择插件并绑定模型。
4. 启动服务实例,在详情页“发布验证”中确认实例在线、模型已加载、默认接口可测试。
5. 在服务实例详情中发起接口测试,或通过“接口映射”发布给业务系统。
### 数据到模型
1. 在“数据集管理”导入训练集、验证集或测试集。
2. 在“模型训练”选择插件、数据集、基础模型和训练参数。
3. 创建训练任务,本机模式使用中心平台服务器资源,集群模式由 Go Node 节点执行,且必须选择训练镜像。
4. 训练完成后,平台自动把产出登记到“模型管理”。
5. 对模型发起验证评估,结合整体指标和样本明细判断是否可发布。
### 集群训练
1. 在 GPU 服务器部署并启动 Go Node。
2. 在“集群节点”审批节点,确认 GPU、显存、驱动、CUDA 和心跳正常。
3. 新建训练任务时选择“调度模式:集群”和训练镜像,平台把训练容器参数、数据目录、模型缓存和 GPU 分配下发给节点。
4. Go Node 启动训练容器并监控退出状态;训练镜像负责具体训练逻辑、进度回传和产物落盘/上传。
集群训练的状态通常会经历:`排队`、`训练中`、`上传中`、`登记模型中`、`成功` 或 `失败`。如果训练日志已经显示完成,但节点仍显示运行中,应优先查看节点详情中的“服务与上传”和任务事件,确认是否仍在回传模型产物。
如果模型上传失败或中心平台重启,节点详情的“产物与指令”中可以查看上传记录、错误信息,并触发重新上传或手动登记模型。节点文件占用可以在节点详情中扫描和清理,清理前应确认训练任务、模型登记和日志归档已经完成。
### 通知与运维
平台顶部通知会实时展示训练任务分配、开始训练、训练完成、Go Node 上线/离线、节点更新、模型保存、服务实例发布等事件。通知项会尽量携带跳转信息,便于直接进入训练任务、模型、服务实例或节点详情页面处理。
## 训练和验证建议
- 训练任务页面的 `loss`、`acc`、`grad_norm`、`learning_rate`、`memory(GiB)`、`train_speed(s/it)` 等曲线用于判断训练是否稳定。
- 分类模型不要只看训练集 `acc`,还要看验证任务中的整体准确率、TopK、预测分布、大类准确率、小类召回率和失败样本。
- 模型管理列表会优先展示最近训练指标和最近验证指标,模型好坏应以独立验证集结果为主。
- 继续训练时可以选择已有训练产出模型作为基础模型,并使用更小学习率短轮次微调;标签集合发生变化时应从原始基座模型重新训练。
## 开发约定
- 后端新增功能遵守 `API -> Service -> Repository -> Model` 分层,详见 `开发规范.md`。
- 插件代码、模型文件、训练输出、日志、缓存和构建产物不要提交到 Git。
- 插件包和模型包分开管理:插件包只包含代码、声明、少量示例和测试脚本;模型由“模型管理”维护。
- 现场化部署配置、密钥、token、IP、密码等不要写入 README 或代码注释。
## 文档索引
- `AGENTS.md`:项目级 AI / 开发协作规则。
- `docs/模块索引.md`:平台模块清单、职责、上下游和验证入口。
- `docs/架构设计.md`:跨模块架构、核心链路、数据流和部署拓扑。
- `平台使用说明.md`:平台功能和页面使用说明。
- `开发规范.md`:中心平台代码开发约束。
- `docs/部署运维.md`:脱敏部署、配置、启动、备份和排障说明。
- `node-go/README.md`:Go Node 宿主机节点组件、一键安装模板和镜像/推理调度验证说明。
- `agent-deploy-template/README.md`:脱敏训练镜像 Docker 和离线部署模板。
- `docs/screenshots/`:平台页面截图。
- `server/README.md`:后端服务说明。
- `web/README.md`:前端工程说明。
- `../Hotline Algorithm SDK/README.md`:插件 SDK 文档入口。
- `../Hotline Algorithm SDK/插件开发说明.md`:插件开发规范和接口约定。