Open WebUI 完全ガイド:インストールから高度な活用まで
はじめに
近年、ChatGPTをはじめとする大規模言語モデル(LLM)は、私たちの生活や仕事に革命をもたらしつつあります。しかし、多くの強力なLLMはクラウドベースで提供されており、利用にはAPIキーが必要であったり、プライバシーの懸念があったり、あるいは無料利用枠に制限があったりと、様々な制約が存在します。
一方、MetaのLlamaやMistral AIのMistralなど、高性能ながらも比較的小規模で、ローカル環境やプライベートなサーバーでも動作させやすいオープンソースのLLMも続々と登場しています。これらのモデルを最大限に活用するためには、使いやすく、かつ機能豊富なユーザーインターフェース(UI)が不可欠です。
そこで注目されているのが「Open WebUI」です。Open WebUIは、オープンソースのLLM、特にローカル環境で動作するOllamaと連携することに特化した、洗練されたWebベースのUIツールです。まるでChatGPTのような使い慣れたインターフェースで、手軽にローカルLLMと対話できるだけでなく、ファイルアップロードによるRAG(Retrieval Augmented Generation)機能、Web検索ツール、マルチモーダル対応、ユーザー管理など、多くの高度な機能を備えています。
このガイドでは、Open WebUIをゼロから使い始めるための全てを網羅します。インストール方法から、日々のチャット利用、モデルの管理、そして便利な機能の活用方法まで、詳細かつ丁寧に解説していきます。Open WebUIを使って、プライベートな環境で自由にLLMを使い倒しましょう。
1. Open WebUIとは? なぜ使うのか?
Open WebUIは、ローカルで動作するOllamaを始め、OpenAI API、Anthropic Claude、Google Geminiなどの様々な言語モデルAPIと連携できる、オープンソースのWebインターフェースです。主な特徴は以下の通りです。
- 使いやすいUI: ChatGPTライクな直感的で分かりやすいインターフェースを提供します。
- Ollamaとの強力な連携: ローカル環境で様々なオープンソースLLMを簡単にダウンロード・管理し、利用できます。
- マルチモーダル対応: 画像を入力して質問するなど、画像理解に対応したモデルと連携できます。
- RAG機能: PDFやテキストファイルなどのドキュメントをアップロードし、その内容に基づいた回答を得られます。
- ツール連携: Web検索ツールなど、外部ツールと連携してLLMの能力を拡張できます。
- エージェント機能: より複雑なタスクを、LLMが複数のステップを実行して解決する機能です。
- マルチユーザー対応: チームや家族など、複数のユーザーで共有して利用できます。
- オープンソース: 無料で利用でき、コードが公開されているため透明性が高く、コミュニティによる活発な開発が進んでいます。
これらの特徴から、Open WebUIは以下のようなユーザーにとって非常に魅力的です。
- プライバシーを重視するユーザー: センシティブな情報を扱いたい場合、データを外部に送信せずローカルで処理できるOpen WebUI + Ollamaの組み合わせは理想的です。
- コストを抑えたいユーザー: 高価なAPI利用料をかけずに、ローカル環境で高性能なオープンソースモデルを利用できます。
- 多様なモデルを試したいユーザー: Ollamaを使えば、様々なサイズの多様なモデルを手軽にダウンロード・切り替えられます。
- LLMを応用した開発をしたいユーザー: RAGやツール利用といった高度な機能を簡単に試せます。
- チームや組織でLLM環境を共有したいユーザー: マルチユーザー機能により、共同利用が容易になります。
Open WebUIは、LLM活用の可能性を広げる強力なツールと言えるでしょう。
2. Open WebUIのインストール方法
Open WebUIをインストールする最も一般的で推奨される方法は、Dockerコンテナを使用することです。Dockerを使用すると、環境構築が容易になり、依存関係の競合などを避けることができます。ここでは、Docker Composeを使用する方法を中心に解説します。
2.1 前提条件
Open WebUIをDockerで実行するには、お使いのシステムにDockerとDocker Composeがインストールされている必要があります。
- Docker: 公式サイト (https://www.docker.com/products/docker-desktop/) からお使いのOS (Windows, macOS, Linux) に合わせてDocker DesktopまたはDocker Engineをインストールしてください。
- Docker Compose: Docker Desktopには通常含まれています。LinuxなどでDocker Engineのみをインストールした場合は、別途インストールが必要な場合があります。インストール方法は公式ドキュメントを参照してください。
インストールが完了したら、ターミナル(コマンドプロンプトやPowerShell)を開き、以下のコマンドで正しくインストールされているか確認してください。
bash
docker --version
docker compose version
それぞれのバージョン情報が表示されれば準備完了です。
2.2 Docker Composeによるインストール(推奨)
Docker Composeを使用すると、複数のコンテナ(Open WebUIとOllamaなど)の設定をYAMLファイルで管理し、まとめて起動・停止できるため非常に便利です。Ollamaも同時に起動する設定でOpen WebUIをインストールするのが一般的です。
-
作業ディレクトリの作成:
まず、Open WebUI関連のファイルをまとめておくためのディレクトリを作成します。bash
mkdir open-webui
cd open-webui -
docker-compose.yaml
ファイルの作成:
作成したディレクトリ内に、docker-compose.yaml
という名前のファイルを作成し、以下の内容を記述します。このファイルは、Open WebUIコンテナとOllamaコンテナを定義し、連携させるための設定を含んでいます。“`yaml
version: ‘3.8’services:
open-webui:
build:
context: ./open-webui # Open WebUIのDockerfileがあるディレクトリを指定(今回は後述のgit cloneを想定)
args:
OLLAMA_BASE_URL: ‘/ollama’ # Open WebUIからOllamaへのアクセスパス
container_name: open-webui
volumes:
– ./data:/app/backend/data # データを永続化するためのボリューム
ports:
– 8080:8080 # ホストの8080ポートをコンテナの8080ポートにマッピング
environment:
– ‘OLLAMA_BASE_URL=http://ollama:11434/api’ # Open WebUIがOllamaコンテナにアクセスするURL
# 以下の環境変数は必要に応じて設定(例:マルチユーザーモード有効化)
# – ‘WEBUI_AUTH_REQUIRED=true’ # 認証必須にする場合
# – ‘WEBUI_SECRET_KEY=your_secret_key’ # シークレットキーを設定する場合
# – ‘OLLAMA_KEEP_ALIVE=300’ # モデルをメモリに保持する時間(秒)
restart: always # コンテナが終了した場合に自動的に再起動
networks:
– webui_network # Open WebUIとOllama間の通信に使用するネットワークollama:
container_name: ollama
image: ollama/ollama:latest # Ollamaの最新イメージを使用
volumes:
– ./ollama:/root/.ollama # Ollamaのモデルなどを永続化するためのボリューム
ports:
– 11434:11434 # ホストの11434ポートをコンテナの11434ポートにマッピング(任意、Open WebUIからのアクセスのみなら不要)
restart: always # コンテナが終了した場合に自動的に再起動
networks:
– webui_network # Open WebUIとOllama間の通信に使用するネットワーク
# GPUを使用する場合の設定例 (お使いの環境に合わせてコメントを外す)
# deploy:
# resources:
# reservations:
# devices:
# – driver: nvidia
# count: all
# capabilities: [gpu]networks:
webui_network: # Open WebUIとOllama間の通信に使用する内部ネットワークを定義
driver: bridge
“`注意: 上記の
docker-compose.yaml
では、Open WebUIコンテナをビルドするために./open-webui
ディレクトリにDockerfileが必要と指定しています (build: context: ./open-webui
)。Open WebUIのリポジトリをクローンして利用する場合(推奨される開発/カスタマイズ方法)、この設定で問題ありません。より手軽な方法(既存イメージを利用): Open WebUIの公式Dockerイメージを使う場合、
build
部分をimage: ghcr.io/open-webui/open-webui:main
に変更する方が手軽です。この場合、./open-webui
ディレクトリやDockerfileは不要になります。より簡単なのはこの方法です。“`yaml
version: ‘3.8’services:
open-webui:
image: ghcr.io/open-webui/open-webui:main # 公式Dockerイメージを使用
container_name: open-webui
volumes:
– ./data:/app/backend/data # データを永続化するためのボリューム
ports:
– 8080:8080 # ホストの8080ポートをコンテナの8080ポートにマッピング
environment:
# Open WebUIがOllamaコンテナにアクセスするURL。
# networksで同じネットワークに属していればサービス名(ollama)でアクセス可能。
– ‘OLLAMA_BASE_URL=http://ollama:11434/api’
# 必要に応じて設定
# – ‘WEBUI_AUTH_REQUIRED=true’
# – ‘WEBUI_SECRET_KEY=your_secret_key’
# – ‘OLLAMA_KEEP_ALIVE=300’
restart: always # コンテナが終了した場合に自動的に再起動
networks:
– webui_network # Open WebUIとOllama間の通信に使用するネットワークollama:
container_name: ollama
image: ollama/ollama:latest # Ollamaの最新イメージを使用
volumes:
– ./ollama:/root/.ollama # Ollamaのモデルなどを永続化するためのボリューム
# ports: # Open WebUIからのみアクセスする場合、ホストへのポートマッピングは必須ではない
# – 11434:11434
restart: always # コンテナが終了した場合に自動的に再起動
networks:
– webui_network # Open WebUIとOllama間の通信に使用するネットワーク
# GPUを使用する場合の設定例 (お使いの環境に合わせてコメントを外す)
# deploy:
# resources:
# reservations:
# devices:
# – driver: nvidia
# count: all
# capabilities: [gpu]networks:
webui_network: # Open WebUIとOllama間の通信に使用する内部ネットワークを定義
driver: bridge
“`
今回はこの「既存イメージを利用する」方法を前提として以降の説明を進めます。 -
Open WebUIとOllamaの起動:
docker-compose.yaml
ファイルを保存したら、ターミナルでそのファイルがあるディレクトリに移動し、以下のコマンドを実行します。bash
docker compose up -ddocker compose up
:docker-compose.yaml
に定義されたサービス(コンテナ)を起動します。-d
: バックグラウンドでコンテナを実行します(デタッチモード)。
初回実行時は、Dockerイメージのダウンロードが行われるため、完了までに時間がかかる場合があります。
-
Open WebUIへのアクセス:
コンテナが正常に起動したら、Webブラウザを開き、以下のURLにアクセスしてください。http://localhost:8080/
Dockerを別のマシンやサーバーで実行している場合は、
localhost
の部分をそのマシンのIPアドレスまたはホスト名に置き換えてください。 -
初期設定(ユーザー登録):
初めてアクセスすると、ユーザー登録画面が表示されます。ここで管理者となるユーザーの情報を入力し、アカウントを作成します。- Full Name: 任意の表示名
- Email: ログインに使用するメールアドレス
- Password: ログインに使用するパスワード
入力後、「Create Account」ボタンをクリックします。これでユーザー登録は完了し、Open WebUIのメイン画面にログインできます。
2.3 Docker単体によるインストール(手軽だがOllamaは別途)
Docker Composeを使わず、Open WebUIコンテナ単体で起動することも可能です。この場合、Ollamaは別途インストールするか、別のDockerコンテナとして起動する必要があります。
bash
docker run -d \
--network=host \ # ホストネットワークを使用(Ollamaがローカルで動作している場合など)
-v open-webui:/app/backend/data \ # データを永続化するためのボリューム
-e 'OLLAMA_BASE_URL=http://localhost:11434/api' \ # OllamaのURLを指定
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
--network=host
: ホストのネットワークスタックを共有します。これにより、コンテナ内からlocalhost
でホスト上のサービス(例: ローカルで起動したOllama)にアクセスできるようになります。ただし、セキュリティリスクがあるため注意が必要です。-v open-webui:/app/backend/data
:open-webui
という名前のDockerボリュームを作成し、コンテナ内の/app/backend/data
にマウントします。これにより、チャット履歴などのデータがコンテナを削除しても保持されます。-e 'OLLAMA_BASE_URL=...'
: 連携するOllamaのURLを指定します。上記の例ではホストの11434ポートで動作するOllamaを指定しています。ghcr.io/open-webui/open-webui:main
: 使用するOpen WebUIのDockerイメージです。
この方法の利点はコマンドがシンプルであることですが、Ollamaとの連携設定やボリューム管理などはDocker Composeの方が柔軟に行えます。特別な理由がなければ、Docker Composeの使用をお勧めします。
2.4 インストール後の確認
Open WebUIにログインできたら、まずOllamaとの連携が正常に行われているか確認しましょう。
- 画面左下の設定アイコン(歯車マーク)をクリックします。
- 設定メニューが表示されるので、「Models」を選択します。
- 画面上部に「Ollama」タブが表示されていることを確認します。
- Ollamaタブを選択すると、Ollamaサーバーに現在インストールされているモデル一覧が表示されるはずです。もし何も表示されない場合は、Ollamaコンテナ(またはローカルOllama)が起動しているか、
docker-compose.yaml
(またはdocker run
コマンド)のOLLAMA_BASE_URL
設定が正しいか確認してください。
また、Ollamaコンテナのログを確認することも問題解決に役立ちます。
bash
docker logs ollama
docker logs open-webui
これらのログから、起動時のエラーやOpen WebUIとOllama間の通信エラーの原因を特定できる場合があります。
これで、Open WebUIを使い始めるための基本的なインストールは完了です。次に、基本的な操作方法について見ていきましょう。
3. Open WebUIの基本操作ガイド
Open WebUIにログインすると、直感的で使いやすいインターフェースが表示されます。ここでは、UIの概要から、モデルの管理、チャットの利用方法、そして便利な機能までを解説します。
3.1 UIの概要説明
Open WebUIのメイン画面は、主に以下の要素で構成されています。
-
サイドバー: 画面左側に表示され、以下の項目が含まれます。
- 新しいチャット: 新しい会話を開始します。
- チャット履歴: これまでの会話履歴がリストで表示されます。検索、編集、削除などの操作が可能です。
- 設定アイコン(歯車マーク): 全体設定、モデル管理、ユーザー管理などのメニューにアクセスします。
- プロファイルアイコン/ユーザー名: 現在ログインしているユーザーの情報が表示され、ログアウトなどの操作が可能です。
- テーマ切り替えアイコン: ライトモードとダークモードを切り替えます。
-
チャットエリア: 画面中央の大部分を占め、現在の会話の内容が表示されます。
- モデル表示: 会話の冒頭に使用しているモデル名が表示されます。クリックするとモデルを切り替えられます。
- チャット設定: 会話ごとにシステムプロンプトやパラメータ(温度、トークン上限など)を設定できます。
- メッセージ: あなたのプロンプトと、それに対するLLMの回答が時系列で表示されます。
- 回答に対する操作: 各回答の横には、コピー、編集、再生成(リジェネレート)などのアイコンが表示されます。
-
入力欄: 画面下部に位置し、プロンプトを入力するためのエリアです。
- テキスト入力フィールド: ここにLLMに質問したい内容や指示を入力します。
- ファイルアップロードボタン: クリップアイコンで、ローカルファイルをアップロードしてRAGに利用できます。
- 送信ボタン: 紙飛行機アイコンで、入力したプロンプトを送信します。Shift+Enterで改行、Enterで送信がデフォルトですが、設定で変更可能です。
- 音声入力ボタン (マイクアイコン): 対応しているモデルや設定がされていれば、音声での入力を受け付けます。
3.2 モデルの管理
Open WebUIで最も重要な設定の一つが、利用するLLMの管理です。Ollamaモデル、OpenAIなどのAPIモデルをOpen WebUIから一元管理できます。
- 設定画面へのアクセス: サイドバーの下部にある設定アイコン(歯車マーク)をクリックします。
-
Modelsメニューの選択: 表示された設定メニューから「Models」を選択します。
-
Ollamaモデルの管理:
- 「Ollama」タブを選択します。
- モデルのダウンロード:
- 画面上部の検索バーに、ダウンロードしたいモデル名(例:
llama2
,mistral
,neural-chat
など)を入力します。Ollama Hub (https://ollama.com/library) で公開されているモデルを検索できます。 - 検索結果が表示されたら、ダウンロードしたいモデルの横にあるダウンロードアイコン(下矢印)をクリックします。
- モデルのサイズを選択するオプションが表示される場合(例: 7B, 13B, 70Bなど)、必要なサイズを選択して「Pull」をクリックします。
- ダウンロードが開始され、進行状況が表示されます。完了すると、そのモデルが利用可能なモデルリストに追加されます。
- 画面上部の検索バーに、ダウンロードしたいモデル名(例:
- インストール済みモデルの確認: 現在Ollamaにインストールされているモデルがリスト表示されます。
- モデルの削除: 不要になったモデルは、リストの各モデルの横にあるゴミ箱アイコンをクリックして削除できます。
-
APIモデルの管理:
- 「Connections」タブを選択します。
- OpenAI, Anthropic Claude, Google Geminiなどの様々なサービスが表示されます。
- 利用したいサービスの横にある「Connect」ボタンをクリックします。
- API Keyを入力するフィールドが表示されるので、各サービスで取得したAPIキーを入力します。必要に応じて、Base URLやプロキシ設定なども行えます。
- 「Save」をクリックして設定を保存します。
- 接続が成功すると、そのサービスで利用可能なモデルがOpen WebUIで選択できるようになります。
-
モデルの切り替え:
- 新しいチャットを開始する際、または既存のチャットの冒頭に表示されているモデル名をクリックすることで、利用可能なモデルのリストが表示されます。
- リストから使用したいモデルを選択すると、そのチャットで使用されるモデルが切り替わります。
3.3 チャット機能
Open WebUIの核となる機能は、LLMとのチャットです。
-
新しいチャットの開始:
サイドバーの「新しいチャット」(+アイコン)をクリックします。新しい空のチャット画面が開きます。画面上部に使用されるデフォルトモデル名が表示されます。 -
モデルの選択(チャット開始時):
新しいチャット画面上部のモデル名をクリックすると、利用可能なモデルリストが表示されます。ここで、このチャットで使用したいモデルを選択します。 -
プロンプトの入力と送信:
画面下部の入力欄に、LLMに質問したい内容や指示(プロンプト)を入力します。- 複数行にわたる入力は、Shift + Enterで改行できます。
- 入力が完了したら、入力欄の右側にある紙飛行機アイコンをクリックするか、Enterキーを押してプロンプトを送信します。
-
回答の表示と操作:
LLMがプロンプトに対する回答を生成し、チャットエリアに表示します。- 回答のコピー: 回答の右上に表示されるコピーアイコン(二枚の紙)をクリックすると、回答内容をクリップボードにコピーできます。
- 回答の編集: 回答の右上に表示される編集アイコン(鉛筆)をクリックすると、その回答を編集できます。編集後、「Save & Regenerate」で保存して続きを生成させるか、「Save」で内容を確定できます。
- 回答の再生成: 回答の右上に表示されるリフレッシュアイコン(矢印の円)をクリックすると、同じプロンプトを使って別の回答を生成させます。複数の回答を比較したい場合に便利です。
- 「いいね/わるいね」評価: 回答の下に表示される親指のアイコンで、回答の質を評価できます。これはモデルの改善や学習に役立つ場合があります(OpenAIなどの一部サービスのみ)。
-
チャット履歴の管理:
サイドバーには、これまでのチャット履歴がリストで表示されます。- 履歴の閲覧: リストからチャットを選択すると、その会話内容がチャットエリアに表示されます。
- 履歴の編集: 各チャットのタイトルにカーソルを合わせると表示される編集アイコン(鉛筆)をクリックすると、チャットのタイトルを編集できます。
- 履歴の削除: 各チャットのタイトルにカーソルを合わせると表示されるゴミ箱アイコンをクリックすると、そのチャットを削除できます。
- 履歴の検索: サイドバー上部の検索バーにキーワードを入力すると、タイトルや会話内容に含まれるキーワードでチャット履歴を絞り込めます。
- 履歴のエクスポート: 特定のチャット、または全てのチャット履歴をJSON形式などでエクスポートする機能が提供される場合があります(バージョンによる)。設定メニューや各チャットの設定メニューを確認してください。
-
チャットごとの設定:
各チャット画面の上部に表示される歯車アイコンをクリックすると、そのチャット固有の設定を変更できます。- モデル: このチャットで使用するモデルを変更できます。
- System Prompt: モデルに対するシステムプロンプト(役割や指示など)を設定できます。例えば、「あなたは親切なアシスタントです。」「あなたは専門家として回答してください。」など。これにより、モデルの応答スタイルや内容を制御できます。
- Parameters: 温度(Temperature)、最大トークン数(Max Tokens)、トップP(Top P)、周波数ペナルティ(Frequency Penalty)、プレゼンスペナルティ(Presence Penalty)など、モデルの生成パラメータを調整できます。これらのパラメータを調整することで、回答の創造性や網羅性などを変更できます。
3.4 その他の便利機能
Open WebUIは、基本的なチャット機能以外にも多くの便利な機能を備えています。
-
ファイルアップロード機能(RAG):
- 入力欄の左側にあるクリップアイコンをクリックすると、ファイルをアップロードできます。
- Open WebUIはPDF, TXT, DOCX, MDなどの様々な形式のドキュメントに対応しており、これらのファイルの内容を解析して、LLMが回答を生成する際の参考情報として利用できます(RAG: Retrieval Augmented Generation)。
- ファイルをアップロードすると、そのファイルの内容がチャットのコンテキストとして追加され、質問に対してファイルの内容に基づいたより正確で関連性の高い回答が得られるようになります。これは、特定のドキュメントに関する質問をしたり、長い資料を要約させたりするのに非常に役立ちます。
-
ツール機能:
- Open WebUIは、LLMに外部ツールを使わせる機能(Function CallingやTool Use)に対応しています。代表的なツールはWeb検索です。
- ツールを有効化するには、設定メニューから「Tools」を選択します。
- 利用したいツール(例: Web Search)を有効にし、必要に応じて設定(APIキーなど)を行います。Web検索ツールはデフォルトでは有効になっていない場合があります。有効化することで、LLMが質問内容に応じて自動的にWeb検索を実行し、最新の情報に基づいた回答を生成できるようになります。
- チャット画面でツールが有効なモデルを選択している場合、プロンプトの内容によってLLMが判断し、ツールの使用結果を回答に反映します。
-
エージェント機能:
- 特定のモデルや設定で利用可能な機能です。複数のツールやステップを組み合わせて、より複雑なタスクをLLMに実行させることができます。
- 例えば、「〇〇についてWeb検索し、その結果を要約してPDFにまとめて」といった指示に対し、エージェントがWeb検索ツールを使い、要約を行い、最終的な出力を生成するといったワークフローを実行します。
- エージェント機能の詳細は、使用するモデルやOpen WebUIのバージョン、設定に依存します。
-
テーマとUIカスタマイズ:
- サイドバーの下部にあるテーマ切り替えアイコン(太陽または月)をクリックすることで、UIのテーマをライトモードとダークモードで切り替えられます。
- 設定メニューの「General」などから、言語設定やその他のUIに関する細かい設定が行える場合があります。
-
ユーザー管理:
docker-compose.yaml
の環境変数WEBUI_AUTH_REQUIRED=true
を設定してOpen WebUIを起動した場合、マルチユーザーモードが有効になります。- 初回登録したユーザーは管理者権限を持ちます。
- 設定メニューから「Users」を選択すると、ユーザー一覧が表示されます。
- 管理者ユーザーは、新しいユーザーを招待したり、既存ユーザーの権限を変更したり、削除したりできます。
- 各ユーザーは自身のチャット履歴を持ち、他のユーザーからは見えません。
-
設定のバックアップと復元:
- Open WebUIのデータ(チャット履歴、ユーザー情報、設定など)は、Docker Composeで起動した場合、
docker-compose.yaml
で指定したボリューム (./data:/app/backend/data
など) に保存されます。 - このボリュームディレクトリをバックアップしておけば、Open WebUI環境を復元したり、別の環境に移行したりできます。
- 定期的なバックアップを推奨します。
- Open WebUIのデータ(チャット履歴、ユーザー情報、設定など)は、Docker Composeで起動した場合、
4. より高度な活用
Open WebUIの基本的な使い方をマスターしたら、さらに高度な活用方法に挑戦してみましょう。
4.1 Ollamaとの連携詳細
Open WebUIはOllamaのWebインターフェースとして非常に優れています。Ollamaを使いこなすことで、様々なローカルモデルの可能性を最大限に引き出せます。
- モデルのカスタマイズ(Modelfile): Ollamaでは、既存のモデルをベースに、独自のシステムプロンプト、パラメータ、あるいは軽量なFine-tuningを行った新しいモデル(Modelfile)を作成できます。Open WebUIのModels画面からは直接作成できませんが、Ollamaコマンドラインツールを使って作成したModelfileを
ollama create
コマンドでOllamaに追加すれば、Open WebUIからそのカスタムモデルが利用可能になります。- 例:
ollama create my-custom-model -f ./Modelfile
- Modelfileの書き方については、Ollamaの公式ドキュメントを参照してください。
- 例:
- GPUの活用:
docker-compose.yaml
でGPUを使用する設定(NVIDIAの場合はdeploy
セクションのコメントを外す)を正しく行うことで、OllamaがGPUを利用してモデル推論を高速化できます。これにより、より大規模なモデルもスムーズに動作させることが可能になります。GPUドライバーが正しくインストールされていること、DockerがGPUを認識できていることが前提となります。 - 複数のOllamaインスタンス:
docker-compose.yaml
を編集することで、複数のOllamaコンテナを起動し、それぞれ異なるモデルをロードしておくことも可能です。Open WebUIのConnections設定で、これらのOllamaインスタンスをそれぞれ追加し、Open WebUIからアクセスできるようになります。
4.2 APIキーの設定と外部モデルの利用
Open WebUIはOllamaだけでなく、様々な商用/非商用APIとも連携できます。
- 多様なモデルへのアクセス: OpenAI (GPT-4, GPT-3.5), Anthropic (Claude), Google (Gemini), Azure OpenAI Serviceなど、Open WebUIが対応している様々なサービスに接続することで、それぞれのサービスが提供する強力なモデルをOpen WebUIの使い慣れたUIから利用できます。
- コスト管理: API利用には通常費用が発生します。各サービスのAPI利用状況やコストを意識しながら利用する必要があります。Open WebUI自体にはコスト管理機能は限定的ですが、各サービスのダッシュボードで確認できます。
- プロキシ設定: 設定画面でプロキシを設定することで、ネットワーク環境によっては直接アクセスできないAPIに接続したり、通信を監視したりすることが可能です。
4.3 LangChain/LlamaIndexとの連携(内部的な仕組み)
Open WebUIのRAG機能やツール機能は、内部的にLangChainやLlamaIndexといったLLMアプリケーション開発フレームワークを利用して実装されています。
- RAGの仕組み: Open WebUIにファイルをアップロードすると、内部的にLlamaIndexなどを使ってドキュメントが読み込まれ、チャンクに分割され、ベクトルデータベースにインデックス化されます。ユーザーが質問をすると、その質問のベクトルと類似するドキュメントのチャンクがベクトルデータベースから検索され、プロンプトの一部としてLLMに渡されます。LLMはこの情報に基づいて回答を生成します。
- ツール利用の仕組み: LLMがプロンプトの内容を解析し、特定のツール(例: Web検索)が必要だと判断した場合、LangChainのエージェント機能などを使ってツールを呼び出し、その結果を取得します。取得した結果は再びプロンプトに組み込まれ、最終的な回答が生成されます。
- これらのフレームワークを意識することで、Open WebUIの機能がどのように実現されているかを理解し、さらにはこれらのフレームワークを使って独自のLLMアプリケーションを開発する際の参考にすることができます。Open WebUIのソースコードは公開されているため、興味があれば内部実装を学ぶことも可能です。
4.4 開発者向け情報
- API利用: Open WebUIは独自のAPIを提供しています。これにより、外部プログラムからOpen WebUIの機能(例: チャットメッセージの送信、履歴の取得)を利用することが可能です。APIドキュメントは公式リポジトリなどで確認できます。
- カスタマイズ: Open WebUIはオープンソースプロジェクトであり、自由にコードを修正・拡張できます。独自の機能を追加したり、UIを変更したりすることが可能です。Docker Composeで
build
を使用している場合は、Dockerfileやソースコードを編集して自分だけのOpen WebUIを構築できます。 - コントリビューション: プロジェクトに貢献したい場合は、GitHubリポジトリでIssue報告やPull Request送信が可能です。
5. トラブルシューティング
Open WebUIのインストールや使用中に発生しうる一般的な問題と、その解決策について説明します。
-
Open WebUIにアクセスできない(ブラウザで開かない):
- コンテナが起動しているか確認:
docker compose ps
またはdocker ps
コマンドでopen-webui
コンテナがUp
ステータスになっているか確認します。起動していない場合は、docker compose up -d
またはdocker start open-webui
で起動してみてください。 - ポートの競合: Open WebUIが使用する8080ポートが、他のアプリケーションによって既に使用されていないか確認します。他のアプリケーションが使用している場合は、
docker-compose.yaml
のports: - 8080:8080
の左側の8080を別の未使用ポート(例: 8081)に変更して再起動してください。 - ファイアウォール: システムのファイアウォールやネットワーク機器のファイアウォールが、8080ポートへのアクセスをブロックしていないか確認します。
- ログの確認:
docker logs open-webui
コマンドでOpen WebUIコンテナのログを確認し、起動時のエラーメッセージがないか調べます。
- コンテナが起動しているか確認:
-
Open WebUIは開くが、モデルが表示されない、またはチャットが応答しない:
- Ollamaコンテナが起動しているか:
docker compose ps
またはdocker ps
でollama
コンテナがUp
ステータスになっているか確認します。起動していない場合は起動してください。 - Ollamaコンテナのログ確認:
docker logs ollama
コマンドでOllamaコンテナのログを確認し、エラーがないか調べます。特に起動に失敗している場合や、モデルのロードに失敗している場合があります。 OLLAMA_BASE_URL
の設定ミス:docker-compose.yaml
(またはdocker run
コマンド) のOLLAMA_BASE_URL
環境変数が正しいOllama APIのURLを指しているか確認します。Docker Composeで同じネットワークを使用している場合は、http://ollama:11434/api
が正しいはずです。- ネットワークの問題: Open WebUIコンテナとOllamaコンテナが同じDockerネットワークに参加しているか確認します。
docker-compose.yaml
のnetworks
設定を確認してください。 - Ollamaにモデルがインストールされているか: Ollamaコンテナは起動しても、モデルがダウンロードされていないとチャットできません。Open WebUIのModels設定画面で、利用したいモデルがOllamaタブに表示されているか確認し、表示されていなければダウンロードしてください。
- モデルのロード失敗: 使用しようとしているモデルが、Ollamaが動作している環境のリソース(特にGPUメモリ、またはCPU/RAM)に対して大きすぎる可能性があります。Ollamaコンテナのログにメモリ不足などのエラーが出ていないか確認してください。より小さなモデルを試すか、環境のリソースを増強する必要があります。
- Ollamaコンテナが起動しているか:
-
ファイルアップロード(RAG)が機能しない:
- 対応ファイル形式か確認: アップロードしたファイル形式がOpen WebUIの対応形式(PDF, TXT, DOCX, MDなど)か確認します。
- モデルがRAGに対応しているか: 厳密にはモデル自体がRAGに対応しているわけではなく、Open WebUIがアップロードされたドキュメントをコンテキストとしてモデルに渡す仕組みですが、モデルによっては長いコンテキストウィンドウに対応していない場合があります。大規模で高性能なモデルほどRAGの効果が出やすい傾向があります。
- アップロードサイズ制限: ファイルサイズに制限がある場合があります。非常に大きなファイルは分割して試すか、Open WebUIの設定(環境変数など)で制限を確認してください。
- 内部エラー: RAG処理のバックエンドでエラーが発生している可能性があります。Open WebUIコンテナのログを確認し、ファイル処理に関するエラーメッセージがないか探します。
-
GPUが利用されない、またはエラーになる:
- NVIDIA Docker / CUDA Toolkit: NVIDIA GPUを使用する場合、NVIDIA Container Toolkit (旧nvidia-docker) が正しくインストールされている必要があります。また、システムのNVIDIAドライバーが最新で、Dockerコンテナ内でCUDAが利用できる状態になっているか確認します。
docker-compose.yaml
の設定:ollama
サービスのdeploy
セクションでGPUリソースが正しく指定されているか確認します。driver: nvidia
,count: all
,capabilities: [gpu]
などが正しく記述されている必要があります。- Ollamaイメージ: OllamaのDockerイメージがGPU対応バージョンであるか確認します。通常は
ollama/ollama:latest
で問題ありませんが、特定のバージョンやGPUによっては注意が必要です。 - Ollamaログ:
docker logs ollama
で、OllamaがGPUを認識しているか、またはGPU関連のエラーが出力されていないか確認します。
-
リソース不足(動作が遅い、不安定):
- メモリ: 特にローカルLLMを使用する場合、モデルのサイズによっては大量のRAMが必要です。システムのRAM使用状況を確認し、不足している場合は増設を検討します。Ollamaコンテナに割り当てるメモリ上限を設定することも可能ですが、モデルサイズによっては不足してロードできない場合があります。
- CPU: 推論速度はCPU性能にも依存します。特にGPUを使用しない場合、CPU負荷が高くなります。
- ストレージ容量: モデルファイルは非常に大きい場合があります。Ollamaのデータボリュームが配置されているストレージに十分な空き容量があるか確認します。
- GPUメモリ: GPUでモデルを実行する場合、モデルのサイズはGPUメモリ容量に大きく依存します。GPUメモリが不足すると、モデルのロードに失敗したり、動作が極端に遅くなったりします。より小さなモデルを使用するか、GPUメモリ容量の多いGPUを使用する必要があります。
これらのトラブルシューティング手順を試しても問題が解決しない場合は、Open WebUIやOllamaの公式GitHubリポジトリでIssueを探したり、コミュニティフォーラムやDiscordサーバーで質問したりすることをお勧めします。
6. まとめ
このガイドでは、Open WebUIのインストールから基本的な操作、そしてより高度な活用方法までを詳細に解説しました。Open WebUIは、特にOllamaと組み合わせることで、プライベートな環境で様々なオープンソースLLMを自由に、そして快適に利用するための非常に強力なツールです。
Docker Composeを使えば、Ollamaも含めた環境構築も比較的容易に行え、チャット、モデル管理、RAG、ツール利用といった主要機能を直感的なUIで操作できます。API連携機能を利用すれば、ローカルモデルとクラウドベースの高性能モデルを同じインターフェースで使い分けることも可能です。
LLMの技術は日々進化しており、Open WebUIも活発に開発が進められています。新しい機能の追加や改善が常に行われていますので、定期的にアップデートを確認し、最新の機能を利用することをお勧めします。Docker Composeを使用している場合は、docker compose pull
で最新イメージを取得し、docker compose up -d
でコンテナを再起動することでアップデートできます。
Open WebUIを活用することで、情報漏洩のリスクを抑えながら機密性の高いデータを扱ったり、高額なAPI利用料を気にせずに様々なモデルの性能を比較したり、あるいはローカル環境でLLMを使った新しいアプリケーションのアイデアを試したりと、LLM活用の幅が大きく広がります。
このガイドが、あなたがOpen WebUIを使って、LLMとの対話をさらに豊かに、そして自由に楽しむための一助となれば幸いです。ぜひOpen WebUIを使い倒して、その可能性を体験してください。