Language日本語

Open WebUI で Amazon Bedrock のモデルを使用する方法

2025-08-27
2025-08-27
ブログ記事のOGP画像

皆様、ごきげんよう。

今回は、大人気のチャットアプリケーション faviconOpen WebUI のモデルとして Amazon Bedrock を使用しようという内容です。

Open WebUI とは?#

Open WebUI は、LLM チャットアプリケーションのユーザーインターフェースを提供する包括的なアプリケーションであり、執筆時点で GitHub Stars を 100k 以上獲得している稀有なプロジェクトです。

アプリケーション開発なしで GUI 付きのチャットアプリケーションがすぐに使用できる

アーキテクチャ#

Open WebUI は、faviconOpenAI 互換の API エンドポイントのモデルプロバイダーをサポートしています。今回は、この機能を利用して Open WebUI 上から Amazon Bedrock を呼び出したいと思います。

LiteLLM の使用#

faviconLiteLLM には多くの機能がありますが、その中でも大きな機能として様々なモデルプロバイダーの API を OpenAI 互換の API に変換する機能があります。

この機能を使用すれば、コーディングをせずに Amazon Bedrock の API を OpenAI 互換の API に変換することが可能となります。

Open WebUI の使用#

Open WebUI は、セッション管理やデータベース管理、ベクターストアなどを外部に持つことができますが、単一インスタンスでも実行可能です。詳細はfaviconドキュメントを参照してください。

今回は最小例として単一インスタンスでの実行とします。

Open WebUI と LiteLLM の接続#

Open WebUI は、OpenAI 互換の API エンドポイントであれば、URL を指定するのみですぐにモデル呼び出しを開始できます。

準備#

モデルアクセスの確認#

使用したいモデルがアクセスできるようになっているか確認します。東京リージョンであれば、こちらのリンクから確認できます。

モデルアクセスの確認

docker-compose での起動#

設定の簡略化のため、docker-compose を使用します。Docker のデーモンが起動していることと、docker-compose がインストールされていることを確認してください。

LiteLLM の設定ファイルの作成#

LiteLLM の設定ファイルを作成します。こちらで使用するモデルを指定できます。詳細はfaviconドキュメントをご覧ください。

以下は一例ですが、東京リージョンのリージョンエンドポイントのモデル ID を指定しています。

litellm-config.yaml
model_list:
  - model_name: Amazon Nova Pro
    litellm_params:
      model: bedrock/apac.amazon.nova-pro-v1:0

  - model_name: Amazon Nova Lite
    litellm_params:
      model: bedrock/apac.amazon.nova-lite-v1:0

  - model_name: Amazon Nova Micro
    litellm_params:
      model: bedrock/apac.amazon.nova-micro-v1:0

  - model_name: Anthropic Claude 3.5 Sonnet
    litellm_params:
      model: bedrock/apac.anthropic.claude-3-5-sonnet-20240620-v1:0

  - model_name: Anthropic Claude 3.5 Sonnet v2
    litellm_params:
      model: bedrock/apac.anthropic.claude-3-5-sonnet-20241022-v2:0

  - model_name: Anthropic Claude 3.7 Sonnet
    litellm_params:
      model: bedrock/apac.anthropic.claude-3-7-sonnet-20250219-v1:0

  - model_name: Anthropic Claude Sonnet 4
    litellm_params:
      model: bedrock/apac.anthropic.claude-sonnet-4-20250514-v1:0

docker-compose の設定#

LiteLLM 内で Amazon Bedrock の API 呼び出しをするため、何らかの形で認証情報を LiteLLM のコンテナに渡します。今回は、SSO プロファイルに設定して渡すこととしています。

docker-compose.yml
# docker-compose.yml
version: "3.9"
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "8080:8080"
    environment:
      WEBUI_AUTH: "False" # シングルユーザーモードで稼働
      OPENAI_API_BASE_URL: "http://litellm:4000" # モデルプロバイダーの API ルートを指定 (GUIから変更可能)
    volumes:
      - open-webui:/app/backend/data

  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    container_name: litellm
    ports:
      - "4000:4000"
    environment:
	    # 今回は SSO プロファイルを使用します
      AWS_PROFILE: examples
      AWS_REGION: ap-northeast-1
    volumes:
      - ./litellm-config.yaml:/app/litellm-config.yaml:ro
      - ~/.aws:/root/.aws:rw
    command: ["--config", "/app/litellm-config.yaml"]

volumes:
  open-webui:

起動#

以下のコマンドで起動します:

bash
docker-compose up -d

起動にはしばらく時間がかかります。何度か http://localhost:8080 にアクセスして状況を確認してください。

起動して GUI にアクセスできたら、左上からモデル一覧が表示されていることを確認してください。

モデル一覧を確認

試しに何か語り掛けてみましょうか。回答が返ってくるかどうか確認します。

AI に挨拶するとモデルごとに性格が違っておもしろい

以下のコマンドで終了します:

bash
docker-compose down

Portrait of the Author
山下 生真
クラウドエンジニア。業務ではインフラ関連の仕事をしているが、プライベートでは専らシステムプログラミングに没頭している姿が目撃されている。Rust を好んで使用しているらしい。趣味でイラストを嗜む。