关于 open-webui-skill
open-webui-skill 是使用 Bot 用户 API 密钥操作 Open WebUI 的 Python CLI 技能,涵盖模型、聊天、知识库、频道、消息和文件,也支持向频道发布 Markdown。
主要功能
- 01列出并查看模型
- 02获取、创建、更新和追加聊天
- 03访问 Bot 可见的知识库
- 04浏览频道、消息和讨论串
- 05读取文件元数据及提取内容
- 06向频道发布 Markdown
适用场景
- 01检查 Bot 可见的模型和知识库
- 02获取聊天记录和频道讨论
- 03向频道发布 Markdown 报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ k5-mot/ skills --skill open-webui-skill安装后在 Claude Code 中输入/open-webui-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFERENCE.mdscripts/client.pytests/test_openwebui_channels_skill.py详细介绍
open-webui-skill
用途
使用此技能,通过 OPEN_WEBUI_API_KEY 配置的机器人用户操作 Open WebUI。
环境
必需的环境变量:
OPEN_WEBUI_BASE_URL:Open WebUI 基础 URL,例如http://open-webui:8080。OPEN_WEBUI_API_KEY:机器人用户 API 密钥。切勿将此值放入提示词、输出、日志、报告或定时任务定义中。
可选的环境变量:
OPEN_WEBUI_DEFAULT_CHANNEL:命令未指定--channel时使用的备用频道。OPEN_WEBUI_PUBLIC_URL:面向浏览器的 Open WebUI URL,在报告需要可点击链接时使用。OPEN_WEBUI_CHANNELS_LIST_PATH:频道列表接口路径。OPEN_WEBUI_CHANNELS_POST_PATH_TEMPLATE:包含{channel_id}的发帖接口路径模板。OPEN_WEBUI_CHATS_ALL_DB_PATH:导出所有用户聊天记录的管理员接口。默认值为/api/v1/chats/all/db。OPEN_WEBUI_MODELS_PATH:模型列表接口路径。OPEN_WEBUI_MAX_MESSAGE_CHARS:截断前 Markdown 帖子的最大长度。OPEN_WEBUI_TIMEOUT_SECONDS:HTTP 超时时间(秒)。OPEN_WEBUI_MAX_RETRIES:遇到暂时性 API 故障时的重试次数。
有关 API 密钥设置、接口允许列表、确切路由以及请求/响应详情,请阅读 REFERENCE.md。
功能:
- 列出机器人用户可见的模型。
- 获取、创建、更新机器人用户可见的聊天记录,并向其中追加内容。
- 当 API 密钥具有管理员权限时,通过管理员导出接口获取所有用户的聊天记录。
- 获取机器人用户可见的知识库。
- 列出机器人用户可见的频道。
- 将
#channel-name或普通频道名称解析为频道 ID。 - 获取频道元数据。
- 获取频道消息,不论消息由 AI 还是用户撰写。
- 获取消息线程。
- 获取文件元数据和提取的文件内容。
- 向频道发送 Markdown 消息。
命令
模型:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py models list
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py models get --model llama3.2
聊天记录:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py chats list --all
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py chats list --all-users
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py chats get --chat-id "<chat_id>"
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py chats post \
--chat-id "<chat_id>" \
--model llama3.2 \
--content "追加メッセージ"
知识库:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py knowledge list --details
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py knowledge get --knowledge-id "<knowledge_id>"
频道:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels list
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels resolve --channel report
获取频道消息:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels messages \
--channel report \
--all \
--include-threads
获取文件内容:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels file-content --file-id "<file_id>"
向频道发帖:
python3 /opt/inferlab/skills/open-webui-skill/scripts/client.py channels post \
--channel report \
--content "## Report\n\nBody"
规则
- 切勿将
OPEN_WEBUI_API_KEY放入提示词、输出或已保存的 cron 定义中。 - 更改 API 路径、添加新的 Open WebUI 接口或诊断 API 密钥的接口限制之前,请先阅读
REFERENCE.md。 - 除非用户明确只要求预览,否则不要在定时发帖时使用
--dry-run。 - 对于实际发帖,请检查命令 JSON。
"ok": true表示 API 已接受该帖子;"ok": false表示未发帖。 - 优先使用明确的频道名称或 ID。
report和#report均可使用。 - 如果需要文件内容,请先检查消息的
data.files[*].id,然后调用file-content。
内容编写
- 对于活动报告:使用此技能获取消息,通过
llm-activity-report-skill进行总结,然后使用此技能发帖。 - 对于科技新闻:使用 RSS/搜索收集来源,通过
tech-news-report-skill整理格式,然后使用此技能发帖。
评论
支持 Markdown