open-webui-skill について
open-webui-skill は、ボットユーザーの API キーで Open WebUI を操作する Python CLI スキルです。モデル、チャット、ナレッジベース、チャンネル、メッセージ、ファイルを扱い、Markdown の投稿にも対応します。
主な機能
- 01モデルの一覧表示と詳細確認
- 02チャットの取得、作成、更新、追記
- 03参照可能なナレッジベースへのアクセス
- 04チャンネル、メッセージ、スレッドの閲覧
- 05ファイルのメタデータと抽出内容の取得
- 06チャンネルへの Markdown 投稿
活用シーン
- 01ボットが参照できるモデルとナレッジベースの確認
- 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 対応