📌

LM StudioをDifyに接続できた

2024/06/09に公開

Xのポストなどで生成AIを使ったアプリを容易に開発できると注目されているDifyを、ローカル環境で起動できました。
私は、ウェブサービスのDifyを試したことがあります。
でもOpenAIなどのAPIの料金の負担のこともあり、LM Studioのローカル・サーバーの機能を利用して、Difyに接続したいと考えていました。

今回Difyをローカル環境で使い、LM Studioのローカル・サーバーと接続できましたので、備忘録を兼ねて記録したいと思います。

既にLM Studioをインストールしていて、Phi-3のSLMをダウンロードして使っていました。

今回は、DifyのGitHubのクローンを作り、Dockerで起動して使いました。

LM Studioのインストール

LM Studioをインストールしていない人は、ここからダウンロードできます。
https://lmstudio.ai/
Windows、Mac、Linuxと選べますので、使われているOSを選んでインストールしてください。

私は、この学習モデルを使いました。

いよいよDifyのインストールです

こちらの記事を参考にしました。

https://qiita.com/araryo/items/89dcee526210c56dcc45

参考にした記事では、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に、設定します。

https://note.com/jolly_dahlia842/n/n41bf7cf085fd#44d8aa1d-e5d9-48cc-a938-174d9732ab96

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にダウンロードして使っています。

その他の参考記事

https://qiita.com/shioccii/items/bc6127ffe88c65ca8f55
https://qiita.com/araryo/items/89dcee526210c56dcc45
https://zenn.dev/allllllllez/articles/20240507_lm_studio_with_obsidian
https://note.com/pruel2326/n/n6dfb415a72f3

Discussion