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をオフライン環境のwindowsで利用するため、uvと合わせて設定する

0
Posted at

python, uvをインストールされていないオフライン環境のPC上で、Open WebUIをuv上で利用したい人に向けた記事です。英語では、Open WebUI on uv with ollama in offline PC です。なお、Ollamaは既に稼働済みとします。

基本は「オンラインPC上でuv, python, Open WebUI関連パッケージ を集めて、オフラインPCへ持ち込んで設定する」という運用になります。

この方法では、プロジェクトフォルダのPATHが変わると動作しませんので、 オンラインPCとオフラインPCとで同じPATHにプロジェクトフォルダを置く 必要があります。

基本方針

色々な方法があると思いますが、この記事では、次のようにしました。

  • プロジェクトフォルダはオンラインPCとオフラインPCで同じPATHにする必要があります。
  • Open WebUIのためのフォルダを C:\open-webui に作成します。
  • プロジェクトフォルダを C:\open-webui\proj-owu とします。
  • uv.exe はプロジェクト外(ここでは C:\bin )に置く。
  • Pythonはプロジェクト内(ここでは、C:\open-webui\proj-owu)に置く。
  • 実行は uv run open-webui とする。
  • Open WebUIのデータは、プロジェクト外( C:\open-webui\data )に置く。
  • embedding engine は、プロジェクト外 (C:\open-webui\huggingface )に置く。
  • ffmpeg.exe はプロジェクト外(ここでは C:\bin )に置く。
  • ユーザー環境変数の設定をする。UNIX風だが不適切な書き方をすると、
    • PATH=$PATH:'C:\bin'
    • DATA_DIR=C:\open-webui\data
    • HF_HOME=C:\open-webui\huggingface

環境について

ソフトのバージョン

  • Windows 11 Pro 25H2
  • Open WebUI: v0.9.5
  • uv: v0.11.13
  • Python: v3.11.9

オンラインPC上の作業

まずはオンラインPC上の作業です。

フォルダ作成と環境変数設定 on オンラインPC

下記のフォルダを作成します。
バージョンアップ時の管理しやすさを考慮し、データフォルダ等を設定しました。
環境変数は、WindowsOSの設定ウィザードから設定できます。

フォルダパス 変数 説明
C:\bin PATH uvやffmpegのbinaryを置きます
C:\open-webui\data DATA_DIR Open WebUIのデータを置きます
C:\open-webui\huggingface HF_HOME embedding engine (all-MiniLM-L6-v2)を置きます。
C:\open-webui\proj-owu プロジェクトファイルです。名前は proj-owu にしましたが、任意の名前でOKです。
  • オンラインPCでは、初回起動時にembedding engineが Hugging Face のサイトからダウンロードされ、HF_HOME で定義されたフォルダに保存されます。
  • オフラインPCでは、初回起動前からembedding engineを準備しておきます。
  • プロンプトで変数を確認するコマンドは次の通り。$env:DATA_DIR

uvをインストールする on オンラインPC

  1. ネット接続できる端末で、対象アーキテクチャの uv を取得する。
    uv の公式リポジトリのリリースページへ https://github.com/astral-sh/uv/releases
    x64 Windows なら uv-x86_64-pc-windows-msvc.zip をダウンロードする。
  2. Hash値の確認
    Get-FileHash C:\path\to\file でチェックサムを表示させ、問題ないかをチェックする。
  3. 解凍する。
  4. C:\binuv.exe などの実行ファイルを置く。
  5. 環境変数ウィザードからユーザー環境変数の PATHC:\binを追加する。(既にしていればここでは不要)
  6. PowerShellで uv --version とし、バージョン情報が表示されれば完了です。

ffmpegのインストール on オンラインPC

ffmpeg は、主に音声ファイルの処理と動画の扱いのために使用されます。
ffmpeg からダウンロードし、解凍して C:¥binffmpeg.exe を置きます。
パッケージはessential と full がありますが、essential の方で十分です。
PowerShellで、ffmpeg -version でバージョン情報が表示されれば、OKです。
なお、テキストのみの利用でしたら、起動時に毎回メッセージは出ますが、ffmpegはなくても利用可能です。

Pythonの取得 on オンラインPC

  1. pythonのダウンロードサイト https://www.python.org/downloads/ にアクセスする。
  2. Windows embeddable package のzipをダウンロードする。
  3. open-webuiで利用するおすすめは、Python 3.11.9です。この場合のファイルは、python-3.11.9-embed-amd64.zipです。
  4. 解凍してプロジェクトフォルダ(ここでは、proj-owu)に入れる。

プロジェクトフォルダ内でのコマンド操作 on オンラインPC

PowerShellなどで、次の操作を行う。

# uvの初期化
uv init --bare --python python-3.11.9-embed-amd64

# uvの仮想環境作成
uv venv --python python-3.11.9-embed-amd64

.venv/pyenv.cfg の home を相対パスに書き換える

適当なエディタで、該当部分を
home = python-3.11.9-embed-amd64
と書き換える。

続けて、PowerShellなどで、次の操作を行う。

# パッケージの追加
uv add --link-mode=copy open-webui

ここで好きなパッケージを追加しても構いません。

huggingface フォルダの調整 on オンラインPC

デフォルトの embedding engine(all-MiniLM-L6-v2) を HF_HOME で指定されたフォルダに置きます。

実際には、オンラインPC上で open webuiを初回起動させた時に embedding engine が自動ダウンロードされます。
初回起動後、 embedding engine がおさめられている、HF_HOME で指定したフォルダ(ここでは、 C:\open-webui\huggingface フォルダ)をまるごと圧縮して、オフラインPCに持ち込みます。
(もしも、HF_HOME を設定していない場合は、~/.cache/huggingface にあります。)

後ほど、オフラインPC上で解凍し、オフラインPC上のhuggingfaceフォルダ(HF_HOMEで指定したフォルダ、ここでは、オンラインPC上のC:\open-webui\huggingface )と置き換えます。

オフラインPCに持ち込むもののまとめ

  • uv: uv-x86_64-pc-windows-msvc.zip
  • ffmpeg:ffmpeg-git-essentials.7z (別名の場合あり)
  • embedding engine: huggingface.zip
  • プロジェクトフォルダ: open-webui\proj-owu (ファイル数が多いので、圧縮した方がよい)

オフラインPC上の作業

ここからはオフラインPC上の作業です。

フォルダ作成と環境変数設定 on オフラインPC

オンラインPCと同様に、下記のフォルダを作成します。
環境変数は、WindowsOSの設定ウィザードから設定できます。

フォルダパス 変数 説明
C:\bin PATH uvやffmpegのbinaryを置きます
C:\open-webui\data DATA_DIR Open WebUIのデータを置きます
C:\open-webui\huggingface HF_HOME embedding engine (all-MiniLM-L6-v2)を置きます。
C:\open-webui\proj-owu プロジェクトファイルです。

uvをインストールする on オフラインPC

  1. オンラインPCでダウンロードしたuv (ここでは、uv-x86_64-pc-windows-msvc.zip)を持ち込み、解凍します。
  2. C:\binuv.exe などの実行ファイルを置く。
  3. 環境変数ウィザードからユーザー環境変数の PATHC:\binを追加します。(既にしていればここでは不要)
  4. PowerShellで uv --version とし、バージョン情報が表示されれば完了です。

ffmpegのインストール on オフラインPC

ffmpeg は、主に音声ファイルの処理と動画の扱いのために使用されます。
ffmpeg からダウンロードし、解凍してC:¥binffmpeg.exe を置きます。
パッケージはessential と full がありますが、essential の方で十分です。
PowerShellで、ffmpeg -version でバージョン情報が表示されれば、OKです。
なお、テキストのみの利用でしたら、起動時に毎回メッセージは出ますが、ffmpegはなくても利用可能です。

バッチファイルの作成

start_openwebui.bat のような名前を付けて、プロジェクトフォルダ内にバッチファイルを作成する。

  • 最小限のバッチ
uv run open-webui serve
  • ログオン時に設定用のバッチ
@echo off
uv run open-webui serve
  • 環境変数設定付きバッチ
set DATA_DIR=C:\open-webui\data
set HF_HOME=C:\open-webui\huggingface
uv run open-webui serve
  • プロンプト画面を出さないバッチ
Start-Process "uv run open-webui serve" -WindowStyle Hidden

タスクスケジューラ設定

  • 「タスクスケジューラ」を検索して開く。
  • 「基本タスクの作成」→名前「Open WebUI Startup」。
  • トリガー「ログオン時」。
  • アクション「プログラムの開始」→
    • Program/script: cmd.exe
    • Arguments: /c "C:\open-webui\proj-owu\start_openwebui.bat"
    • Start in: C:\open-webui\proj-owu
  • 「最高の特権で実行」「ユーザーがログオンしていなくても実行」をチェック。

とりあえず、私の場合、これで利用できるようになりました。お疲れ様でした。

参考

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?