SIOS Tech Labの龍ちゃんです。2024年は「誰でも簡単に」AIツールが作れるDifyが登場して大いに沸いていましたね。弊社では、Azureを利用したサービス開発が多くあるため、Azure OpenAI Serviceがリリースしてそちらばかり触っていました。2025年はDifyなどのノーコード・ローコードツールを駆使して、AIサービスの開発・検証を進めていきたいと考えています。
いまから入門:Difyとは
生成AIアプリ開発ツール「Dify」の特徴については、おそらく皆さんなんとなくわかっているかと思います。実際触ってみた感想としては、手軽さに驚いています。
専門的なAIエンジニアやアプリエンジニアがいなくても、GUIの操作で簡単に生成AIアプリを作ることができます。また、豊富なLLMモデルと接続することができるので、異なる会社提供のLLMを同じ環境で動作するアプリなども自作することができます。
また、OSSでソースコードが提供されているので、必要に応じてどこまでもカスタマイズを行うことができます。非エンジニアからエンジニアまで、幅広いユーザー層にとって有用なツールです。
Difyブームも落ち着いて、ドキュメントやナレッジも豊富になった2024年でした。幅広い領域で使用ユーザーがいる生成AI活用ツールとして弊社でも注目していました。これから入門して追いつきたい方に向けてナレッジをまとめていきます。
Dify開発環境
Difyの開発をお手軽に始める方法としては、「Dify Cloud」「Docker Compose」「ローカルソースコード」が提供されています。複数の観点で利点などをまとめた表が以下になります。
開発環境 | 手軽さ | カスタマイズ性 | デプロイ |
---|---|---|---|
Dify Cloud | 不要 | ||
Docker Compose | Docker環境 | ||
ローカルソースコード | 複数必要 |
開発環境 | ストレージ | 複数ユーザー | SSO |
---|---|---|---|
Dify Cloud | クラウド | プラン次第 | 構築済 |
Docker Compose | 実行環境 | 可能 | 要構築 |
ローカルソースコード | 実行環境に保存 | 可能 | 要構築 |
「Dify Cloud」は一番お手軽に始めることができます。サイトにアクセスしてGoogleでログインすれば、すぐに利用開始です。非エンジニアの方が試すには、一番楽な方法となります。
「Docker Compose」では、Docker環境が必要になります。ソースコードをGitから持ってきて、Docker Composeコマンドを実行するだけで環境を立ち上げることができます。情報も実行環境に保存されるため、ローカル実行ではローカルに情報が保存されます。
「ローカルソースコード」では、複数の環境(データベース,Python,Node,etc…)が必要なります。ソースコードをGitから持ってきて複数の環境での起動が必要になるため、だいぶ上級者向きの環境構築となります。それぞれの環境をコードレベルで起動することができるので、カスタマイズ性はとても高いです。
それぞれの環境の特徴としてはこんな感じ!
- Dify Cloude:とてもお手軽!非エンジニアの方はここから始めよう
- Docker Compose:クラウド上で作業したくないエンジニア、カスタマイズはあんまりしないけどローカルマシンで実行したい人向け
- ローカルソースコード:がっつりカスタマイズしたい人向け!起動までの道のりは長い!
今回のガイドでは、「Dify Cloud」と「Docker Compose」での環境構築について記載していきます。
Dify Cloud
事前準備として以下のものが必要となります。
- 有効なメールアドレス or Google アカウント or GitHubアカウント
Dify.aiにアクセスしてログインすれば、すぐに利用可能です。以下、最初の画面です。
1人での利用で、軽いお試しであれば無料プランで作業することができます。複数人で開発を進めたい場合は、Planをアップグレードが利用可能です。この辺りは、使用規模と利用用途によって変わるかと思います。
Docker Compose
事前準備として以下のものが必要となります。
- Git
- Docker 19.03~
- Docker Compose 1.28~
こちらの公式リファレンスを参考に作業を進めていきます。まずはGitを使ってソースコードをローカルに持ってきましょう。
git clone https://github.com/langgenius/dify.git
持ってきたら、dokcerフォルダに移動して、環境変数をコピーしてDocker Composeを用いて起動します。
cd dify/docker
cp .env.example .env
docker compose up -d
これで、http://localhost/installにアクセスすれば、初期設定画面が出てきます。あとは画面のノリに従って設定すれば利用可能になります。
つまづいたポイント
Dify DevContainer起動
DifyのリポジトリにDevContainerの設定が入っていました。最初は、こちらで起動できるのかと考えました。環境内には、node環境、Python環境、Docker環境がセットされていました。そのため、ローカルソースコード開発用の設定だと考えられます。
Dify ナレッジが消える・ナレッジ作成ができない
Difyでは、独自の文書を知識(ナレッジ)として登録することができます。その際につまづいたポイントとしては以下になります。
- ナレッジ作成後、すぐはナレッジ利用ができるがすぐ参照することができなくなる
- ナレッジ作成ができない
調べていくと、DifyのDocker Composeに追加で設定をしてあげる必要が出てきました。weaviateのポート設定を追記することで解消することができました。
weaviate:
image: semitechnologies/weaviate:1.19.0
ports:
- "8000:8000"
profiles:
- ""
- weaviate
restart: always
volumes:
# Mount the Weaviate data directory to the con tainer.
- ./volumes/weaviate:/var/lib/weaviate
environment:
# The Weaviate configurations
# You can refer to the [Weaviate](<https://weaviate.io/developers/weaviate/config-refs/env-vars>) documentation for more information.
PERSISTENCE_DATA_PATH: ${WEAVIATE_PERSISTENCE_DATA_PATH:-/var/lib/weaviate}
QUERY_DEFAULTS_LIMIT: ${WEAVIATE_QUERY_DEFAULTS_LIMIT:-25}
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: ${WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED:-false}
DEFAULT_VECTORIZER_MODULE: ${WEAVIATE_DEFAULT_VECTORIZER_MODULE:-none}
CLUSTER_HOSTNAME: ${WEAVIATE_CLUSTER_HOSTNAME:-node1}
AUTHENTICATION_APIKEY_ENABLED: ${WEAVIATE_AUTHENTICATION_APIKEY_ENABLED:-true}
AUTHENTICATION_APIKEY_ALLOWED_KEYS: ${WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS:-WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih}
AUTHENTICATION_APIKEY_USERS: ${WEAVIATE_AUTHENTICATION_APIKEY_USERS:-hello@dify.ai}
AUTHORIZATION_ADMINLIST_ENABLED: ${WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED:-true}
AUTHORIZATION_ADMINLIST_USERS: ${WEAVIATE_AUTHORIZATION_ADMINLIST_USERS:-hello@dify.ai}
別環境で、localhost:8000番を使用していてポートの設定が勝手に割り振られたなどの可能性は無限大です。一度、コンテナを落として再アップしてください。
おわり
今回は、Difyの環境構築について解説しました。クラウド版とDocker Compose版の2つの方法を紹介しましたが、初めて触る方はクラウド版から始めることをお勧めします。次回は、実際にDifyを使って簡単なAIアプリケーションを作成する方法について解説していきたいと思います。
これからDifyを使ってゴリゴリ開発して、ブログ投稿していきます。
ではまた!