2025年5月8日木曜日

OpenWebUI で Gemini を使う方法

OpenWebUI で Gemini を使う方法

概要

Gemini を LiteLLM Proxy でコールし OpenWebUI は LiteLLM Proxy に対してコールします
Gemini のエンドポイントはカスタムエンドポイントとします
過去に Azure OpenAI でやったバージョンの Gemini 版になります

環境

  • Ubuntu 24.04
  • OpenWebUI 0.6.7
  • LiteLLM Proxy 1.68.0

ポイント

OpenWebUI が起動できたらモデルの設定を開き高度な設定から「Stream Chat Response」をオフにしましょう

compose.yaml

services:
  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - WEBUI_AUTH=False
      # - OPENAI_API_KEY=${MASTER_KEY}
      - OPENAI_API_BASE_URL=http://host.docker.internal:4000/v1
    restart: always

  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    container_name: litellm
    ports:
        - "4000:4000"
    volumes:
        - ./litellm_config.yaml:/app/config.yaml
    environment:
      - GEMINI_API_BASE=${GEMINI_API_BASE}
      - GEMINI_API_KEY=${GEMINI_API_KEY}
    command: --config /app/config.yaml --port 4000 --detailed_debug
    restart: always

volumes:
  open-webui:

litellm_config.yaml

model_list:
  - model_name: gemini/gemini-2.0-flash
    litellm_params:
      model: gemini/gemini-2.0-flash
      api_base: os.environ/GEMINI_API_BASE # runs os.getenv("GEMINI_API_BASE")
      api_key: os.environ/GEMINI_API_KEY # runs os.getenv("GEMINI_API_KEY")
      api_version: ""

.env

GEMINI_API_KEY=xxx
GEMINI_API_BASE=https://your-api-endpoint/ai/chat-ai/flash

動作確認

  • docker compose up -d

で 3000 ポートにアクセスしコンソールから質問できることを確認しましょう

最後に

どうやら OpenWebUI からだとストリーム API のレスポンス形式は想定しておらず generateContent のレスポンスを使っているっぽいのでオフにしてあげる必要がありました

Gemini のカスタムエンドポイントを使う場合には設定してみるといいかなと思います

OpenWebUI で Gemini を使う場合には Pipeline を使うのが王道ですが LiteLLM Proxy でも動作するようです

参考サイト

0 件のコメント:

コメントを投稿