Open WebUI on Ubuntu 応用 — RAG・ツール・モデル管理の高度設定

Ollama




Open WebUI をインストールしてチャットできるようになった次のステップ、「RAG(ドキュメントをAIに読ませる機能)やカスタムツール、複数のモデル接続をどう設定するか」で詰まっていませんか。

本記事では、Ubuntu 24.04 LTS 上で Open WebUI v0.9.6(2026-06-01リリース)を実際に Docker で起動し、画面を一枚ずつ撮影しながら、ナレッジベース(RAG)の構築・ツールの追加・モデル管理・接続先設定を解説します。コマンドの出力やバージョン番号、画面に出る英語メッセージはすべて ghcr.io/open-webui/open-webui:main を起動して実際に確認したものです。

この記事のポイント

  • 応用機能はすべて左サイドバーの Workspace に集約され、タブは Models / Knowledge / Prompts / Skills / Tools の5つ
  • RAG(ナレッジ管理)は Workspace > Knowledge > + New Knowledge で作成し、チャット入力欄で # を打つとドキュメントを読み込める
  • 管理者設定 > Documents でチャンクサイズ・Hybrid Search・Top K を調整して回答精度を上げられる
  • カスタムモデル(Workspace > Models)はシステムプロンプト付きのモデルを保存して使い回す仕組み
  • ツール(Workspace > Tools)は class Tools: を含む Python コードとして登録し、AI が必要に応じて呼び出す
  • 接続先は Admin Panel > Settings > Connections で Ollama API・OpenAI API・独自エンドポイントを併用できる

目次

  1. 動作確認済み環境
  2. Docker で Open WebUI を起動する
  3. RAG(ナレッジ管理)を設定する
  4. 管理者設定で RAG を細かくチューニングする
  5. カスタムモデルを作成・管理する
  6. ツール(Tools)を追加する
  7. モデル接続先を設定する
  8. よくあるエラーと解決策
  9. まとめ

動作確認済み環境

本記事の数値・バージョンは、下記の環境で実際にコマンドを叩き、画面を撮影して確認したものです。OS情報とパッケージのバージョンは ubuntu:24.04 公式 Docker イメージ内で apt-cache policy を実行した結果です。

項目 バージョン・詳細
OS Ubuntu 24.04.4 LTS (Noble Numbat)
Open WebUI v0.9.6(2026-06-01リリース/イメージビルド 2026-06-02)
Docker イメージ ghcr.io/open-webui/open-webui:main
docker.io(aptパッケージ) 29.1.3-0ubuntu3~24.04.2(Ubuntu公式リポジトリ)
Python 3.12.3(Ubuntu 24.04 デフォルト)
curl 8.5.0
テスト実行日 2026-06-13

RAG やツールを動かすには、ホスト側に curl と Python が入っていると検証がはかどります。ubuntu:24.04 コンテナで前提パッケージを入れてバージョンを確認した実ログが次の図です。

Ubuntu 24.04 前提パッケージ確認(実測)
Ubuntu 24.04 前提パッケージ確認(実測)

実際の出力では curl 8.5.0Python 3.12.3pip 24.0 がインストールされました。docker.io も同じく apt のリポジトリに 29.1.3 が候補として並んでいます。

前提

本記事は Open WebUI の基本インストールが完了している前提で進めます。まだの方は先に「Ollamaの使い方完全ガイド」の Open WebUI セクションをご確認ください。

Docker で Open WebUI を起動する

Open WebUI は公式の Docker イメージ ghcr.io/open-webui/open-webui:main で動かすのが最も手軽です。Ubuntu 24.04 では以下のコマンドで起動できます。




ubuntu@linuxlab: ~
$ docker run -d \
–name open-webui \
-p 3000:8080 \
–add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
dc2f51ff840c… (コンテナIDが表示される)

起動後しばらくするとデータベースのマイグレーションが走ります。docker logs open-webui で進行を確認できます。




ubuntu@linuxlab: ~
$ docker logs open-webui 2>&1 | tail -5
INFO [alembic.runtime.migration] Running upgrade … add knowledge table
INFO [alembic.runtime.migration] Running upgrade … add missing primary keys
WARNI [open_webui.env] WARNING: CORS_ALLOW_ORIGIN IS SET TO ‘*’
v0.9.6 – building the best AI user interface.
Uvicorn running on http://0.0.0.0:8080

Uvicorn running on のメッセージが出たら準備完了です。ブラウザで http://localhost:3000 にアクセスしましょう。最初のユーザー登録を済ませると、次のメイン画面が表示されます。

Open WebUI v0.9.6 メインチャット画面(実測)
Open WebUI v0.9.6 メインチャット画面(実測)

中央に「Hello, User」「How can I help you today?」と表示され、その下に Tell me a fun fact などの Suggested(提案プロンプト)が並びます。左端の細いサイドバーには上から、新規チャット・検索・ノート・ワークスペースのアイコンが縦に並んでいます。応用機能はこの Workspace(ワークスペース)アイコンが入り口になります。

RAG(ナレッジ管理)を設定する

RAG(Retrieval-Augmented Generation)は、自分のドキュメントを AI に読み込ませ、その内容をもとに回答させる機能です。Open WebUI では「Knowledge(ナレッジ)」という単位で管理します。

Open WebUI RAG処理フロー(概念図)
Open WebUI RAG処理フロー(概念図)

大まかな流れは、ドキュメントを Knowledge に登録 → テキスト抽出とエンベディング(ベクトル化)→ 質問時に関連チャンクを検索 → そのチャンクをプロンプトに添えてモデルが回答、という順序です。

手順1:ナレッジベースを作成する

左サイドバーの Workspace を開くと、上部に Models / Knowledge / Prompts / Skills / Tools の5つのタブが並びます。Knowledge タブを選び、右上の + New Knowledge ボタンをクリックします。

Open WebUI ナレッジ管理画面(RAG)(実測)
Open WebUI ナレッジ管理画面(RAG)(実測)

まだ何も登録していない状態では、画面中央に No knowledge found と表示されます。画面下部には Use '#' in the prompt input to load and include your knowledge.(プロンプト入力欄で # を使うとナレッジを読み込んで参照できます)という案内が出ており、これが後述する参照方法のヒントになっています。

+ New Knowledge から名前と説明を入力してナレッジベースを作成したら、ドラッグ&ドロップでファイルをアップロードします。対応フォーマットは PDF・TXT・Markdown(.md)・DOCX など多岐にわたります。

手順2:ファイルをアップロードしてインデックスを作成する




ファイルのアップロード手順
1. Workspace > Knowledge > + New Knowledge をクリック
2. ナレッジ名(例: 社内マニュアル)を入力して作成
3. ファイル選択 または ドラッグ&ドロップでアップロード
4. 処理完了まで待機(テキスト抽出 → エンベディング生成)
✓ Indexed と表示されれば検索可能な状態

正直、ファイルが大きいと処理に数十秒かかります。完了するまでページを閉じないようにしましょう。

手順3:チャットでナレッジを参照する

ナレッジが準備できたら、チャット画面でドキュメントを参照させます。方法は2つあります。

方法A:# 記法でナレッジを指定する




チャット入力欄
# 社内マニュアル に書かれているバックアップ手順を教えてください
↑ # の直後にナレッジ名の一部を入力すると候補が表示される

Knowledge 画面に出ていた Use '#' in the prompt input ... はまさにこの操作のことです。# を押すと登録済みナレッジの一覧がポップアップし、選ぶとそのナレッジが文脈に読み込まれます。

方法B:入力欄の + アイコンから指定する

入力欄左下の + アイコンからナレッジやファイルを添付できます。一時的に1ファイルだけ読ませたいときはこちらが手軽です。

注意

Ollama で使用中のモデルに「コンテキスト長」の上限がある場合、大量のドキュメントを読み込もうとするとあふれてしまいます。チャンクサイズを小さくするか、参照するドキュメント数を絞ってください。

管理者設定で RAG を細かくチューニングする

RAG の動作は管理者設定から調整できます。右上のユーザーアイコン > Admin Panel > Settings > Documents を開きます。主な設定項目は次のとおりです(値は Open WebUI の標準設定。用途に合わせて変更します)。

設定項目 標準値 説明
Chunk Size 1,000 ドキュメントを分割する文字数。小さくすると精度UP・速度DOWN
Chunk Overlap 100 チャンク間の重複文字数。大きいと文脈が途切れにくい
Top K 5 検索時に取得する上位チャンク数
Hybrid Search OFF(要有効化) BM25(全文検索)+ベクトル検索の併用。固有名詞に強い
Relevance Threshold 0.0 類似度スコアの足切り値。0.5 程度に上げると無関係なチャンクを除外

特に Hybrid Search はキーワード検索とベクトル検索を組み合わせる方式で、専門用語や固有名詞を含む質問での回答精度が上がります。RAG の回答がどうも的外れだと感じたら、まずここを ON にしてみてください。

カスタムモデルを作成・管理する

Open WebUI の「モデル管理」では、Ollama のベースモデルにシステムプロンプトや温度設定を組み合わせた「カスタムモデル」を定義して保存できます。毎回プロンプトを入力する手間が省けます。

Open WebUI モデル管理画面(実測)
Open WebUI モデル管理画面(実測)

Workspace > Models を開いた直後は No models found と表示され、件数も Models 0 です。右上には Import+ New Model のボタン、画面下部には Made by Open WebUI Community の「Discover a model(モデルプリセットを探す)」セクションがあり、コミュニティが公開した設定済みモデルを取り込むこともできます。

手順1:カスタムモデルを作成する

+ New Model で作成画面を開きます。設定できる主な項目は以下です。




カスタムモデル設定項目
基本設定
Name : モデルの表示名(例: 日本語アシスタント)
Base Model : llama3.2:3b / qwen2.5:7b 等 Ollama のモデルを選択
プロンプト設定
System Prompt: あなたは日本語に特化したアシスタントです。…
パラメータ設定
Temperature : 0.7(創造性。0=決定論的、1=多様性重視)
Top P : 0.9
Context Length: 4096(モデルの最大コンテキスト長に合わせる)

手順2:モデルをチャットで使う

作成したカスタムモデルは、チャット画面上部の Select a model ドロップダウンに表示されます。選んで使うだけで、保存したシステムプロンプトとパラメータが毎回適用されます。

著者アイコン
著者アイコン

「日本語で答えてください」を毎回システムプロンプトに書くのは面倒でした。カスタムモデルに事前定義しておけば、チームで共有もできて便利です。

ツール(Tools)を追加する

Open WebUI の「ツール(Tools)」は、Python コードとして定義したカスタム処理を AI が必要に応じて呼び出せる機能です。日付の取得・外部APIの呼び出し・計算など、モデル単体ではできない処理を拡張できます。

Open WebUI ツール管理画面(実測)
Open WebUI ツール管理画面(実測)

Workspace > Tools も初期状態は No tools found(件数 Tools 0)です。右上に Import+ New Tool ボタン、下部に Made by Open WebUI Community の「Discover a tool」があり、公開済みのツールを取り込めます。

ツールの基本構造

+ New Tool でエディタが開きます。先頭にメタ情報、本体は class Tools: という固定クラス名で記述します。




Python ツール基本テンプレート
“””
title: 日付取得ツール
author: LinuxLab
version: 1.0
“””
from datetime import datetime

class Tools:
def get_current_date(self) -> str:
“””
現在の日付と時刻を返す。
:return: 現在の日時(YYYY-MM-DD HH:MM:SS形式)
“””
return datetime.now().strftime(“%Y-%m-%d %H:%M:%S”)

ここだけは順番を間違えると動きません。class Tools: のクラス名は固定で、メソッドの docstring に日本語で機能説明を書いておくと、AI が自分でツールを選ぶ際の判断材料になります。

コード実行機能(Code Execution)

v0.9.6 では Admin Panel > Settings の左メニューに Code Execution 専用の項目があり、サンドボックス内での Python/JavaScript コード実行を有効化できます。ユーザーがプロンプトで「このコードを実行して」と指示すると、AI が実際に実行して結果を返します。

注意

Code Execution はサンドボックス内で動きますが、本番サーバーで有効にする場合はセキュリティポリシーを必ず確認してください。なお、AI 自身に処理をさせる「Tools」と、UIの裏側で動く拡張「Functions」(Admin Panel 上部の Functions タブ)は別物です。本記事で扱うのは前者の Tools です。

モデル接続先を設定する

Open WebUI は Ollama だけでなく、OpenAI API 互換のエンドポイントであれば任意のサービスと接続できます。Groq・ローカルで動かした別の API サーバーなど幅広く対応しています。設定は Admin Panel > Settings > Connections です。

Open WebUI 接続設定画面(Ollama API + OpenAI API)(実測)
Open WebUI 接続設定画面(Ollama API + OpenAI API)(実測)

実際の Connections 画面には、以下の4ブロックが並んでいました。




Connections 設定画面の内容(実測確認)
OpenAI API(トグルON)
URL: https://api.openai.com/v1
(+ ボタンで接続を追加、歯車から個別設定)
Ollama API(トグルON)
URL: http://localhost:11434
Trouble accessing Ollama? Click here for help.
Direct Connections
OFF(ユーザーが自分のOpenAI互換エンドポイントを追加できる機能)
Cache Base Model List
OFF(起動時のみモデル一覧を取得して高速化する)

Ollama API の接続設定

初期値は http://localhost:11434 ですが、Open WebUI を Docker で動かしている場合はここが落とし穴です。コンテナ内の localhost はホストを指さないため、Ollama の接続先は http://host.docker.internal:11434 に書き換える必要があります(起動時に --add-host=host.docker.internal:host-gateway を付けておくこと)。画面に出ている Trouble accessing Ollama? Click here for help. のリンクも、この接続問題の案内です。

OpenAI API キーの設定手順




OpenAI API 設定手順
1. Admin Panel > Settings > Connections を開く
2. OpenAI API の右側トグルが ON になっているか確認
3. + ボタンで新しい接続を追加(または歯車で既存を編集)
URL: https://api.openai.com/v1
API Key: sk-xxxxxxxxxxxx(実際のキーを入力)
4. Save → モデルリストに gpt-4o 等が表示される
Open WebUI 管理者設定 General 画面(v0.9.6確認)(実測)
Open WebUI 管理者設定 General 画面(v0.9.6確認)(実測)

管理者設定の General 画面では、先頭に Version v0.9.6 (latest) と表示され、その横に Check for updates(更新確認)と See what's new(更新内容を見る)のリンクが並びます。GitHub のスター数は 141k と表示されており、活発に更新されているプロジェクトであることが分かります。Check for updates を押せば、最新版が出ていないかをその場で確認できます。

よくあるエラーと解決策

①「Could not connect to Ollama」エラー

Open WebUI が Ollama に接続できていない状態です。Connections 画面の Trouble accessing Ollama? のリンクが出るのもこのケースです。




ubuntu@linuxlab: ~
$ docker inspect open-webui | grep “OLLAMA”
“OLLAMA_BASE_URL=http://localhost:11434”,
# Docker コンテナ内の localhost は ホストを指さない!
$ docker rm -f open-webui
$ docker run -d –name open-webui -p 3000:8080 \
–add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
✓ host.docker.internal でホストの Ollama に接続できる

②「No knowledge found」と表示される

ナレッジ未作成、またはインデックス処理中/ファイル形式の問題です。アップロード後にステータスが Indexed になっているか確認してください。テキスト層のないスキャン画像だけの PDF は読み取れません。

③ RAG の回答が的外れ

管理者設定 > Documents で Hybrid Search を ON にし、Relevance Threshold0.40.6 に上げてみてください。関連性が低いチャンクを除外できます。

④ モデルがチャット画面に表示されない

ollama list でモデルがダウンロードされているか確認します。ダウンロード済みであれば Open WebUI を一度リスタートすると解決することが多いです。




ubuntu@linuxlab: ~
$ ollama list
NAME ID SIZE MODIFIED
llama3.2:3b … 2.0 GB 2 days ago
qwen2.5:7b … 4.7 GB 1 day ago
$ docker restart open-webui
✓ 再起動後にモデルが表示される

まとめ

Open WebUI v0.9.6 の応用機能を、Ubuntu 24.04 LTS + Docker の環境で実際に起動・撮影して確認しました。

  • 応用機能は Workspace の Models / Knowledge / Prompts / Skills / Tools タブに集約されている
  • RAG は Knowledge > + New Knowledge で作成し、チャットで # を使って参照する
  • 管理者設定 > Documents で Hybrid Search・チャンクサイズ・Top K を調整すると回答精度が上がる
  • カスタムモデル(Models)でシステムプロンプトを事前定義すれば毎回の設定が不要になる
  • ツール(Tools)は class Tools: を含む Python コードで実装し、AI が自律的に呼び出す
  • Ollama は host.docker.internal:11434、OpenAI API は Connections から複数登録できる

「自分のドキュメントを AI に読ませてチャットする」環境が Ubuntu 上に完全に構築できます。VPS で運用すればどこからでもアクセスでき、チームでの共有にも便利です。

コメント

タイトルとURLをコピーしました