owndev/Open-WebUI-Functions

Open-WebUI-Functions is a collection of custom pipelines, filters, and integrations designed to enhance Open WebUI. These functions enable seamless interactions with Azure AI, N8N, Google Gemini and other AI models, providing dynamic request handling, preprocessing, and automation.

概要

Open‑WebUI‑Functionsは、Open WebUIチャットインターフェース(オープンソースプロジェクト open‑webui/open‑webui)にプラグインできる小さなPython関数ライブラリです。このリポジトリは、すぐに使えるパイプライン、フィルター、統合機能を提供し、Open WebUIを外部AIサービス(Azure OpenAI、Google Gemini、Infomaniak、N8Nなど)に接続したり、データの事前・事後処理を行ったり、APIキーなどの機密情報を暗号化して保持したりすることを可能にします。

主な機能

機能 内容 メリット
カスタムパイプライン 外部LLMプロバイダーの呼び出し、RAG検索、データ変換を行うPythonベースの処理ステップ。 ボイラープレートコードを書かずにAzure、Google Gemini、Infomaniak、N8Nなどを利用可能。
フィルター リクエストの前後に実行される小さなフック(例:トークン使用量追跡、Google検索グラウンディング)。 コアUIを触らずに可観測性や追加ロジックを提供。
統合機能 Azure AI、N8Nワークフロー自動化、Infomaniak AIツール、Google Geminiなどのためのすぐに使える関数。 サードパーティサービスとの接続の手間を削減。
ストリーミングと非ストリーミングのサポート リアルタイムのトークンストリームとバッチ応答の両方を処理。 チャット形式のストリーミングと従来の要求応答呼び出しの両方に対応。
安全な機密情報の取り扱い WEBUI_SECRET_KEY環境変数を使用したAPIキーの自動暗号化。 Open WebUIデータベース内で認証情報を安全に保持。
環境変数による設定 すべての動作(モデルリスト、タイムアウト、トークン追跡など)を環境変数で切り替え可能。 同じ関数を多くのデプロイ環境で利用可能。

仕組み

  1. Open WebUI(メインのチャットUI)をインストールします。
  2. 管理 → 関数 (Admin → Functions) パネルで、新しい関数を追加 (Add New Function) をクリックし、このリポジトリのPythonコードを貼り付けます。
  3. 必要な環境変数(例:AZURE_AI_API_KEY、WEBUI_SECRET_KEY)を設定します。
  4. 関数はOpen WebUI内で選択可能な「パイプライン」になります。ユーザーがメッセージを送信すると、パイプラインはリクエストを外部プロバイダーに転送し、設定されたフィルターを適用して回答を返します(サポートされている場合はストリーミング)。
  5. Time Token Trackerのようなオプションのフィルターを使用すると、可観測性のためにAzure Log Analyticsへ使用量をログ記録できます。

代表的なユースケース

ユースケース サンプルパイプライン 得られるもの
AzureによるエンタープライズLLM azure_ai_foundry.py Azure OpenAI推論、Azure SearchベースのRAG、引用カード、Open WebUIに保存されるトークン使用量。
N8Nによる自動化 n8n.py N8N Webhookへのチャットメッセージ送信、処理された返信の受信、ツール呼び出しの要約表示。
Google Gemini生成 google_gemini.py Geminiモデルへのアクセス、テキストストリーミング、画像や動画の生成、トークン追跡、オプションのGoogle検索グラウンディング。
可観測性 time_token_tracker.py 応答時間とトークン数をログに記録し、必要に応じてAzure Log Analyticsへプッシュ。

はじめに(クイックステップ)

# 1. Open WebUIを実行 (Docker, Helmなど)
# 2. UIを開く → 管理者設定 → 関数
# 3. 新しい関数を追加し、このリポジトリから目的の *.py ファイルを貼り付け
# 4. 必要な環境変数を設定、例:
export WEBUI_SECRET_KEY="my‑random‑secret"
export AZURE_AI_API_KEY="<key>"
# 5. 保存 – パイプラインがモデルセレクターに表示されます。

ドキュメントとサポート

  • Docsフォルダ – 各統合の詳細ガイド(Azureの引用、N8Nの使用、Google Geminiの設定など)。
  • Tests – Dockerベースのエンドツーエンドテストが tests/e2e/ にあります。
  • Issues & PRs – コミュニティによる新しいパイプラインやフィルターの貢献を歓迎します。
  • ライセンス – MIT ( LICENSE を参照)。

Open‑WebUI‑Functions 自体はLLMを提供しません。既存のOpen WebUIプラットフォームを、実際のAIワークフローのためのすぐに使えるコネクタやユーティリティで拡張するものです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト