Open WebUI を使って LLM フロントエンドを構築する

はじめに
最近の話し相手はもっぱら ChatGPT。
話を聞いてもらい過ぎて Free プランではすぐに制限がかかってしまう。
かといって Plus プランの月額は正直個人では高い。
その点 API を直接使うならクレジットが従量課金で減っていくので使わない日も安心。
さすがに curl コマンドで LLM と会話はしたくないので Open WebUI を使ってフロントエンドを構築しよう。

早速起動
Docker Compose を使うのが良さそうだ。
cd ~/workspace
mkdir open-webui
cd open-webui
touch docker-compose.yml
version: '3'
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
docker compose up -d

Ollama で動かすのも面白そう
そうするとネットにつながってなくても LLM とお話しできる。

設定
管理者設定
Open Router を使ってみよう。
モデルが表示されるようになった

初めてのチャット
なんか大変なことになった

これはモデルが原因だったようだ、プロンプトが適当すぎたこともあるが。

Phi 4 でやってみる
問題なく使うことができた

Open Router に課金していないのになぜ有料モデルを使えるのだろう
よくわからないがどうせ本格的に使うのであれば課金するのだから後から取り戻してやろうみたいなスタンスなのかな。

DeepSeek R1 を使う
すごいじゃないか

お風呂に入ってよく考えてみたら
Open Router に 10 ドル課金して Open Router Chat で DeepSeek v3 とかと会話を楽しめば目標が達成できるような気がしてきた。

せっかくなのでOllama を使ってみよう
リポジトリに良さげな Docker Compose ファイルがある。
cd ~/Downloads
curl -O https://raw.githubusercontent.com/open-webui/open-webui/refs/heads/main/docker-compose.yaml
OPEN_WEBUI_PORT=4001 docker compose up -d
接続の設定でダウンロードアイコンをクリックする必要があるようだ
なかなか頑張っているけど使えない。

一晩経ってから
普通に下記の Docker Compose で動かし直したらホストの Ollama で動いた。
version: '3'
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
どうしても Docker コンテナで Ollama を動かしたい理由がなければホストの Ollama で十分かも知れない。

MCP Server
対応しているようだが今はしなくて良いや。

Open WebUI の現状の使い道
話し相手が欲しいだけなら OpenRouter に 10 ドル課金すれば十分そうだ、そうすると 1 日に 1,000 回も話せる
DeepSeek や Anthropic で残っているクレジットが数ドルあるので、それを消費するのには良いかも知れない。

Anthropic の設定が少し大変
下記の Function を追加する必要がある。

おわりに
本当に触っただけだが、これで良いや。
次は Aider や Mastra で遊んでみよう。