ChatGPTのようなチャットボットを作る ~導入編~
こんにちは!
開発部 技術課のN.Kです!
現在社内取り組みの一環で、
社内専用のチャットボットを作るために調査/検証を行っています。
今回は、ローカルLLMを活用してネットワーク接続が不要なチャットボットについて紹介します。
ローカルLLMとは
LLM(大規模言語モデル)については、耳にしたことがある人が多いと思います。
ChatGPTやGeminiといった生成AIもLLMに分類されます。
ローカルLLMはその名の通り、ローカル環境で動く大規模言語モデルになります。
ChatGPTなどに比べて以下のようなメリットがあります。
・情報漏洩のリスクが低い
・応答速度が速い
・カスタマイズがしやすい
もちろんデメリットもありますが、今回は割愛します。
ツール紹介
今回の検証にあたって、以下のツールを使用しました。
・Ollama
・OpenWebUI
・Python 3.11
Ollamaとは
「Ollama」はローカル環境でLLMを簡単に実行できるオープンソースのツールです。
コマンドラインやAPIを通じて利用することもでき、
オープンソースでもあることからカスタマイズ性にも優れています。
OpenWebUIとは
「OpenWebUI」はローカルまたはクラウド上でLLMを管理・操作するためのオープンソースのWebインターフェース です。
WebベースのUIとなっているため、シンプルかつ直感的な操作が可能です。
今回は社内情報を取り扱う関係上、ローカルでのみ動作しています。
導入手順(Ollama)
今回はWindowsで導入を行いましたのでその手順を共有します。
-
Ollamaのインストール
https://ollama.com/download/windows
上記サイトからインストーラーをダウンロードし、exeファイルを実行すればインストールが始まります。
インストールが完了したら、念のためちゃんとインストールができたか確認しておきましょう。
コマンドプロンプトで以下のコマンドを実行します。
ollama --version
コマンドが認識されていればインストール成功です。 -
モデルのダウンロード
OpenWebUIで動かすモデルをダウンロードします。
今回はMeta社が開発したオープンソースLLMである「Llama3」をダウンロードします。
ollama run llama3
「success」と表示されたら成功です!
OpenWebUI導入手順
-
Pythonのインストール
OpenWebUIを動かすためにはPythonが必要なので、インストールします。
https://www.python.org/downloads/windows/
公式サイトから「3.11」バージョンのインストーラーをダウンロードします。
※OpenWebUIは「3.11」に対応しています。他のバージョンは非推奨のため注意してください。
インストールが完了したら、こちらも確認をしておきましょう。
python --version
-
OpenWebUIのリポジトリをクローン
https://github.com/open-webui/open-webui?tab=readme-ov-file
githubに公開されているリポジトリをクローンしてください。
※クローンの方法についての細かな説明については今回は省きます。
わからない方は、公式のドキュメントを参考にしてください。
これで準備は完了です!
次は実際にOpenWebUIを立ち上げていきましょう!
OpenWebUIを起動する
コマンドプロンプトを立ち上げたら、ディレクトリをクローンしたリポジトリ直下に移動します。
その後以下のコマンドを実行し、OpenWebUIをインストールしてください。(最初だけ)
※pip が認識されない場合は、pythonの環境変数が設定されている確認してください。
pip install open-webui
インストールが完了したら、以下のコマンドからOpenWebUIを立ち上げてください。
open-webui serve
起動が完了すると、ローカルホストが立ち上がるのでそちらにアクセスします。
(サイトが立ち上がらない方は「こちら」のURLを試してください)
下記エラーが発生した場合は、
VisualStudioから「Microsoft Visual C++ 再頒布可能パッケージ」をインストールして再度試してみてください。
ValueError : The onnxruntime python package is not installed. Please install it with `pip install onnxruntime`
アクセスに成功すれば、上記ブラウザが立ち上がります。
「Get started」を押して、次へ進んでください。
また、最初の立ち上げ時には管理者アカウントが必要になります。
必要な情報を入力してアカウントを作成してください。
実際にチャットをしてみる
アカウントの作成が完了すると、ChatGPTのように質問を投げかけられるようになります。
Ollamaからダウンロードしておいた「llama3」がデフォルトで設定されているかと思います。
試しに何か質問してみましょう。
答えは合っていても、英語で返されてしまいましたね。
こちらは、しっかりと事前にプロンプトを指定しておくことで回避できます。
画面左下にサインイン中のアカウントアイコンがあります。
そこから設定メニューを開き、「一般」タブの「システムプロンプト」という項目にモデルの役割を指定してください。
再度同じ質問をしてみると、指定した役割に応じた答え方をしてくれました!
質問の内容や役割を変えてみたり、色々と試してみてください!
最後に
導入はこれで完了です!
次は応用編です!
pdfなどのデータを与えてみたり、モデル自体に手を加えて最適化を行うなど
自分好みにカスタマイズをしていきましょう!
応用編もブログに書けるように、引き続き検証を進めていきます!
ご覧いただきありがとうございました!
Discussion