はじめに
最近生成AI界隈で流行っていると噂のDify(ディファイ)の環境を構築してみました。
DifyはオープンソースのAIアプリ開発プラットフォームです。
特徴としては、様々なLLMと組合わせたAIアプリをノーコードで構築できる優れものです。
語弊を恐れず超ざっくり言えば、自分専用のChatGPTみたいなChatBotをノーコードで作成することができるツールです。もちろんChatBot以外のアプリも工夫次第でいくらでも作れると思いますが、導入の敷居として一番低いのはChatBotからかなと思います。
ただ、これだけだとChatGTP使えばいいやんってなるんですが、Difyの強味として比較的簡単にRAG(拡張検索生成)を組み込むことができるので、例えば自社の独自ノウハウなどを基にLLMから回答させるといったことができます。
これがChatGPTにはできなくて、Difyで独自のChatBotなどを作るメリットです。
Difyを利用するには大きく2種類の方法があります。
- dify.aiが提供するSaaSサービスを利用する
- 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のインストラーにアクセスします。
管理者ユーザの設定になるので、任意の内容を入力して、セットアップします。
セットアップが完了するとログイン画面に遷移するので、ログインすれば完了です。
これでDifyでAIアプリを開発できるようになりました。
まとめ
今回はAIアプリ開発プラットフォームであるDify環境を構築してみました。
実際にはここがスタートでDifyを使ってアプリを構築していきますが、Difyの使い方については次回以降で記事にしていこうと思います。