Open WebUI で Google AI Studio の Gemini API を Pipelines 経由で使う

## Open WebUI で Google AI Studio の Gemini API を Pipelines 経由で使う方法

この記事では、ローカル環境に構築した Open WebUI で、Pipelines を活用して Google AI Studio の Gemini API を使用する方法を紹介します。

**はじめに**

Open WebUI は、拡張性が高く、機能豊富で、ユーザーフレンドリーなセルフホスト型の Web UI です。

Ollama 等を使ってローカルの LLM はもちろんのこと、**Google AI Studio の Gemini API のようなクローズドなモデルも GUI から簡単に使用できる**点が魅力です。

さらに、Pipelines は Open WebUI の機能を拡張する強力なプラグインシステムで、任意の Python コードを実行して OpenAI API 互換の UI クライアントにモジュール化されたカスタマイズ可能なワークフローを提供します。

過去には、LiteLLM を使用して各種 API との接続が可能でしたが、Open WebUI バージョン 0.2 から廃止されました。

この記事では、Pipelines を通じて Google AI Studio の Gemini API を使用することで、より高度なテキスト生成処理を実現する方法を解説します。提供されたサンプルコードを元に、Gemini API を利用する Pipeline の実装方法を具体的に示します。

最終的には、下記のように Gemini が利用できるようになります。

![Screenshot 2024-09-10 at 14.26.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184983/ae0f027c-fc77-fd39-7d82-10ab67759231.png)


**1. Open WebUI と Pipelines のインストール**

まず、Open WebUI と Pipelines をインストールします。

**Open WebUI のインストール (Ollama が同一マシンにインストールされている場合):**

```bash
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
```

これにより、Open WebUI には http://localhost:3000 からアクセスできるようになります。

**Pipelines のインストール:**

```bash
docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main
```

**2. Google AI Studio の Gemini API キーの取得**

Google AI Studio の Gemini API キーを取得するには、以下の手順に従います。

1. Google AI Studio ([https://ai.google.dev/aistudio](https://ai.google.dev/aistudio)) にアクセスします。
2. Google アカウントでログインします。
3. 画面左上のメニューから **API** > **プライベートキーの表示** を選択します。
4. API Key をコピーします。

**3. Pipelines と Open WebUI の連携**

Open WebUI で Pipelines を使用するには、以下の手順に従います。

1. Open WebUI の管理者設定画面を開き、「Connections」>「OpenAI API」タブを選択します。
2. 「API URL」に `http://host.docker.internal:9099` を入力します。
3. 「API Key」に `0p3n-w3bu!` を入力します。
4. 設定を保存します。

![Screenshot 2024-09-10 at 14.35.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184983/dbddd6a8-d459-9dc1-d801-b008a8333f72.png)

**4. Gemini API Pipeline の実装**

下記の手順で Gemini API Pipeline を実装します。

1. Open WebUI の管理者パネルを開き、「パイプライン」タブを選択します。
2. 「Github URL からインストール」をクリックし、`https://github.com/open-webui/pipelines/blob/main/examples/pipelines/providers/google_manifold_pipeline.py` を入力してインストールします。
   - これにより、Gemini API と通信するための Pipeline コードが Open WebUI にアップロードされます。
3.　`Google Api Key` に取得した API Key を入力します。

**6. Gemini の利用**

設定が完了したら、Open WebUI のチャット画面で Gemini を利用できます。

![Screenshot 2024-09-10 at 14.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184983/2885d3b6-adb5-9c7d-f06a-edffc0530b2f.png)


**まとめ**

Open WebUI と Pipelines を活用することで、Google AI Studio の Gemini API をはじめ、様々なプロバイダの API を Open WebUI のインターフェースから利用することができます。Pipelines は、[https://github.com/open-webui/pipelines/tree/main/examples/pipelines/providers](https://github.com/open-webui/pipelines/tree/main/examples/pipelines/providers) にあるように、多くのプロバイダに対応しており、Open WebUI の拡張性を高める強力なツールです。

**関数呼び出し、カスタム Retrieval-Augmented Generation (RAG) パイプライン、メッセージ監視、レート制限、リアルタイム翻訳、有害メッセージフィルタなど、高度な機能を Python コードで実装し、Open WebUI に統合**できます。

Pipelines の柔軟性を活かして、様々なユースケースに対応するカスタムパイプラインを開発してみてください。