MENU

DifyにローカルLLMを連携!設定手順とDocker構成

当ページのリンクには広告が含まれています。

「Difyを使いたいが、API利用料(従量課金)が気になる」「社内規定でクラウドへのデータ送信が禁止されている」

こうした課題を解決するのが、ローカルLLM(Large Language Model)との連携です。

自社サーバー(またはローカルPC)内で稼働するLLMをDifyのモデルとして登録すれば、通信コストゼロ、かつデータが外部に出ないセキュアな環境を構築できます。

この記事では、Dockerで構築したDify環境に、ローカルLLMを「モデルプロバイダ」として接続する具体的な手順を解説します。

目次

STEP 1:Difyコンテナの通信設定(Docker設定)

まず最初に、Difyのコンテナ(Docker)内から、ホストマシン(あなたのPCやサーバー)で動いているローカルLLMへアクセスできるように設定を変更します。

デフォルトの状態では、コンテナ内部からホスト側のローカルサーバー(例:localhost:3000など)は見えません。

docker-compose.yamlの編集

Difyのインストールフォルダ内にある docker/docker-compose.yaml ファイルを開き、api: セクションに extra_hosts の設定を追記します。

services:
  api:
    # 既存の設定はそのまま
    extra_hosts:
      host.docker.internal: host-gateway

この設定により、コンテナ内から host.docker.internal というホスト名を使って、ホストマシンのサービスへ通信できるようになります。

編集が完了したら、以下のコマンドでDifyを再起動し、設定を適用してください。

docker compose down docker compose up -d

STEP 2:ローカルLLMをモデルプロバイダに登録する

Difyが起動したら、実際にローカルLLM(OllamaやLocalAI、Open WebUIなどで稼働しているもの)を接続します。

  1. Difyの管理画面右上のアイコンから「設定」をクリックします。
  2. 左メニューの「モデルプロバイダー」を選択します。
  3. 一覧から「OpenAI-API-compatible」を探し、「モデルを追加(Add model)」をクリックします。

接続情報の入力

以下の情報を入力して保存します。

モデル名 (Model Name)任意の名前(例: local-llama3)
API Endpoint URLhttp://host.docker.internal:3000/v1 ※ポート番号(3000)は利用しているLLMツールに合わせて変更してください。
API Key任意(空欄でも可、ツールによっては適当な文字列が必要)

重要なポイント:

エンドポイントURLには localhost ではなく、STEP 1で有効化した host.docker.internal を使用します。これにより、Dockerコンテナの壁を超えて通信が可能になります。

※UbuntuなどのLinux環境でファイアウォール(ufw)を使用している場合は、Dockerコンテナからの通信(docker0インターフェース等)を許可する設定が必要になる場合があります。

STEP 3:画像認識のための「ファイルアップロード」有効化

Llama 3.2 Visionなどの「画像認識ができるローカルLLM」を使用する場合、Dify側で画像を受け取れるように設定する必要があります。

この設定はデフォルトではOFFになっているため、必ず有効化しましょう。

  1. Dify管理画面の「設定」を開きます。
  2. 左メニューから「機能(Features)」を選択します。
  3. 「ファイルアップロード」の項目を見つけ、スイッチをON(有効化)にします。

これで、チャットボットの入力欄にクリップのアイコンが表示され、画像をローカルLLMに渡して解析させることが可能になります。

まとめ

DifyとローカルLLMを組み合わせることで、ランニングコストを気にせず、かつ高セキュアな環境で生成AIを活用した業務システムを構築できます。

特に host.docker.internal の設定はつまずきやすいポイントですので、docker-compose.yaml の編集を忘れずに行ってください。

【推奨】業務システム化に有効なアイテム

生成AIを学ぶ

システム化のパートナー

VPSサーバの選定

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次