2
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?

【Python】日本語LLMをChatGPTライクなGUIで表示する

Last updated at Posted at 2025-08-13

1. はじめに

本記事では、日本語対応のローカルLLMの環境構築、更にGUIで表示する方法を解説します。

LLMの構築は、OpenAI等のWebAPIを用いて実装する方法と、自分のPCにモデルをダウンロードして実装する方法があります。今回は後者の方法(ローカルLLMの構築)を解説しつつ、ChatGPTライクなGUIで表示してみます。

ローカルLLMを構築すると、CUIで実行できますが、一般利用には向かないです。そのため、ChatGPTのようなGUIに表示して利用してみます。GUIで表示する方法は少し設定が難しいので、それも含めて記事にしてみました。

2. 動作環境

  • Ubuntu 22.04
  • メモリ32GB
  • NVIDIA GeForce RTX 4090

3. 構成

  • ローカルLLMの構築
    • Ollamaを利用
    • Ollamaのデフォルトポート:11434
    • ホストマシン上に構築
    • ホストマシンのIPアドレス:192.168.0.114
    • huggingfaceのモデルを利用(日本語対応LLM)
  • GUIの構築
    • OpenWebUIを利用
    • OpenWebUIのデフォルトポート:8080
    • docker上に構築
    • docker NW:172.16.0.0/16
    • dockerポート:3000にアクセスするとポート:8080にマッピング

image.png

4. 環境構築

dockerのインストール

公式サイトの通りにインストールすれば大丈夫です。

Ubuntuだと、下記の通りコマンドを実行するとDockerをインストールできます。

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
sudo apt install docker-compose

ollamaのインストール

次に、ollamaをインストールします。公式サイトの通りにインストールすれば大丈夫です。

ubuntuでは、下記の通りインストールします。

curl -fsSL https://ollama.com/install.sh | sh

試しに、qwen3:1.7bのモデルをダウンロード・実行してみます。下記のコマンドでモデルのダウンロード、実行ができます。

ollama run qwen3:1.7b

Pythonライブラリのインストール

Pythonからollama, huggingfaceを利用するために、下記のコマンドでライブラリをインストールします。

pip3 install ollama huggingface-hub

huggingfaceの設定

公式サイトの通りに設定すれば大丈夫です。huggingfaceのアカウント作成・アクセストークンを発行しておく必要があります。

ollamaでhuggingfaceのモデルをダウンロードするには、下記のコマンドでhuggingfaceにログインする必要があります。その際に、発行したアクセストークンを入力します。

huggingface-cli login

日本語対応のLLMをダウンロードしておきます。

ollama run hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-32B-Japanese-gguf:Q4_K_M

5. OpenWebUIの設定

OpenWebUI用のDockerコンテナ作成

docker-compose.ymlを作成します。

services:
  openwebui:
    container_name: openwebui_host
    image: ghcr.io/open-webui/open-webui:main
    environment:
      GLOBAL_LOG_LEVEL: "debug"
      RAG_EMBEDDING_ENGINE: "ollama"
      RAG_EMBEDDING_MODEL: "hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-32B-Japanese-gguf:Q4_K_M"
      RAG_OLLAMA_BASE_URL: "http://172.17.0.1:11434"
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
volumes:
  open-webui:
項目 値 / 内容 説明
services openwebui サービス名。Docker Compose で管理されるアプリケーション単位。
container_name openwebui_host コンテナの名前。docker ps 実行時にこの名前で表示される。
image ghcr.io/open-webui/open-webui:main 使用するコンテナイメージ。GitHub Container Registry から取得。
environment GLOBAL_LOG_LEVEL=debug ログ出力レベルを詳細表示(debug)に設定。
RAG_EMBEDDING_ENGINE=ollama RAG 機能の埋め込みエンジンとして Ollama を使用。
RAG_EMBEDDING_MODEL=hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-32B-Japanese-gguf:Q4_K_M Ollama に渡す埋め込みモデルの指定。日本語対応の大規模モデル。
RAG_OLLAMA_BASE_URL=http://172.17.0.1:11434 Ollama サーバの接続先 URL(Docker ホスト内部IP + ポート番号)。Ollama サーバのデフォルトポートは11434。
ports 3000:8080 ホストのポート3000 → コンテナのポート8080 に接続。
volumes open-webui:/app/backend/data Docker 永続化ボリューム open-webui をコンテナ内の /app/backend/data にマウント。
volumes(下段定義) open-webui Docker が管理する名前付きボリューム。データを永続化。

下記の通り、コンテナを起動します。

sudo docker-compose up -d

外部からOpenWebUIにアクセスできるか確認します。

http://192.168.0.114:3000/

6. Ollamaの設定

外部からのアクセスを許可する設定をします。

① 一時的な設定の場合

OLLAMA_HOST=0.0.0.0 ollama serve

② 永続的な設定の場合

sudo systemctl edit ollama.service
### Editing /etc/systemd/system/ollama.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Service]                          # 追加
Environment="OLLAMA_HOST=0.0.0.0"  # 追加

### Lines below this comment will be discarded

### /etc/systemd/system/ollama.service
# [Unit]
# Description=Ollama Service
# After=network-online.target
# 
# [Service]
# ExecStart=/usr/local/bin/ollama serve
# User=ollama
# Group=ollama
# Restart=always
# RestartSec=3
# Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
# 
# [Install]
# WantedBy=default.target

Olllamaサービスを再起動します。

sudo systemctl restart ollama

外部からアクセスできるか確認してみます。

curl http://192.168.0.114:11434/api/tags

dockerコンテナからアクセスできるか確認してみます。

sudo docker exec -it openwebui_host curl http://172.17.0.1:11434/api/tags

7. OpenWebUIとOllamaの接続

OpenWebUIにアクセスして、Ollamaと接続する設定をします。

[設定] > [管理者設定] > [接続]に移動し、下記の画像の通り設定します。

スクリーンショット 2025-07-11 8.08.35.png

このようにして、OpenWebUI側でOllamaのモデルを認識できるようになります。

スクリーンショット 2025-07-11 8.11.49.png

8. おまけ

下記の通り、ollamaのモデル名を変更することもできます。

ollama cp hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-32B-Japanese-gguf:Q4_K_M my-LLM

今後は、Ollama, dockerコンテナを立ち上げている状態であれば、下記のURLにアクセスすることでGUIでLLMを使用できます。

2
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
2
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?