Open Webuiとは
Open Webuiは、ローカル環境でも動かせるチャットボットのインターフェース。Dockerコンテナなので1コマンドでまるっと導入して即座に動かせる上、高機能だし安定して動くしでなんかもうすごい。
なんか凄すぎるので、Open Webuiの導入手順とともに、実際に使用して感じたすごいポイントを称える記事を書いておくことにする。
導入手順(Dockerコンテナ)
以下のコマンドを実行することで、コンテナがインストールされ、ポート3000でWeb UIが利用可能になる。
Github上の公式ガイドには何パターンかの導入コマンドが示されているが、今回はその中でも
・GPUの使用アリ
・インターフェースとしてのOpen Webuiに加えてLLMサーバのollamaも内蔵
というオールインワンタイプのコンテナを使うパターンを採用した。
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
あとはブラウザでhttp://localhost:3000
にアクセスすれば、Open Webuiのインターフェースが利用できる。
停止/起動は単純にdocker stop open-webui
なりdocker start open-webui
を実行するだけ。
初回ログイン時の設定
初回ログイン時には、(ローカルでしか使わないとしても)適当なユーザー名とパスワードを設定する必要がある。
LLMモデルの追加手順
Open WebUIでは、必要に応じてLLMモデルを追加できる。以下に手順を示す。
-
モデルの選択
- Ollamaのモデル一覧から、使用したいモデルを選択し、ダウンロード用のコマンドを入手する。
-
モデルのダウンロード
-
モデルの選択
- ダウンロードが完了したら、チャット画面で新しく追加したモデルを選択し、会話を開始できる
更新手順
公式ガイドに沿って以下のコマンドを実行するだけでよい。
(Open WebUIは起動したまま実行してしまってよい。勝手に再起動されるので)
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
実行時は以下のような感じになり、数分程度かかる。
$ docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
time="2024-11-23T14:51:04Z" level=info msg="Watchtower 1.7.1"
time="2024-11-23T14:51:04Z" level=info msg="Using no notifications"
time="2024-11-23T14:51:04Z" level=info msg="Only checking containers which name matches \"open-webui\""
time="2024-11-23T14:51:04Z" level=info msg="Running a one time update."
time="2024-11-23T14:52:43Z" level=info msg="Found new ghcr.io/open-webui/open-webui:ollama image (7728f4065cbb)"
time="2024-11-23T14:52:43Z" level=info msg="Stopping /open-webui (90dc6d698d7f) with SIGTERM"
time="2024-11-23T14:52:46Z" level=info msg="Creating /open-webui"
time="2024-11-23T14:52:47Z" level=info msg="Session done" Failed=0 Scanned=1 Updated=1 notify=no
time="2024-11-23T14:52:47Z" level=info msg="Waiting for the notification goroutine to finish" notify=no
このコマンドにより、コンテナ内のソフトウェアが最新バージョンにアップデートされる。
何も考えずに更新コマンドひとつ叩きさえすれば更新できる、というのは非常にありがたい。
Open Webuiの特にすごいところ
1. UIがほぼChatGPTそのもの
Open WebuiのUIデザインは、非常に直感的で使いやすい。
特にChatGPTを普段から利用しているユーザーであれば、ほぼ同じ感覚で操作が可能なので、余計な学習コストが要らない(適当に設定項目とか見てみればなんとなく使い方はわかる)ので非常にとっつきやすい。
2. 安定したモデル挙動
モデルの安定性が高いように思う。
かつてtext generate webuiの時代には、以下のようなトラブルが多発していた印象がある。
- 日本語での会話が非常に不安定。
- 会話が普通に進行することもあれば、同じ言葉をぐるぐると繰り返す場合もあった。
- 日本語対応モデルのはずなのに、日本語で応答しないことが頻発。
- プロンプトフォーマットの設定やプリセットの選択が手間。
これらの課題に比べ、Open Webuiは極めて安定しており、日本語の会話も違和感なく行える。また、特別な設定をしなくても、そのままスムーズに使える点が非常に素晴らしい。
3. しかもOPEN AI互換APIとしても動く
標準の機能としてOPEN AI互換APIさーとして利用することができる。ガイド
なおデフォルトではランダムなAPIキーが生成されているので、利用時はOllamaとは違ってAPIキーもきちんと入力した上で使う必要あり。