mcpField
O
open-webui-skill

open-webui-skill

github.com/k5-mot生产力0110 次安装6 周前更新
代码仓库

关于 open-webui-skill

open-webui-skill 是使用 Bot 用户 API 密钥操作 Open WebUI 的 Python CLI 技能,涵盖模型、聊天、知识库、频道、消息和文件,也支持向频道发布 Markdown。

主要功能

  1. 01列出并查看模型
  2. 02获取、创建、更新和追加聊天
  3. 03访问 Bot 可见的知识库
  4. 04浏览频道、消息和讨论串
  5. 05读取文件元数据及提取内容
  6. 06向频道发布 Markdown

适用场景

  1. 01检查 Bot 可见的模型和知识库
  2. 02获取聊天记录和频道讨论
  3. 03向频道发布 Markdown 报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/k5-mot/skills --skill open-webui-skill

安装后在 Claude Code 中输入/open-webui-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

REFERENCE.md
scripts/
client.py
tests/
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