Open WebUIで、ChatGPTとClaudeを月 $10で使ってる話

初投稿です。

私、フリーランスでSEやらせてもらってるんですが、ここ最近は四六時中ChatGPTとClaudeに介護してもらいながら仕事してます。

なので、両方あわせて月$40でも文句はないというか、むしろ感謝して課金していました。

でもやっぱり高いし、どっちかに絞ろうかな〜と悩んでいたときに、知ってしまったのです。

従量課金のAPIを使用してChatGPTとClaudeを使えば、両方使ったままで今より安く済むことに、、、！

そして実際に、この記事で紹介している方法で、私の課金額は月$40から月$10前後まで減りました。

この記事ではOpen WebUIを使用して、API（従量課金）でChatGPTやClaudeを使用する方法の概要をざっくりご紹介します。

（細かい手順は需要があればいずれ）

![n2b1a5b195dfe_1736059553-z6M8anvQ9fyV1FJU5Pgo2ped.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979149/0524cfa5-b0c1-bcd9-3ac9-fe60590255b1.png)

## この記事でできるようになること

- 最新の言語モデルを従量課金で使う
- 様々な種類（OpenAI、Anthropic、Gemini、Ollamaなどなど）の言語モデルが使える
- ChatGPTっぽい、それなりにモダンなUIでチャットができる

## 必要になるスキル

じつは万人向けの方法ではないです。
非エンジニアの方には結構難しいかと思うので、最低限必要なスキルを先に列挙しておきます。

- PythonかDockerが使用できる
- OpenAIやAnthropicなど、使用したい言語モデル用のAPI Keyが取得できる

これだけでローカルネットワーク（自宅内）では使えます。
外でも使えるようにするには自分でサーバー立てて公開しないといけないので更に難易度が上がります。
（むずかしいのでこの記事には書きません）

## 主役！ Open WebUIの紹介

今回の主役 [Open WebUI](https://docs.openwebui.com/)
オープンソースの無料で使えるChatGPTライクなWebUIです。
APIキーを登録することで様々な種類の言語モデルを使用できます。

同じようなことができるものに、[Chatbot UI](https://www.chatbotui.com/ja)や[LibreChat](https://www.librechat.ai/)というのもあるんですが、Open WebUIはo1-miniやo1-preiewが使えて機能も豊富なので、こちらを使ってます。

ChatGPTのように、画像や音声でのチャットもできます。

![n2b1a5b195dfe_1736065987-UDGQ2h38MElgc0vPTSiOfjx9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979149/e185f0b1-a309-9a72-b4e4-b01001a65dfb.png)

個人的に便利だと思っている機能は、会話の途中で言語モデルを切り替えられるところと、AI側のチャットの内容を編集できるところ。
（変な方向に会話が進んだら、微修正できる）

使える言語モデルは非常に多くて、私がよく使っているのは、
gpt-4o, o1-mini, o1-preview, claude-3.5-haiku, claude-3.5-sonnet
あたりですね。
GeminiとかOllamaとかも使えるみたいです。

Funtionsという名前で使用できるモデルを追加する機能があるので、自分の使いたい物があるか確認してみてください！

[https://openwebui.com/functions](https://openwebui.com/functions)

## Open WebUIの使用方法

Open WebUIを使用する方法は２つあります。
Python pipを使用する方法とDockerを使用する方法です。
どちらも公式にのっているコマンドを引用して紹介します。

１．Python pipを使う場合（個人的におすすめ）
コマンド２つで起動できます。

```bash
pip install open-webui
open-webui serve
```

これで、Open WebUIサーバーが起動し、[http://localhost:8080](http://localhost:8080/) からアクセスできます。簡単！

なお、Pythonのバージョンは3.11以上がいいらしいです。

２．Dockerを使う方法
基本は以下のコマンドで起動すればよさそうです。
ただ、OllamaやGPUを使用する場合は環境変数の設定などが必要そう。
（よくわからんので詳細は[こちら](https://docs.openwebui.com/#quick-start-with-docker-)を参照ください）

```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
```

こっちの場合は、[http://localhost:3000](http://localhost:3000/) からアクセスできます。

Open WebUIが起動できたら、管理者の登録 → API Keyの登録してチャットできるようにしましょう！

OpenAIの言語モデルは、設定 > 接続 > OpenAI APIのところにAPI Keyを登録するだけ。

![n2b1a5b195dfe_1736067951-WSnQwgI3jUyeuKDatP65MZTO.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979149/14702ca1-3434-dbf5-a8ff-90580fa142d8.png)

自分が調べていてちょっと分かりづらかったんですが、AnthoropicなどOpenAI以外のモデルはFunction（拡張機能みたいなもの）を追加する必要があります。

Anthoropic系のモデルを使えるようにするFunctionは、[ここ](https://openwebui.com/f/justinrahb/anthropic/) で取得できます。

また下図のように、Functionをimportするには、自分が開いているOpen WebUIのURLを入れる必要があります。

![n2b1a5b195dfe_1736068241-lteNOBqZK2uzj0JoQS568fXg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979149/ea965334-852b-f8c3-c25e-eaa4d8c3e588.png)

Functionが取得できたら、以下の場所にAPI Keyを登録
これでAnthoropic系のモデルも使えるようになるはず！

![n2b1a5b195dfe_1736068579-W6GrLmlToakPfnR8UH3Cc7Fp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979149/84e42273-7b39-de7d-87b9-419bbccb7f01.png)

基本的にはこれでおしまい！
追加で設定すればRAG、Web検索や画像生成などもできるみたいです。
（いずれやりたい）

ただ、このままでは最初に述べた通り、ローカルネットワーク（自宅）でしか使用できません。
なので、私は外でも使えるようにミニPCでサーバーをたてて公開しています。

Open WebUIはデフォルトで、管理者以外のユーザーを登録できないようになっているため、見知らぬ他人に使用されるリスクは（ほぼ）ありません。

ここまでやればほとんどChatGPTやClaudeを使用している感覚と同じようで、いろんなモデルが安く使えますよ！

## おわりに

これで今まで以上に、AIにおんぶにだっこしてもらえそうです😊

ありがたや〜