Dify+LM Studio ローカルPCに文献検索用AI構築

最近の文章生成系AIは、ネットや文献検索結果を反映させて結果を表示するようになっています。
以前のAIは事前学習していない質問に関しては、まったく回答できませんでした。それを解決するために、事前学習ではなく、事後に情報を得るシステムが導入され、RAG(検索拡張生成)とよばれています。

RAGを自分のPCで実現する方法の一つが、Difyを利用する方法です。

windows の wsl2 内に docker を入れ、Dify を起動させます。
個人的な事情で、Docker Desktop ではなく、wsl2 内の Ubuntu 上の Docker を使います。

Dify インストール

最新版をgitからダウンロードします。

git clone https://github.com/langgenius/dify.git

difyフォルダが作成されるので、ディレクトリを移動。

cd ./dify/docker

環境構築して、Docker のコンテナ起動。

cp .env.example .env
sudo docker compose up -d

これで dify のたくさんのコンテナが起動します。起動したコンテナの一覧は以下のコマンドで確認できます。

sudo docker ps

dify へのアクセスは、windows 上のブラウザから。URLに http://localhost/install と入力すると、管理画面に移動します。

自分用のアカウントを作成してログインすると、difyの機能が使用できます。

LM Studio インストール

Dify 自体には、生成系AI機能がありません。
なんらかの方法でAIモデルを使えるようにする必要があります。
今回は「LM Studio」を使ってAIモデルをインストールします。

LM Studio のホームページからプログラムをダウンロードし、インストールします。

「虫眼鏡」マークを押してモデルを探し、ダウンロードします。今回は「cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf」を使用させていただきました。

この状態で、「吹き出し」マークを押すと、AIとチャットをすることができます。

LM Studio APIの設定

Dify から LM Studio にアクセスするために、LM Studio の API を有効にします。
「Power User」か「Developer」モードにして、ログ表示マーク(Developerボタン)を押し、「Status」を「Running」に変更します。

Dify から LM Studio にアクセス

Dify で「設定」を選び、

「モデルプロバイダー」で「LM Studio」を選択します。

つづいて「モデルを追加」から、「Model Name」や「Base URL」(LM Studio の「Reachable at:」をコピーして貼り付ける)を入力し、「追加」を押して保存します。

以上で、Dify から LM Studio にアクセスできるようになりました。

簡単なチャットボットを作って、動作を確認します。
「スタジオ」>「全て」>「アプリを作成する」>「最初から作成」>「チャットボット」を選択。
適当な名前を付けて「作成する」を押すと、チャットボットが作られる。

RAG の設定

Dify と LM Studio が連携したので、最後に、RAG機能を追加します。

RAGは「ナレッジ」から設定します。

3種類の手法が選べますが、自前の資料を使用する場合は「テキストファイルからインポート」を選択します。デフォルト設定のまま処理を開始すると、ファイルの解釈(インデックス化)が進行します。

RAG の活用

「スタジオ」に戻って、
先ほど作成したチャットボットを選択。

「オーケストレーション」>「コンテキスト」で「追加」。
作成済みのナレッジを読み込ませれば、RAG機能は完成。

念のため、チャット入力欄の下、「有効な機能」>「管理」において、「引用と帰属」がONになっていることを確認。

以降の回答は、読み込ませた文献に関連するものになります。
たくさん文献を読み込ませて、自分なりのAIを作ることができます。

コメント