合并外部维护版本并同步自动每日功能
This commit is contained in:
@@ -4,17 +4,16 @@
|
||||
|
||||
## 环境
|
||||
|
||||
- **Python**: 项目虚拟环境 `.venv`(Python 3.11)
|
||||
- **Python**: 项目虚拟环境 `.venv` 或 `.venv-tts`(Python 3.11+)
|
||||
- **Node.js**: 构建前端用
|
||||
- **BetterGI**: `0.63.0+`,路径在 `config/config.json` 中配置
|
||||
- **BetterGI**: 自动化脚本引擎,路径在 `config/config.json` 中配置
|
||||
|
||||
```powershell
|
||||
# 安装 Python 依赖
|
||||
py -3.11 -m venv .venv
|
||||
.venv\Scripts\python.exe -m pip install -r requirements.txt
|
||||
|
||||
# 下载 TTS 模型(约 1.2GB,仅需一次)
|
||||
.venv\Scripts\python.exe -c "from huggingface_hub import snapshot_download; snapshot_download('Qwen/Qwen3-TTS-12Hz-0.6B-Base')"
|
||||
.venv-tts\Scripts\python.exe -c "from huggingface_hub import snapshot_download; snapshot_download('Qwen/Qwen3-TTS-12Hz-0.6B-Base')"
|
||||
|
||||
# 安装前端依赖并构建
|
||||
cd frontend\admin
|
||||
@@ -30,7 +29,7 @@ npm run build
|
||||
|
||||
| 参数 | 默认值 | 说明 |
|
||||
|------|--------|------|
|
||||
| `--role` | `all` | `queue` 仅排队/Web / `music` 仅音乐监听 / `tts` TTS 状态窗口 / `all` 同时启动全部(推荐,否则音乐页面不会随 SMTC 更新) |
|
||||
| `--role` | `all` | `queue` 仅排队/Web / `tts` TTS 状态窗口 / `all` 启动排队/Web 和内置 mpv 点歌(推荐) |
|
||||
| `--host` | `0.0.0.0` | 绑定地址 |
|
||||
| `--port` | `8086` | 端口 |
|
||||
|
||||
@@ -133,10 +132,34 @@ npm run build
|
||||
|
||||
### music_monitor — 音乐监听与点歌
|
||||
|
||||
监听 Windows 系统媒体会话(SMTC),观众可通过弹幕点歌。
|
||||
观众可通过弹幕点歌,内置 mpv 播放器负责播放、续播和状态维护;旧版 `music_monitor.py` 仍保留用于兼容历史配置,但不再作为独立进程启动。
|
||||
|
||||
`request_player.commands`:点歌触发词,默认 `["点歌", "dg"]`。
|
||||
|
||||
### llm_reply — AI 弹幕回复(默认关闭)
|
||||
|
||||
把观众弹幕交给 LLM 自动回复,回复同时走弹幕+TTS 通道(后台「AI回复」页可配置,支持测试)。
|
||||
|
||||
直播前台 `/` 现显示绮良良像素桌宠。`web/uploads/kirara_walk_front.png`、`kirara_walk_back.png`、`kirara_walk_left.png`、`kirara_walk_right.png` 分别提供正面、背面、左侧、右侧四帧无尾巴走路动画;桌宠只沿水平或垂直方向游走,步态帧随移动距离切换,停下时切回正面静止帧。每隔 60–90 秒开始一次移动,持续 10–15 秒,移动速度为 21–35 像素/秒。旁边的黄、蓝、红进度环按体力、清洁、心情从外到内套叠,尺寸为 40×40 像素,以方格绘制阶梯状轮廓,不显示文字。角色与状态环一起沿游戏镂空区外的上、右、下区域游走。体力、清洁和心情均为 0–100,首次为 100;每 15 秒查询一次 B 站直播间状态,只有确认直播中才累计时间,每累计一小时体力和清洁各减 10。查询短暂失败时沿用最近状态最多 60 秒;服务停机期间不补扣。两项同时低于 40 时心情每小时减 5,同时高于 80 时每小时加 3。AI 回复应以 `[开心]`、`[很开心]`、`[平静]`、`[生气]` 或 `[很生气]` 开头,分别令心情 +1、+3、0、-1、-3;标签不会发到弹幕或 TTS。状态保存在 `data/kirara_pet.json`(若 `queue.data_dir` 被修改,则保存在对应数据目录)。
|
||||
|
||||
走路结束后绮良良转为正面静止姿势。每隔 120–150 秒随机触发一次送快递、看书或看手机待机动作,持续 15–20 秒。三种待机和睡觉动作各使用一套由 ImageGen 生成的独立四帧完整角色 PNG 素材(`web/uploads/kirara_idle_*.png`)。心情低于 50 时立即停止行走和普通待机并进入睡眠;进食和洗澡礼物动画优先于睡觉,播放完再回到睡觉姿势,心情恢复后重新安排游走和待机。
|
||||
|
||||
体力或清洁降到 60 及以下时,桌宠每 60 秒显示一次跟随角色的像素气泡。体力从饭团、薯条提示中随机选一句,清洁从人气票、粉丝团灯牌提示中随机选一句;两项都低时轮流提示,数值为 0 的需求优先。气泡在数值 60/40/20 时分别显示 5/10/30 秒,中间线性过渡,数值 0 时常驻,恢复到 60 以上即停止该项提示。
|
||||
|
||||
礼物恢复规则固定为:每个饭团或薯条增加 5 点体力(桌宠的饱食度);每个人气票或粉丝团灯牌增加 5 点清洁。直播事件中的“灯牌”简写也按粉丝团灯牌处理。其他礼物不改变这两项数值。礼物数量乘以每个礼物的 5 点恢复量;数值仍限制在 0–100。
|
||||
|
||||
进食和洗澡动画按礼物的名义恢复量排播,每 1 点播放 5 秒;即使数值已达 100,单个上述礼物仍完整播放 25 秒。进食有饭团和团子两种素材,洗澡有海绵擦洗和花洒冲洗两种素材,播放时各自轮流使用。动画期间桌宠暂停游走,结束后重新安排下一次移动;刷新前台不会重放已有礼物,但打开页面后的首件新礼物会正常播放。四组透明像素素材位于 `web/uploads/kirara_eat_rice.png`、`kirara_eat_dango.png`、`kirara_bath_sponge.png` 和 `kirara_bath_shower.png`。
|
||||
|
||||
- **协议抽象**(`app/llm_client.py`):`provider` 支持
|
||||
- `openai` — OpenAI `/chat/completions` 兼容协议,覆盖 DeepSeek、通义千问(DashScope 兼容模式)、Kimi、智谱 GLM、硅基流动、OpenRouter、vLLM、LM Studio 及 Ollama 的 OpenAI 兼容端点
|
||||
- `ollama` — Ollama 原生 `/api/chat`(本地部署免鉴权)
|
||||
- `anthropic` — Anthropic `/v1/messages`(Claude 系列)
|
||||
- 新增协议:继承 `BaseLLMProvider` 实现 `chat()` 后在 `PROVIDERS` 注册即可
|
||||
- **指令自动忽略**:排队/上号/点歌/自定义规则等会触发指令的弹幕在指令分发层被识别,不会发送给 LLM;`ignore_prefixes`(默认 `//`)开头的弹幕同样忽略
|
||||
- **安全与限流**:`replies_per_minute` 全局每分钟上限、`per_user_cooldown_sec` 单人冷却、`blacklist_uids` 黑名单、`max_reply_chars` 回复截断、并发保护(在途请求未完成时新弹幕直接跳过)
|
||||
|
||||
主要字段:`enabled`(开关)、`base_url`/`api_key`/`model`、`system_prompt`(人设)、`context_turns`(上下文轮数)。
|
||||
|
||||
### system — 系统定时任务
|
||||
|
||||
| 字段 | 说明 |
|
||||
@@ -180,7 +203,7 @@ npm run build # 构建到 web/admin/
|
||||
|
||||
```powershell
|
||||
# 编译检查
|
||||
.venv\Scripts\python.exe -m py_compile app/danmu_queue.py
|
||||
.venv-tts\Scripts\python.exe -m py_compile app/danmu_queue.py
|
||||
```
|
||||
|
||||
核心文件:
|
||||
@@ -190,7 +213,7 @@ npm run build # 构建到 web/admin/
|
||||
| `app/danmu_queue.py` | 弹幕监听、指令处理、队列管理、BGI 控制、TTS、Web API |
|
||||
| `app/bettergi_daily.py` | 自动每日配置生成、秘境别名和队伍参数更新 |
|
||||
| `app/bettergi_current_party.py` | 当前队伍读取托管配置组、状态协议和防串读校验 |
|
||||
| `app/music_monitor.py` | SMTC 音乐监听与点歌调度 |
|
||||
| `app/music_monitor.py` | 旧版 SMTC 音乐监听兼容模块;当前点歌由 `app/mpv_player.py` 和排队调度负责 |
|
||||
| `app/core/runtime_paths.py` | 运行时路径解析 |
|
||||
|
||||
## 打包
|
||||
|
||||
Reference in New Issue
Block a user