# はじめに
こんにちは、Daishiroです。前回の記事、
https://qiita.com/daishiro_jp/items/de2b59b4081ead2161fe
では、Widnows11にDockerを入れて、Difyを使えるようにするまでの手順を書きました。簡単でしたね!これで手元のPCで自由にDifyを使えるようになりましたが、OpenAIやClaudeのAPIキーを使用すると、費用がどんどんかさんでいきます(使った分だけ費用がかかるので当然です)。
超大きいなデータや、長いワークフローでも、費用を気にせずLLMを使えたらとても便利です。あれやこれや、生成AIで自動化することができますね。ということで、ここでは前回の環境から、ローカルのLM Studioを使う環境構築手順を書いてみます。
# 前提条件
- 前回までの手順で、Windows+Docker、の環境に加え
- LM Studioも、併せてインストール
している環境を用意してください。デフォルトインストールして、好きなモデルが動作するようにしておきましょう。ちなみに、LM Studioはここから手に入ります。
https://lmstudio.ai/
# 1. ローカルLLMのサーバーを起動
早速、LM Studioのサーバーを起動しましょう。左メニューのLocal Serverをクリックし、画面上部でモデルを選択し(今回は、ELYZAを設定しました)、「Start Server」ボタンを押下します。うまくいくと、以下の画面のように、ローカルの1234ポートで待ち受けるサーバーが起動します。
[](/attach/7817bc4f7521d878c51c6a7ab64126f945e06a80c81c10ba3f4cc61b9b6359f9.png)
画面下のServer logsに http://localhost:1234/v1/~ の形式でエンドポイントが提示されていますね。これでOKです。
ついでに、DockerからLM StudioにアクセスするためのIPアドレスも調べておきましょう。Windowsのコマンドプロンプトでipconfigを実行します。
[](/attach/2452246e6130678d8bda7d985e29022bec11d583eadb8ad20c8f7a7617a9576f.png)
最後の方のネットワークアダプタに、172.24.208.1が見つかりますね。これが大切です。DockerからLM Studioにアクセスするためのネットワークを踏まえてのエンドポイントは、
**http://172.24.208.1:1234/v1/**
となります。(大切なので、メモ)
# 2. DifyにロカールLLMを登録
設定>モデル>モデルプロバイダー、の中にあるOpen-AI-compatibleを選択して設定しましょう。ここにありますね。
[](/attach/9583f660a5c408b9c4fe22946a88e4503f79ec5959f0b3b77d6f69d50c1b4c29.png)
クリックをして、先ほどメモったエンドポイントを入れておきましょう。
[](/attach/ad42ab8d548fc941739ef5884c8c151ccd46cf26cfe14606201f7dc5b1467b9f.png)
これで保存ボタンを押して登録が出来れば完了です。おめでとうございます。
ちなみに、保存の際には、LM Studioに以下のログが出ています。ちゃんと接続ができているようです。
```
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [LM STUDIO SERVER] Processing queued request...
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] Received POST request to /v1/chat/completions with body: {
"model": "LM Studio",
"max_tokens": 5,
"messages": [
{
"role": "user",
"content": "ping"
}
]
}
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [LM STUDIO SERVER] Context Overflow Policy is: Rolling Window
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [LM STUDIO SERVER] Last message: { role: 'user', content: 'ping' } (total messages = 1)
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [LM STUDIO SERVER] Accumulating tokens ... (stream = false)
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf] Accumulated 1 tokens: Hello
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf] Accumulated 2 tokens: Hello from
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf] Accumulated 3 tokens: Hello from your
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf] Accumulated 4 tokens: Hello from your server
[xxxx-xx-xx xx:xx:xx.xxx] [INFO] [LM STUDIO SERVER] [QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf] Generated prediction: {
"id": "chatcmpl-ys2my99r1kjgn601ea8lu",
"object": "chat.completion",
"created": 1729661222,
"model": "QuantFactory/Llama-3-ELYZA-JP-8B-GGUF/Llama-3-ELYZA-JP-8B.Q5_1.gguf",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello from your server"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 4,
"total_tokens": 31
}
}
```
# 3.動作確認
さて、無事設定できましたので、動作確認をしてみましょう。
「こんにちは!元気してる!?」
って問いかけたら、元気よく自己紹介をして、会話をする簡単なワークフローを作りました。以下です。
[](/attach/a680173dea3bd605b193e7232dacbcd97b840b93fefec5cc1d5e22df65dac794.png)
そして、まさかの、1回目で正常動作。Dify素晴らしいですね!以下の回答が見当たります。
**「わーーーい!こんにちは!元気100%です!ELYZAと申します。私は大型の言語モデルで、膨大な知識を持っています!自然言語処理や生成AIの技術を活用して、ユーザーの質問に答えたり、会話したりすることができます。友達のようにお話しできるので、是非仲良くしましょう!」**
元気いいじゃーん!合格!
# おまけ
LM Studio側のログにはこんな風に出力されています。
[](/attach/eaa43069134ed7a73d75525f7e046d1fd3d89dd55973a2eb1d9f7e6afbc13472.png)
# まとめ
Widnows11にDockerを入れて、Difyを使えるようにするまでの手順でした。これでいくらでも生成AIを回し放題ですね!人の役に立てる価値あるものを!これからもいろいろとDify周りを探っていきたく思います!