LM StudioをDifyに接続できた
Xのポストなどで生成AIを使ったアプリを容易に開発できると注目されているDifyを、ローカル環境で起動できました。
私は、ウェブサービスのDifyを試したことがあります。
でもOpenAIなどのAPIの料金の負担のこともあり、LM Studioのローカル・サーバーの機能を利用して、Difyに接続したいと考えていました。
今回Difyをローカル環境で使い、LM Studioのローカル・サーバーと接続できましたので、備忘録を兼ねて記録したいと思います。
既にLM Studioをインストールしていて、Phi-3のSLMをダウンロードして使っていました。
今回は、DifyのGitHubのクローンを作り、Dockerで起動して使いました。
LM Studioのインストール
LM Studioをインストールしていない人は、ここからダウンロードできます。
Windows、Mac、Linuxと選べますので、使われているOSを選んでインストールしてください。私は、この学習モデルを使いました。
いよいよDifyのインストールです
こちらの記事を参考にしました。
参考にした記事では、WSLのIPアドレスを取得して、DifyのURLの設定で使うと解説があります。
でも、私は、LM Studioも、Dockerも、Windowsにインストールしています。
そのため、IPアドレスに迷い、エラーが出てしまいました。
私の場合は、WSLのIP4アドレスではなく、イーサネット アダプター イーサネット 2の項目にあるIP4のアドレスを使って設定できました。
もしDifyのモデルの登録画面で、URLがアクセス拒否されるエラーが出た場合は、別のIP4アドレスが無いか確認してみましょう。
そして、LM StudioのAPIの設定が終わったとに、Dockerのコマンドで、再起動を行いました。
LM Studioのローカル・サーバー画面
Difyとのやり取りが、確認できます。
Difyの画面
参考記事のお陰で簡単に接続できました。
今回ネット検索で見つけた記事を見失ったときに、MicrosoftのCopilotに質問しました。
その時に、LM StudioとDifyの接続手順を教えてくれましたので、シェアします。
Difyのインストール
git clone https://github.com/langgenius/dify.git
Dockerファイルの場所へ移動
ダウンロードしたファイルの中のdockerファイルの場所までディレクトリを移動します。
cd ~/dify/docker
Difyを立ち上げ:
以下のコマンドでDifyをローカル環境で立ち上げます。
docker compose up -d
アクセス
ブラウザからhttp://localhost/installにアクセスして、Difyの管理者アカウントを設定します。
私が見つけた参考にした記事の内容を基に、回答したようです。
今回Phi-3を使ってDifyに接続して、チャットボットとして使うことができました。
DifyにLLMの登録
OpenAI-API-compatibleに、設定します。
DifyにLM Studioを接続した際の注意点
ナレッジの登録で、LM Studioを使っているときは、インデックスモードが、経済的な方しか選択できないです。
上手く検索できないとき
ナレッジに登録したPDFの内容を上手く検索できないときは、下記の点を手動で設定してみてください。
セグメント識別子:
現在の設定(*\n)は段落や改行を基準にセグメント化しているようです。PDFの構造に合った識別子を設定することで、より適切なセグメント化が可能です。
最大チャンク長:
500文字の設定ですが、これを調整することで、より適切なセグメント化が可能です。例えば、PDFの内容が長文である場合は、長めのチャンク長に設定することを検討してください。
チャンクのオーバーラップ:
現在50文字のオーバーラップが設定されています。これを調整することで、検索においてより一貫した結果を得ることができます。オーバーラップを増やすことで、関連性のある情報がより多くキャプチャされる可能性があります。
RAM16GBのノートパソコンでも
私は、12th Gen Intel(R) Core(TM) i7-1280P 2.00 GHzで、RAMが16GBのノートパソコンを使っています。
GPUは、RTX3060 laptopなのでVRAMは、6GBです。
このスペックのパソコンでも、SLM(小規模言語モデル)の回答は遅いですが、DofyとLM Studioを接続して、チャットボットを使うことができました。
今回のDifyのGitHubのクローンは、外付けSSDにダウンロードして使っています。
その他の参考記事
Discussion