1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Difyの導入、およびローカルLLMをモデルプロバイダに設定する

Posted at

はじめに

この記事では、Difyをコンテナとして導入し、ローカルで動作するLLM(Large Language Model)をモデルプロバイダとして設定する方法を解説する。また、Difyでクエリとしてファイルを渡す設定についても触れる。

Difyの導入

Difyを使用する際、最も簡単な方法はDockerコンテナを利用することである。以下の手順で導入する。

1. DockerとDocker Composeのインストール

Difyをコンテナとして動作させるには、あらかじめDockerとDocker Composeをインストールしておく必要がある。インストール方法は公式ドキュメントを参照する。

2. Difyコンテナの起動

以下のコマンドを使用してDifyを起動する。

git clone https://github.com/langgenius/dify.git
cd dify
docker-compose up -d

これで、Difyの各サービスが起動する。ブラウザでhttp://localhost/installにアクセスし、管理者アカウントの設定を行う。

ローカルLLMをモデルプロバイダとして登録する

ローカルで稼働するOpenAI互換APIを持つLLMをDifyに登録する手順は以下の通りである。

  1. Difyの設定画面にアクセス

Difyの管理画面で、左側のメニューから「設定」を選択し、「モデルプロバイダー」をクリックする。

  1. 新しいモデルプロバイダの追加

「OpenAI-API-compatible」を選択し、「Add model」をクリックする。

  1. モデル情報の入力

以下の情報を入力する。

  • Model Name: 任意のモデル名
  • API Key: 必要に応じて入力(空欄でも可)
  • API endpoint URL: ローカルLLMのエンドポイントURL(例: http://host.docker.internal:3000/v1

host.docker.internalは、Dockerコンテナからホストマシンを参照するための特殊なホスト名である。これにより、コンテナ内からホスト上で稼働するLLMにアクセスできる。
逆に言うと、この設定を入れないとdifyコンテナ内部からローカルホスト上で動いている(今回の場合はopen-webuiコンテナが提供している)LLMサーバへの通信が通らない。

  1. モデルの保存

入力が完了したら、「保存」をクリックしてモデルを登録する。
うまく通信できたら保存に成功する。

※ローカルホスト上のLLMサーバのAPIのエンドポイントのポート番号(今回の場合はopen-webuiをデフォルト設定で使用するので3000)については、ubuntuの場合はufwでも通信を許可しておく必要がある。

Difyコンテナ設定の修正(host.docker.internalの有効化)

host.docker.internalを使用するためには、Dockerの設定を修正する必要がある。

docker-compose.ymlファイルを開き、extra_hostsセクションを追加してhost.docker.internalを有効化する。これにより、コンテナ内からホストマシンのサービスにアクセスできるようになる。

具体的には以下のパスに格納されているdocker-compose.yamlファイルにおいて以下のようにAPIセクションの末尾にextra_hostsセクションを追記する。

dify/docker/docker-compose.yaml

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

この状態でdocker compose up -dを実行すれば、difyコンテナの内部からローカルホスト自身に向かって通信できるようになる。

クエリとしてファイルを渡すための設定

Difyでクエリとしてファイルをアップロードする機能を有効化する手順は以下の通りである。

機能設定画面にアクセス
Difyの管理画面で、左側のメニューから「設定」を選択し、「機能」をクリックする。
ファイルアップロード機能の有効化
「ファイルアップロード」の項目を見つけ、「有効化」ボタンをクリックする。

※この設定がデフォルトではoffになっているので、llama-visionのような画像認識できるLLMを使おうとした時に画像を渡すことができず、困惑する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?