CLOVER🍀

That was when it all began.

Open WebUIを使って、OllamaをWeb UIから操作する

これは、なにをしたくて書いたもの?

OllamaをWeb UIで操作できないかなと探していたら、Open WebUIというものを見つけたので試してみることにしました。

Open WebUI

Open WebUIのオフィシャルサイトはこちら。

Open WebUI

GitHubリポジトリーはこちら。

GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

ドキュメントはこちら。

🏡 Home | Open WebUI

Open WebUIは、オフラインかつセルフホスティングできるAIプラットフォームだそうです。OllamaやOpenAI互換のAPI
LLMランナーとしてサポートし、RAG用のエンジンをビルトインしていたり強力なAIデプロイメントソリューションでも
あるとされています。

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with built-in inference engine for RAG, making it a powerful AI deployment solution.

主な機能はこちら。

  • 簡単なセットアップ
  • OpenAI APIとのインテグレーション
  • ユーザーおよび権限管理
  • レスポンシブデザイン
  • PWA
  • MarkdownおよびLaTeXのサポート
  • モデルビルダー(Ollamaのカスタムモデルの作成)
  • ローカルおよびリモートとのRAGインテグレーション
  • 画像生成とのインテグレーション
  • RBAC(ロールベースの権限制御)
  • 多言語サポート
  • 継続的なアップデート

⭐ Features | Open WebUI

その他にもたくさんの機能があるようで、一覧では書けないですね…。

Features / And many more remarkable features including...

インストール方法はDocker、Pythonパッケージなどがあります。

ひとまず使ってみましょうか。

環境

今回の環境はこちら。

$ bin/ollama --version
Warning: could not connect to a running Ollama instance
Warning: client version is 0.5.11


$ python3 --version
Python 3.12.3


$ uv --version
uv 0.6.2

Ollamaは起動しておきます。

$ bin/ollama serve

ローカルにモデルはこれだけあります。

$ bin/ollama list
NAME                                           ID              SIZE      MODIFIED
schroneko/gemma-2-2b-jpn-it:q8_0               fcfc848fe62a    2.8 GB    5 days ago
hf.co/elyza/Llama-3-ELYZA-JP-8B-GGUF:latest    12b66520839d    4.9 GB    5 days ago
gemma2:2b                                      8ccf136fdd52    1.6 GB    5 days ago
gemma2:9b                                      ff02c3702f32    5.4 GB    5 days ago
llama3.2:3b                                    a80c4f17acd5    2.0 GB    6 days ago

Open WebUIをインストールする

Open WebUIをインストールするにはDockerイメージという選択肢がありますが、今回はPythonパッケージとしてインストール
することにします。

Open WebUI / Manual Installation

uvを使ってインストールすることにしましょう。

プロジェクトの作成。

$ uv init --vcs none open-webui-server
$ cd open-webui-server
$ rm main.py

インストール。

$ uv add open-webui

まあまあの数のパッケージが入るようです…。

インストールされたパッケージの一覧。

$ uv pip list
Package                                Version
-------------------------------------- -----------
aiocache                               0.12.3
aiofiles                               24.1.0
aiohappyeyeballs                       2.4.6
aiohttp                                3.11.11
aiosignal                              1.3.2
alembic                                1.14.0
annotated-types                        0.7.0
anthropic                              0.46.0
anyio                                  4.8.0
appdirs                                1.4.4
apscheduler                            3.10.4
argon2-cffi                            23.1.0
argon2-cffi-bindings                   21.2.0
asgiref                                3.8.1
async-timeout                          5.0.1
attrs                                  25.1.0
authlib                                1.4.1
av                                     14.1.0
azure-core                             1.32.0
azure-identity                         1.20.0
azure-storage-blob                     12.24.1
backoff                                2.2.1
bcrypt                                 4.2.0
beautifulsoup4                         4.13.3
bidict                                 0.23.1
bitarray                               3.1.0
black                                  24.8.0
blinker                                1.9.0
boto3                                  1.35.53
botocore                               1.35.99
build                                  1.2.2.post1
cachetools                             5.5.2
certifi                                2025.1.31
cffi                                   1.17.1
chardet                                5.2.0
charset-normalizer                     3.4.1
chroma-hnswlib                         0.7.6
chromadb                               0.6.2
click                                  8.1.8
colbert-ai                             0.2.21
colorclass                             2.2.2
coloredlogs                            15.0.1
compressed-rtf                         1.0.6
cryptography                           44.0.1
ctranslate2                            4.5.0
dataclasses-json                       0.6.7
datasets                               3.3.2
defusedxml                             0.7.1
deprecated                             1.2.18
dill                                   0.3.8
distro                                 1.9.0
dnspython                              2.7.0
docker                                 7.1.0
docx2txt                               0.8
duckduckgo-search                      7.3.2
durationpy                             0.9
easygui                                0.98.3
ebcdic                                 1.1.1
ecdsa                                  0.19.0
einops                                 0.8.0
emoji                                  2.14.1
et-xmlfile                             2.0.0
eval-type-backport                     0.2.2
events                                 0.5
extract-msg                            0.53.1
fake-useragent                         1.5.1
fastapi                                0.115.7
faster-whisper                         1.1.1
filelock                               3.17.0
filetype                               1.2.0
firecrawl-py                           1.12.0
flask                                  3.1.0
flatbuffers                            25.2.10
fonttools                              4.56.0
fpdf2                                  2.8.2
frozenlist                             1.5.0
fs                                     2.4.16
fsspec                                 2024.12.0
ftfy                                   6.2.3
gcp-storage-emulator                   2024.8.3
git-python                             1.0.3
gitdb                                  4.0.12
gitpython                              3.1.44
google-ai-generativelanguage           0.6.6
google-api-core                        2.24.1
google-api-python-client               2.161.0
google-auth                            2.38.0
google-auth-httplib2                   0.2.0
google-auth-oauthlib                   1.2.1
google-cloud-core                      2.4.2
google-cloud-storage                   2.19.0
google-crc32c                          1.6.0
google-generativeai                    0.7.2
google-resumable-media                 2.7.2
googleapis-common-protos               1.63.2
greenlet                               3.1.1
grpcio                                 1.67.1
grpcio-status                          1.62.3
grpcio-tools                           1.62.3
h11                                    0.14.0
h2                                     4.2.0
hpack                                  4.1.0
html5lib                               1.1
httpcore                               1.0.7
httplib2                               0.22.0
httptools                              0.6.4
httpx                                  0.28.1
httpx-sse                              0.4.0
huggingface-hub                        0.29.1
humanfriendly                          10.0
hyperframe                             6.1.0
idna                                   3.10
importlib-metadata                     8.5.0
importlib-resources                    6.5.2
iniconfig                              2.0.0
isodate                                0.7.2
itsdangerous                           2.2.0
jinja2                                 3.1.5
jiter                                  0.8.2
jmespath                               1.0.1
joblib                                 1.4.2
jsonpatch                              1.33
jsonpointer                            3.0.0
kubernetes                             32.0.1
langchain                              0.3.7
langchain-community                    0.3.7
langchain-core                         0.3.37
langchain-text-splitters               0.3.6
langdetect                             1.0.9
langfuse                               2.44.0
langsmith                              0.1.147
lark                                   1.1.9
ldap3                                  2.9.1
lxml                                   5.3.1
mako                                   1.3.9
markdown                               3.7
markdown-it-py                         3.0.0
markupsafe                             3.0.2
marshmallow                            3.26.1
mdurl                                  0.1.2
milvus-lite                            2.4.11
mmh3                                   5.1.0
monotonic                              1.6
moto                                   5.0.28
mpmath                                 1.3.0
msal                                   1.31.1
msal-extensions                        1.2.0
msoffcrypto-tool                       5.4.2
multidict                              6.1.0
multiprocess                           0.70.16
mypy-extensions                        1.0.0
nest-asyncio                           1.6.0
networkx                               3.4.2
ninja                                  1.11.1.3
nltk                                   3.9.1
numpy                                  1.26.4
nvidia-cublas-cu12                     12.1.3.1
nvidia-cuda-cupti-cu12                 12.1.105
nvidia-cuda-nvrtc-cu12                 12.1.105
nvidia-cuda-runtime-cu12               12.1.105
nvidia-cudnn-cu12                      9.1.0.70
nvidia-cufft-cu12                      11.0.2.54
nvidia-curand-cu12                     10.3.2.106
nvidia-cusolver-cu12                   11.4.5.107
nvidia-cusparse-cu12                   12.1.0.106
nvidia-nccl-cu12                       2.20.5
nvidia-nvjitlink-cu12                  12.8.61
nvidia-nvtx-cu12                       12.1.105
oauthlib                               3.2.2
olefile                                0.47
oletools                               0.60.2
onnxruntime                            1.20.1
open-webui                             0.5.16
openai                                 1.63.2
opencv-python                          4.11.0.86
opencv-python-headless                 4.11.0.86
openpyxl                               3.1.5
opensearch-py                          2.8.0
opentelemetry-api                      1.30.0
opentelemetry-exporter-otlp-proto-grpc 1.15.0
opentelemetry-instrumentation          0.51b0
opentelemetry-instrumentation-asgi     0.51b0
opentelemetry-instrumentation-fastapi  0.51b0
opentelemetry-proto                    1.15.0
opentelemetry-sdk                      1.30.0
opentelemetry-semantic-conventions     0.51b0
opentelemetry-util-http                0.51b0
orjson                                 3.10.15
overrides                              7.7.0
packaging                              23.2
pandas                                 2.2.3
passlib                                1.7.4
pathspec                               0.12.1
pcodedmp                               1.2.6
peewee                                 3.17.8
peewee-migrate                         1.12.2
pgvector                               0.3.5
pillow                                 11.1.0
platformdirs                           4.3.6
playwright                             1.49.1
pluggy                                 1.5.0
portalocker                            2.10.1
posthog                                3.15.0
primp                                  0.13.0
propcache                              0.3.0
proto-plus                             1.26.0
protobuf                               4.25.6
psutil                                 7.0.0
psycopg2-binary                        2.9.9
py-partiql-parser                      0.6.1
pyarrow                                19.0.1
pyasn1                                 0.4.8
pyasn1-modules                         0.4.1
pyclipper                              1.3.0.post6
pycparser                              2.22
pydantic                               2.10.6
pydantic-core                          2.27.2
pydantic-settings                      2.8.0
pydub                                  0.25.1
pyee                                   12.0.0
pygments                               2.19.1
pyjwt                                  2.10.1
pymdown-extensions                     10.14.2
pymilvus                               2.5.0
pymongo                                4.11.1
pymysql                                1.1.1
pypandoc                               1.13
pyparsing                              3.2.1
pypdf                                  4.3.1
pypika                                 0.48.9
pyproject-hooks                        1.2.0
pytest                                 8.3.4
pytest-docker                          3.1.2
python-dateutil                        2.9.0.post0
python-dotenv                          1.0.1
python-engineio                        4.11.2
python-iso639                          2025.2.18
python-jose                            3.4.0
python-magic                           0.4.27
python-multipart                       0.0.18
python-oxmsg                           0.0.2
python-pptx                            1.0.0
python-socketio                        5.11.3
pytube                                 15.0.0
pytz                                   2025.1
pyxlsb                                 1.0.10
pyyaml                                 6.0.2
qdrant-client                          1.12.2
rank-bm25                              0.2.2
rapidfuzz                              3.12.1
rapidocr-onnxruntime                   1.3.24
red-black-tree-mod                     1.22
redis                                  5.2.1
regex                                  2024.11.6
requests                               2.32.3
requests-oauthlib                      2.0.0
requests-toolbelt                      1.0.0
responses                              0.25.6
restrictedpython                       8.0
rich                                   13.9.4
rsa                                    4.9
rtfde                                  0.1.2
s3transfer                             0.10.4
safetensors                            0.5.2
scikit-learn                           1.6.1
scipy                                  1.15.2
sentence-transformers                  3.3.1
sentencepiece                          0.2.0
setuptools                             75.8.0
shapely                                2.0.7
shellingham                            1.5.4
simple-websocket                       1.1.0
six                                    1.17.0
smmap                                  5.0.2
sniffio                                1.3.1
soundfile                              0.13.1
soupsieve                              2.6
sqlalchemy                             2.0.32
starlette                              0.45.3
sympy                                  1.13.3
tenacity                               9.0.0
threadpoolctl                          3.5.0
tiktoken                               0.9.0
tokenizers                             0.21.0
torch                                  2.4.1
tqdm                                   4.67.1
transformers                           4.49.0
triton                                 3.0.0
typer                                  0.15.1
typing-extensions                      4.12.2
typing-inspect                         0.9.0
tzdata                                 2025.1
tzlocal                                5.3
ujson                                  5.10.0
unstructured                           0.16.17
unstructured-client                    0.30.3
uritemplate                            4.1.1
urllib3                                2.3.0
uvicorn                                0.30.6
uvloop                                 0.21.0
validators                             0.34.0
watchfiles                             1.0.4
wcwidth                                0.2.13
webencodings                           0.5.1
websocket-client                       1.8.0
websockets                             15.0
werkzeug                               3.1.3
wrapt                                  1.17.2
wsproto                                1.2.0
xlrd                                   2.0.1
xlsxwriter                             3.2.2
xmltodict                              0.14.2
xxhash                                 3.5.0
yarl                                   1.18.3
youtube-transcript-api                 0.6.3
zipp                                   3.21.0

起動。

$ uv run open-webui serve

初回はそこそこ時間がかかります。どうもHugging Faceからモデルをダウンロードしてくるようです。

2回目以降は速くなりますが。

INFO  [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.

 ██████╗ ██████╗ ███████╗███╗   ██╗    ██╗    ██╗███████╗██████╗ ██╗   ██╗██╗
██╔═══██╗██╔══██╗██╔════╝████╗  ██║    ██║    ██║██╔════╝██╔══██╗██║   ██║██║
██║   ██║██████╔╝█████╗  ██╔██╗ ██║    ██║ █╗ ██║█████╗  ██████╔╝██║   ██║██║
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║    ██║███╗██║██╔══╝  ██╔══██╗██║   ██║██║
╚██████╔╝██║     ███████╗██║ ╚████║    ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝     ╚══╝╚══╝ ╚══════╝╚═════╝  ╚═════╝ ╚═╝


v0.5.16 - building the best open-source AI user interface.

https://github.com/open-webui/open-webui

Fetching 30 files: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 30/30 [00:00<00:00, 11999.73it/s]
INFO:     Started server process [42561]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO:     ('127.0.0.1', 52232) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted]
INFO:     connection open

8080ポートでリッスンしているようなので、http://localhost:8080にアクセスして見てみましょう。

こんなページが表示されました。

「Get started」というリンクを押すとアカウントを作成することを求められるので、作ってみます。

ログインすると、すでにモデル名が表示されています。

どうやら、ローカルのOllamaにすでに接続しているようです。モデルの一覧も見れますしね。

Gemma2を使って、会話してみます。

するとチャット用のページに切り替わり、会話ができます。

チャットの履歴も扱えるようです。

いいですね。

このデータはデフォルトで./dataディレクトリーに保存されるようなのですが…。

Environment Variable Configuration / App/Backend / Directories

実際に見てみると、けっこうすごいところにありました…。

$ tree .venv/lib/python3.12/site-packages/open_webui/data
.venv/lib/python3.12/site-packages/open_webui/data
├── cache
│   ├── audio
│   │   └── speech
│   └── image
│       └── generations
├── readme.txt
├── uploads
├── vector_db
│   └── chroma.sqlite3
└── webui.db

8 directories, 3 files

最初の案内に習って、DATA_DIR環境変数を使って明示的に指定した方が良さそうです。

$ DATA_DIR=data uv run open-webui serve

🏡 Home | Open WebUI

あとはQuick Startを見たり、機能ごとのドキュメントを見て慣れていく感じでしょうか。

⏱️ Quick Start | Open WebUI

Ollamaへの接続設定は、ユーザーの「管理者パネル」 → 「設定」 → 「接続」で確認できるようです。

🦙 Starting With Ollama | Open WebUI

Ollamaのモデルのダウンロードもできるようなので便利ですね。

おわりに

Open WebUIを使って、OllamaをWeb UIから操作してみました。

かなり良い感じにできあがっていてビックリしました。機能もいろいろあるようなので、ちょっと試したい時などに
使ってみようかなと思います。