AlmaLinux上で動作させるセルフDify環境を構築してみた

 

はじめに

最近生成AI界隈で流行っていると噂のDify(ディファイ)の環境を構築してみました。

DifyはオープンソースのAIアプリ開発プラットフォームです。

特徴としては、様々なLLMと組合わせたAIアプリをノーコードで構築できる優れものです。

語弊を恐れず超ざっくり言えば、自分専用のChatGPTみたいなChatBotをノーコードで作成することができるツールです。もちろんChatBot以外のアプリも工夫次第でいくらでも作れると思いますが、導入の敷居として一番低いのはChatBotからかなと思います。

ただ、これだけだとChatGTP使えばいいやんってなるんですが、Difyの強味として比較的簡単にRAG(拡張検索生成)を組み込むことができるので、例えば自社の独自ノウハウなどを基にLLMから回答させるといったことができます。

これがChatGPTにはできなくて、Difyで独自のChatBotなどを作るメリットです。

Difyを利用するには大きく2種類の方法があります。

  1. dify.aiが提供するSaaSサービスを利用する
  2. Dify環境を自分で構築して利用する

手っ取り早いのは1の方法で、SaaSサービスが存在しているので、そちらを利用することです。
メッセージクレジット(AIの応答回数)に応じたプラン毎の有償サービスですが、制限はキツメですがフリー版もあります。

とりあえずDifyを試してみたいというだけであれば、フリー版でも良いかもしれません。

一方でDifyはオープンソースとして提供されているので、インフラ環境さえあれば自分でDify環境を簡単に構築することができます。

セットアップも非常に簡単で、Docker Composeとしてgitで提供されているので、Docker環境があればすぐに利用を開始できます。

自分で環境を作るメリットは、SaaSサービスのような制限がないので、インフラスペックを満たせば無制限に利用できる点です。

前置きが長くなりましたが、今回はEC2上にDocker環境を構築して、Difyをインストール、起動するところまでをやります。

前提として、今回の環境は以下の通りです。

  • サーバ:EC2 (t3.middle)
  • OS:AlmaLinux9

Docker環境の構築

まずはDockerをインストールするために、Docker用のレポジトリをインストールします。

[root@difytest ~]# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

続いて、Dockerをインストールします。

[root@difytest ~]# dnf -y install docker-ce docker-ce-cli

インストールができたらDockerを起動するのと、自動起動を有効にしておきます。

[root@difytest ~]# systemctl start docker

[root@difytest ~]# systemctl enable docker

これでDocker環境の準備は完了です。

Difyのインストール

Docker環境の準備ができたので、いよいよDifyをインストールします。

Difyはgitからダウンロード(clone)できますが、gitコマンドがサーバに入っていない場合は先に入れます。

[root@difytest ~]# dnf -y install git

Difyをgitからダウンロードして、インストールを実行します。

[root@difytest ~]# cd /usr/local/src/

[root@difytest src]# git clone https://github.com/langgenius/dify.git

[root@difytest src]# cd dify/docker

[root@difytest docker]# docker compose up -d

成功すると10個ほどのコンテナが起動します。

 ✔ Container docker-ssrf_proxy-1      Started                                                                                    1.6s
 ✔ Container docker-sandbox-1         Started                                                                                    1.5s
 ✔ Container docker-web-1             Started                                                                                    1.7s
 ✔ Container docker-redis-1           Started                                                                                    1.5s
 ✔ Container docker-weaviate-1        Started                                                                                    1.9s
 ✔ Container docker-db-1              Started                                                                                    1.8s
 ✔ Container docker-worker-1          Started                                                                                    2.5s
 ✔ Container docker-api-1             Started                                                                                    2.6s
 ✔ Container docker-nginx-1           Started

デフォルトだと80番と443番ポートにマッピングされているので、ブラウザからEC2のIP経由でDifyにアクセス可能です。

DIfyにアクセスしてみる

ブラウザからDifyのインストラーにアクセスします。

http(s)://[IP ADDR]/install

dify01

管理者ユーザの設定になるので、任意の内容を入力して、セットアップします。

dify02

セットアップが完了するとログイン画面に遷移するので、ログインすれば完了です。

dify03

これでDifyでAIアプリを開発できるようになりました。

まとめ

今回はAIアプリ開発プラットフォームであるDify環境を構築してみました。

実際にはここがスタートでDifyを使ってアプリを構築していきますが、Difyの使い方については次回以降で記事にしていこうと思います。