Xiaozhi ESP32 Server WebUI 是一个用于小智AI服务端的 Web 应用程序,主要功能是对服务器、日志、运行时等多方面的配置进行管理。用户可以通过网页界面搜索配置项、修改配置内容并保存,后端会将配置保存到 YAML 文件中。同时,该应用支持注释解析和显示,方便用户理解配置项的含义。
webui/
├── .git/ # Git 版本控制目录
├── comment_parser.py # 配置文件注释解析模块
├── config_editor.py # 配置编辑相关的 Flask 路由和逻辑
├── config_hints.py # 配置项提示信息
├── data/ # 配置文件存储目录
├── static/ # 静态资源目录
│ ├── css/ # 样式文件
│ └── js/ # JavaScript 脚本
├── templates/ # HTML 模板文件
│ └── editor.html # 配置编辑页面模板
└── webui.py # 主 Flask 应用文件
- 配置搜索:支持通过配置项名称、描述和注释进行搜索,搜索结果高亮显示,并可点击结果跳转到对应配置项。
- 配置编辑:提供可视化的配置编辑界面,用户可以直接在网页上修改配置项的值。
- 配置保存:用户修改配置后,点击保存按钮,后端会将新配置与旧配置合并,并保存到 YAML 文件中。
- 注释显示:在配置项旁边显示对应的注释信息,帮助用户理解配置项的作用。
- 通知系统:在配置保存过程中,会显示不同状态的通知,如保存中、保存成功、保存失败等。
- Python 3.12 及以上版本
- Flask
- ruamel.yaml
pip install flask ruamel.yamlpython webui.py启动项目后,在浏览器中访问 http://localhost:8000 即可打开配置编辑页面。
- 搜索配置项:在搜索框中输入配置项名称、描述或注释的关键词,系统会实时显示匹配的结果。点击搜索结果,页面会自动滚动到对应的配置项。
- 编辑配置项:在配置编辑页面,直接修改配置项的值。
- 保存配置:修改完成后,点击“保存配置”按钮,系统会将新配置保存到文件中,并显示保存结果的通知。
配置文件存储在 data 目录下,支持两种格式:.config.yaml(隐藏文件)和 config.yaml。如果 data 目录下不存在配置文件,系统会从项目根目录下的 config.yaml 文件复制一份到 data 目录。
webui.py:主 Flask 应用文件,包含路由定义、配置加载、保存和合并等逻辑。config_editor.py:配置编辑相关的 Flask 路由和逻辑。comment_parser.py:配置文件注释解析模块,用于解析配置文件中的注释信息。config_hints.py:配置项提示信息,包含各个配置项的说明。editor.html:配置编辑页面模板,包含搜索框、配置项展示和表单提交等功能。script.js:前端 JavaScript 脚本,实现搜索、表单提交和通知显示等功能。
- 本项目使用的是 Flask 开发服务器,请勿在生产环境中直接使用,建议使用生产级别的 WSGI 服务器,如 Gunicorn 或 uWSGI。
- 确保程序有足够的权限在
data目录下创建、修改和删除配置文件。
如果你发现了 bug 或者有新的功能建议,欢迎提交 issue 或 pull request。