mcpField
O
open-webui-skill

open-webui-skill

github.com/k5-mot生産性0110 回インストール6 週間前に更新
リポジトリ

open-webui-skill について

open-webui-skill は、ボットユーザーの API キーで Open WebUI を操作する Python CLI スキルです。モデル、チャット、ナレッジベース、チャンネル、メッセージ、ファイルを扱い、Markdown の投稿にも対応します。

主な機能

  1. 01モデルの一覧表示と詳細確認
  2. 02チャットの取得、作成、更新、追記
  3. 03参照可能なナレッジベースへのアクセス
  4. 04チャンネル、メッセージ、スレッドの閲覧
  5. 05ファイルのメタデータと抽出内容の取得
  6. 06チャンネルへの Markdown 投稿

活用シーン

  1. 01ボットが参照できるモデルとナレッジベースの確認
  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 で形式を整えてから、このスキルで投稿します。

コメント