0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Open WebUIで社内文書RAGを構築する:Docker導入からKnowledge・引用確認まで

0
Last updated at Posted at 2026-08-17

Open WebUIで社内文書RAGを構築する

Open WebUIは、セルフホストできるAIチャットUIです。チャット画面だけでなく、モデル接続、Knowledge、ユーザー管理などを一つの画面で扱えます。

この記事ではDockerでOpen WebUIを起動し、架空の社内規程をKnowledgeへ登録して、引用付きで回答できるところまでを構築します。

「セルフホスト=文書が一切外部へ出ない」とは限りません。外部LLMや外部Embedding APIを選べば、プロンプトや抽出テキストはその接続先へ送信されます。データフローを必ず確認してください。

今回、実際に確認した環境

2026年8月18日にOpen WebUI 0.11.0をローカル起動し、Knowledgeの作成、Markdown文書3件の登録、チャットへのKnowledge添付、検索、引用表示まで操作しました。

項目 検証内容
Knowledge 社内規程(検証用)
文書 出張旅費規程、情報セキュリティ規程、入社初日ガイド
データ すべて架空の「サンプル株式会社」
モデル接続 ローカルのOpenAI互換テストAPI
確認結果 1泊12,000円、5営業日以内、出典ファイルを表示

回答生成側は外部サービスへデータを送らず再現性を保つため、固定応答を返すローカルのテストAPIを使用しました。Knowledgeの取り込み・検索・チャットへのコンテキスト注入・引用表示はOpen WebUIの実機能です。本番評価では実際に採用するLLMへ差し替えて、回答品質とデータ送信先を再確認します。

完成構成

Open WebUI社内文書RAGの構成

Open WebUIはUIとKnowledge管理を担当します。回答生成はOllamaなどのローカルモデル、またはOpenAI互換APIへ接続します。Knowledgeへ登録した文書は抽出・分割・埋め込みされ、検索時に関連チャンクがモデルへ渡されます。

1. Dockerで起動する

公式のQuick StartではDockerが推奨されています。まず検証用に1コンテナで起動します。

docker pull ghcr.io/open-webui/open-webui:main

docker run -d \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

ブラウザでhttp://localhost:3000を開きます。最初に登録したユーザーが管理者になります。

Composeで管理する場合の最小例です。

services:
  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    restart: unless-stopped

volumes:
  open-webui:

検証後に本番運用へ進む場合は、:mainではなくリリースバージョンへ固定し、更新前にバックアップと検証を行います。

2. モデルプロバイダーを接続する

管理画面のAdmin Settings → Connectionsから接続を追加します。

OpenAI互換APIの場合

  1. Connections → OpenAIを開く
  2. Add Connectionを選ぶ
  3. API URLとAPI Keyを入力する
  4. 必要なら表示するModel IDをallowlistに追加する
  5. 保存してモデル選択画面からテストする

DockerコンテナからホストPC上のモデルサーバーへ接続する場合、URLのlocalhostは通常host.docker.internalへ置き換えます。

ローカル運用を優先するならOllama、既存のクラウド基盤を使うならOpenAI互換ゲートウェイやLiteLLMなどを接続できます。どれを選ぶ場合も、入力データの保存、学習利用、ログ保持、リージョンを確認します。

3. Knowledge Baseを作る

  1. サイドバーからWorkspaceを開く
  2. Knowledgeを選ぶ
  3. Create社内規程(検証用)を作る
  4. 架空のPDF、Markdown、Wordファイルをアップロードする
  5. 処理が完了したことを確認する

今回のKnowledgeには、架空のMarkdown文書3件が登録されていることを画面で確認しました。

Open WebUIのKnowledgeへ検証文書を登録した画面

Open WebUIには主に2つの取得モードがあります。

モード 向く文書
Focused Retrieval(RAG) 規程集、マニュアルなど大きい文書群
Full Context 短い用語集、回答ルールなど常に全文を渡したい文書

最初はFocused Retrievalを使います。Knowledgeはチャットで#から参照するか、Workspace → Modelsでカスタムモデルへ紐付けます。部署ごとのモデルを作ると、参照するKnowledgeを限定しやすくなります。

4. 回答ルールを設定する

カスタムモデルのSystem Promptへ、次のようなルールを入れます。

あなたは社内文書検索アシスタントです。
回答は添付されたKnowledgeの内容を優先してください。
根拠が見つからない場合は推測せず、「登録文書から確認できません」と答えてください。
回答には文書名または表示された引用を残してください。
複数文書で内容が矛盾する場合は、改定日を示して管理者への確認を促してください。

プロンプトだけで機密制御はできません。Knowledgeやモデルの権限、ネットワーク、ユーザー管理を併用します。

5. 引用を含めてテストする

次の3種類を混ぜて評価します。

正答あり: 国内出張の宿泊費上限はいくらですか?
複数文書: 出張申請から精算までの手順を順番に説明してください。
正答なし: 海外拠点への赴任手当はいくらですか?

確認するポイントは次の通りです。

  • 正しい文書が引用されているか
  • 引用部分と回答が一致しているか
  • 数値、期限、例外条件を落としていないか
  • 答えがない質問で推測していないか
  • 質問の言い換えでも同じ根拠を取得できるか

実際にKnowledgeをチャットへ添付し、次の質問を送信しました。

国内出張の宿泊費上限と精算期限を、根拠文書とともに教えてください。

回答には「1泊12,000円(税込)」「帰着日の翌日から5営業日以内」が表示され、1 Sourceから01_出張旅費規程.mdを確認できました。

Open WebUIがKnowledgeを1件取得して回答した画面

回答元として出張旅費規程が表示された画面

6. 検索精度を調整する

文書を増やす前に、失敗原因を分類します。

症状 見直す場所
正しい文書が検索されない 見出し、OCR、チャンクサイズ、Embedding
似た文書が混ざる メタデータ、Knowledge分割、ハイブリッド検索
検索は正しいが回答が違う System Prompt、モデル、渡すチャンク数
引用が粗い 抽出エンジン、表の読み取り、元ファイル形式

Open WebUIはベクトル検索に加え、設定によりBM25とのハイブリッド検索や再ランキングを利用できます。製品コードや規程番号のような完全一致が重要な文書では、キーワード検索を組み合わせる効果があります。

7. 本番運用の最低ライン

ローカルで動いた状態はPoCの入口です。社内公開前に次を整えます。

  • HTTPS対応のリバースプロキシまたはZero Trust経由にする
  • 公開ポートを社内ネットワークへ限定する
  • WEBUI_SECRET_KEYを安全に固定・保管する
  • ユーザー登録を管理し、必要ならOIDC/SSOを使う
  • 永続ボリュームとデータベースをバックアップする
  • コンテナイメージをバージョン固定する
  • チャット履歴、文書、API Keyの保持場所を確認する
  • モデル別・部署別の利用制限とコスト上限を設ける

Open WebUIは単一テナント前提のため、複数社や強いテナント分離が必要なSaaS用途では、アプリケーション分離や別構成を検討します。

まとめ

Open WebUIは、社内向けAIチャットのUIとKnowledgeを短期間で試すのに向いています。特に、モデルを差し替えて比較したい、画面を一から開発したくない、社内ネットワーク内で運用したい場合に有力です。

一方で、本番の難所はインストールではなく、認証、バックアップ、アップデート、文書権限、外部モデルへのデータ送信方針です。PoCの時点からデータフロー図と運用責任者を決めておくと、本番移行が止まりにくくなります。

導入判断・費用・運用体制を比較したい方へ

セルフホストが向く条件、モデル接続先、認証、文書権限、運用コストはRoot on公式ブログの「Open WebUIで社内AIチャットを構築する前に決める7項目」 に整理しています。

公式資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?