Skip to content

WebUI 配置与热重载

字数
901 字
阅读时间
4 分钟

本页说明控制台如何落盘插件与通用配置,以及插件作者如何接入「保存后立即生效」。前端联调见 WebUI 前端开发;REST 分域见 WebUI API

侧栏 AI 配置 负责 Bot Provider(普通聊天)与媒体 / RWKV 连接;普通聊天不依赖 Pallas-Bot-AI 可达。静态产物默认在 data/pb_webui/public-react/

实现目录:pallas/console/webui/;路由薄层在 packages/pb_webui/

配置落盘

入口写入
插件webui.jsonenv,字段名大写
通用配置 各段同上;部分段有专用 payload(语料联邦、联邦控制、服务网关)
合并顺序pallas.toml → 遗留 .envwebui.jsonWebUI 最高

命令权限说明见 cmd_perm

热重载分级(配置 / 元数据 / 代码):见 Reload 与 Activation。插件可在 extra["reload_policy"] 声明期望粒度(默认 config_only)。

三级与插件作者

级别改什么要不要适配生效方式
配置config.py 字段install_hot_reload_config(见下)WebUI 插件页保存后立即 reload
元数据extra 内 help、ingress、command_permissions 等声明可选:设 reload_policy: metadata同上保存时重建 help/ingress 等索引(不卸载 matcher)
代码Python 模块无热载须重启 Bot

未声明 reload_policy 时等价于 config_only:只热载 config.py改 extra 声明后仍须重启

python
extra={
    ...
    "reload_policy": "metadata",  # 频繁改 help/ingress 声明且不想重启时
}

full 表示期望代码级重载;当前实现仍只做到元数据索引重建,改代码请重启。

插件接入热重载

config.py 末尾:

python
from pydantic import BaseModel, Field

from pallas.api.config import install_hot_reload_config

class Config(BaseModel, extra="ignore"):
    my_enable: bool = Field(default=False, description="是否启用某功能。")

plugin_webui = install_hot_reload_config(Config, config_module=__name__)
get_my_config = plugin_webui.get

业务代码统一 get_my_config(),勿缓存 import 时快照。可选 parse_env_valueon_reload(见 draw)。

未使用热重载时仍可用 get_plugin_config(Config),但进程内值需重启才与磁盘一致。

通用配置段

env_sections.py_registered_sections() 注册。已 install_hot_reload_config 的插件经注册表读当前值;保存时尝试 reload_plugin_config

段 ID标题说明
cmd_perm命令权限覆盖矩阵
control_plane联邦控制专用 payload
corpus_federation语料联邦专用 payload
ingress_fanout入站:全员同响命令
repeater_learn复读:后台语料学习
message_scrub消息审查与入站过滤V4 默认开启
service_gateways外部服务地址画画 / MAA / 点歌 + 连通检测
pallas_webui / pallas_protocol / help各插件子集

在线统计配置在插件页 pb_stats(不再占用通用配置段;旧 community_stats 入口会重定向)。见 在线统计与社区主站

包内文件

文件职责
plugin_config.pyinstall_hot_reload_config
registry.py按插件名 get / reload
plugin_api.py插件页 GET/PUT
env_sections.py通用配置段注册
field_labels.py / field_help.pyWebUI 中文名与说明
service_gateways_section.py网关聚合与检测 API

参考插件

插件说明
sing标准热重载
draw自定义解析 + on_reload
pallas_webuiHTTP 路由层

实现

pallas/console/webui/ · 控制台 JSON API 编排 packages/pb_webui/extended_api.pyregister_extended_api),域路由分散在 db_apiai_extension_apiupdate_apisocial_apiplugins_console_apicommon_config_apillm_product_apisystem_home_apilogs_apiauth_security_apistats_dashboard_apiinstances_configs_api 等模块,以及既有 acl_apillm_ops_apimemory_graph_apiagent_platform_apiconsole_metrics_runtimeextended_common

API 契约(按域)

REST 路径、鉴权、写操作与热重载行为见 api/README.md(与 WebUI consoleApi.ts / OpenAPI 对齐)。

后续阅读