Files
biliup-next/docs/control-plane-guide.md
2026-04-01 00:44:58 +08:00

477 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Control Plane Guide
本文档面向 `biliup-next` 控制台的日常使用。
默认地址:
```text
http://127.0.0.1:8787/
```
如果当前机器已经开放公网访问,也可以使用服务器 IP + `8787` 端口访问。
## 页面分区
控制台主要分成两列:
- 左侧全局状态、服务、动作流、导入入口、任务列表、Settings
- 右侧:当前任务详情、步骤、产物、历史、时间线、模块、日志
建议的使用顺序是:
1. 先看 `Runtime`
2. 再看 `Tasks`
3. 选中一个任务后,看右侧详情
4. 如果任务异常,再看 `Logs``History`
## Runtime
这里可以看 3 个汇总指标:
- `Health`
- `Doctor`
- `Tasks`
含义:
- `Health = OK`
- API 服务本身还活着
- `Doctor = OK`
- 关键路径、二进制和依赖文件都存在
- `Tasks`
- 当前数据库里的任务数
如果 `Doctor` 不是 `OK`,优先不要继续点任务操作,先修运行环境。
## Services
这里可以查看并控制:
- `biliup-next-worker.service`
- `biliup-next-api.service`
- 如果还保留旧服务,也可能看到 `biliup-python.service`
可执行操作:
- `start`
- `restart`
- `stop`
建议:
- 页面打不开时,先看 `biliup-next-api.service`
- 任务不推进时,先看 `biliup-next-worker.service`
- 不要随便再启动旧 `biliup-python.service`,除非你明确知道自己要同时跑旧链路
## Recent Actions
这里显示最近的控制面动作流,例如:
- `worker_run_once`
- `task_run`
- `retry_step`
- `reset_to_step`
- `stage_import`
- `stage_upload`
- `service_action`
可过滤:
- 仅当前任务
- `status`
- `action_name`
用途:
- 判断最近有没有人工操作过任务
- 判断任务是不是被重试过
- 判断服务是不是被重启过
## Import To Stage
这里有两种入口。
### 1. 复制本机已有文件到隔离 stage
输入服务器上的绝对路径,例如:
```text
/home/theshy/video/test.mp4
```
点击:
```text
复制到隔离 Stage
```
适合:
- 服务器本地已有文件
- 想快速把已有文件丢进新系统测试
### 2. 浏览器直接上传文件
选择本地文件后点击:
```text
上传到隔离 Stage
```
适合:
- 本地电脑上的测试视频
- 不想先手动传到服务器
上传成功后,`worker` 会自动扫描 `stage` 并开始建任务。
## Tasks
这里列出任务列表。
每个任务会显示:
- 标题
- 当前状态
- 任务 ID
常见状态:
- `created`
- `transcribed`
- `songs_detected`
- `split_done`
- `published`
- `commented`
- `collection_synced`
- `failed_retryable`
- `failed_manual`
建议:
- 先选中你关心的任务
- 再看右侧 `Task Detail / Steps / Logs`
## Task Detail
显示当前选中任务的核心信息:
- `Task ID`
- `Status`
- `Title`
- `Source`
- `Created`
- `Updated`
上方有 3 个操作按钮:
- `执行当前任务`
- `重试选中 Step`
- `重置到选中 Step`
### 执行当前任务
作用:
- 手动推进当前任务一次
适合:
- 你刚改完配置
- 你不想等下一轮 worker 轮询
### 重试选中 Step
作用:
- 从当前选中的 step 重新尝试
适合:
- 某一步是临时失败
- 不需要删除后续产物
### 重置到选中 Step
作用:
- 清理该 step 之后的产物和标记
- 把任务回拨到该 step
- 然后重新执行
适合:
- 后续结果已经不可信
- 需要从某一步重新跑整段链路
注意:
- 这是破坏性动作
- 页面会要求确认
## Steps
这里显示任务步骤列表,例如:
- `ingest`
- `transcribe`
- `song_detect`
- `split`
- `publish`
- `comment`
- `collection_a`
- `collection_b`
点击某个 step 之后:
- 这个 step 会成为“当前选中 step”
- 然后你就可以点:
- `重试选中 Step`
- `重置到选中 Step`
排查原则:
- `transcribe` 失败:先看 `Groq API Key``ffmpeg`
- `song_detect` 失败:先看 `codex_cmd`
- `publish` 失败:先看 `cookies.json``biliup`
- `collection_*` 失败:再看任务历史和日志
评论规则补充:
- `comment`
- 纯享版视频下默认发“编号歌单”,不带时间轴
- 完整版主视频下默认才发“带时间轴评论”
- 如果当前任务找不到 `full_video_bvid.txt`,也没能从最近发布列表解析出完整版 BV主视频评论会跳过
## Artifacts
这里显示任务当前已经产出的文件,例如:
- `source_video`
- `subtitle_srt`
- `songs_json`
- `songs_txt`
- `clip_video`
- `publish_bvid`
用途:
- 判断任务跑到了哪一步
- 判断关键输出是否已经落盘
如果开启了 cleanup 配置,任务在 `collection_synced` 后:
- `source_video` 对应的原始视频可能会被删除
- `clip_video` 对应的 `split_video/` 目录也可能被清理
这是正常收尾行为,不代表任务失败。
## History
这里是单任务动作历史。
`Recent Actions` 的区别:
- `Recent Actions` 看全局
- `History` 只看当前任务
可以看到:
- 动作名
- 状态
- 摘要
- 时间
- 结构化 `details_json`
用途:
- 判断某次 `retry``reset` 的结果
- 判断 worker 最近对这个任务做了什么
## Timeline
这里把任务事件串成一条时间线:
- `Task Created`
- step started / finished
- artifact created
- action records
适合:
- 回放任务完整过程
- 查清楚任务到底卡在什么时候
## Modules
这里显示当前注册的模块 / provider。
用途:
- 确认当前用的是哪套 provider
- 确认模块有没有注册成功
如果将来切 provider这里会很有用。
## Doctor Checks
这里比顶部的 `Doctor = OK/FAIL` 更详细。
会列出:
- workspace 目录
- `cookies_file`
- `upload_config_file`
- `ffprobe`
- `ffmpeg`
- `codex_cmd`
- `biliup_path`
如果某个依赖显示 `(external)`,表示它还在用系统或父项目路径,不是 `biliup-next` 自己目录内的副本。
## Logs
这里可以看日志文件。
支持:
- 切换日志文件
- 刷新日志
- 按当前任务标题过滤
使用建议:
- 任务异常时,先选中任务
- 再勾选“按当前任务标题过滤”
- 然后查看相关日志
这样比直接翻整份日志快很多。
## Settings
Settings 分成两层:
- 上半部分schema 驱动表单
- 下半部分:`Advanced JSON Editor`
### 表单区
这里适合日常参数调整,例如:
- `min_duration_seconds`
- `groq_api_key`
- `codex_cmd`
- `retry_count`
- `season_id_a`
- `season_id_b`
- `post_split_comment`
- `post_full_video_timeline_comment`
- `delete_source_video_after_collection_synced`
- `delete_split_videos_after_collection_synced`
支持:
- 搜索配置项
- 高频参数优先展示
- 低频参数收纳到 `Advanced Settings`
### Advanced JSON Editor
适合:
- 批量调整
- 一次改多个字段
- 需要直接编辑原始 JSON
页面上有两个同步按钮:
- `表单同步到 JSON`
- `JSON 重绘表单`
### 敏感字段规则
敏感字段会显示为:
```text
__BILIUP_NEXT_SECRET__
```
规则:
- 保留占位符:不改原值
- 改成空字符串:清空原值
- 改成新的字符串:更新为新值
## 推荐操作流
### 新上传一个测试视频
1. 打开控制台
2.`Import To Stage` 上传视频
3.`Tasks` 是否出现新任务
4. 选中该任务
5. 观察 `Steps / Artifacts / Timeline`
6. 如需加速,点击 `执行当前任务`
### 某个任务失败
1. 选中任务
2.`Task Detail` 当前状态
3.`Steps` 哪一步失败
4.`Logs`
5. 若只是临时失败:
- 选中 step
-`重试选中 Step`
6. 若后续产物也需要重建:
- 选中 step
-`重置到选中 Step`
### 修改合集或上传参数
1. 打开 `Settings`
2. 搜索目标参数,例如 `season` / `retry`
3. 修改表单
4. 点击 `保存 Settings`
5. 对目标任务执行:
- `执行当前任务`
-`重置到相关 step`
### 控制评论与清理行为
1. 打开 `Settings`
2. 搜索:
- `post_split_comment`
- `post_full_video_timeline_comment`
- `delete_source_video_after_collection_synced`
- `delete_split_videos_after_collection_synced`
3. 修改后保存
4. 新任务会按新规则执行
建议:
- 如果你希望纯享版评论更适合分P浏览保持 `post_split_comment = true`
- 如果你不希望尝试给完整版主视频发时间轴评论,可以关闭 `post_full_video_timeline_comment`
- 如果磁盘紧张,再开启 cleanup默认建议先关闭等确认流程稳定后再开
### 服务异常
1.`Services`
2. 优先 `restart biliup-next-worker.service`
3. 如果页面自身异常,再 `restart biliup-next-api.service`
4. 重启后看:
- `Health`
- `Doctor`
- `Recent Actions`
## 安全建议
当前控制台已经对公网开放时,建议立刻设置:
- `runtime.control_token`
设置后:
-`/``/health` 外,其余 API 都要求 `X-Biliup-Token`
如果你通过公网访问控制台,不建议长期保持空 token。