Macでローカル環境にミニChatGPTをつくってみた

以下の動画の手順でミニChatGPTを作りました。

www.youtube.com

はじめに

Macのローカル環境にOllama、open-webUIを使ってミニChatGPTを作りました。

実行環境

homebrew、Pythonはインストール済みです。

環境構築

Ollama

まずはOllamaのインストールを行います。以下のページからMac用のOllamaをダウンロードします。

www.ollama.com

Ollamaのダウンロード

ダウンロードしたパッケージを展開し中にあるOllama.appをアプリケーションに移動します。移動後にOllamaの起動を行います。 以下のコマンドを実行してバージョンが表示できればインストール成功です。

ollama -v

続けてOllamaのmodelページにあるモデルの中から任意のモデルをダウンロードします。 例としてPhi3-mediumをダウンロードする場合は以下のコマンドを実行します。

ollama pull phi3:medium

Open-webui

Open-webuiは大規模言語モデルを利用するためのオープンソースのWebインターフェースです。

以下のページからソースコードを取得できます。

github.com

バックエンド

バックエンドを構築します。 open-webuiのディレクトリで以下のコマンドを実行してpythonの仮装環境構築を行います。環境が作成されたら有効化を行います。

python -m venv openwebui
. ./openwebui/bin/activate

続けてバックエンドの依存ライブラリインストールを行うために以下のコマンドを実行します。

cd backend
pip install -r requirements.txt

依存ライブラリのインストールが終了したらバックエンドの構築は完了です。

フロントエンド

フロントエンドの構築のために、nodebrew、node.jsをインストールします。 以下のページにあるコマンドを参考にしました。

zenn.dev

node.jsのバージョンは動画と同じv18の最新版を使用するようにしました。

以下のコマンドを実行してバージョンが取得できればインストール成功です。

node --version

open-webuiのディレクトリで以下のコマンドを実行しプロジェクトの依存関係のダウンロードとビルドを行います。

npm install
npm run build

依存関係のダウンロードとビルドが終了したらフロントエンドの準備は完了です。

実行

backendで以下のコマンドを実行するとサーバを起動することができます。

bash start.sh

サーバが立ち上がると以下のURLからログイン画面を開くことができます。

localhost:8080/auth

ログイン画面

sign up画面で適当なID、メールアドレス、パスワードを入力しユーザの登録を行います。

ユーザ登録

ログインが完了するとトップページに遷移します。

トップページ

右上のselect a modelからOllamaで取得したモデルを選択することができます。

モデルの選択

試しにPhi3:mediumを利用したところ以下のような出力を得ることができました。

Phi3:mediumをお試し

終わりに

Ollamaを使った文章の生成は非常に高速だと感じました。また、open-webuiは多機能で柔軟なwebインターフェイスです。画像や音声との連携も試してみたいと思いました。