👾

ChatGPTのようなチャットボットを作る ~導入編~

2025/03/26に公開

こんにちは!
開発部 技術課の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で導入を行いましたのでその手順を共有します。

  1. Ollamaのインストール
     https://ollama.com/download/windows
     上記サイトからインストーラーをダウンロードし、exeファイルを実行すればインストールが始まります。
     インストールが完了したら、念のためちゃんとインストールができたか確認しておきましょう。
     コマンドプロンプトで以下のコマンドを実行します。
       ollama --version  
     コマンドが認識されていればインストール成功です。

  2. モデルのダウンロード
     OpenWebUIで動かすモデルをダウンロードします。
     今回はMeta社が開発したオープンソースLLMである「Llama3」をダウンロードします。
       ollama run llama3  
     「success」と表示されたら成功です!

OpenWebUI導入手順

  1. Pythonのインストール
     OpenWebUIを動かすためにはPythonが必要なので、インストールします。
     https://www.python.org/downloads/windows/
     公式サイトから「3.11」バージョンのインストーラーをダウンロードします。
     ※OpenWebUIは「3.11」に対応しています。他のバージョンは非推奨のため注意してください。
     インストールが完了したら、こちらも確認をしておきましょう。
       python --version  

  2. 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