この記事のポイント
- Difyはプログラミング不要で直感的にAIアプリを作成できるプラットフォーム
- 豊富なAIモデル、外部ツール連携、RAG機能など多彩な機能を搭載
- 無料プランから本格開発向け有料プランまで幅広い料金体系を提供
- 条件付きで商用利用可能、ただし制限事項にも注意が必要
- チャットボット、テキスト生成、検索自動化など様々なアプリケーション開発が可能
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
Dify(Dify.AI)は、プログラミングスキルが不要で、誰でも直感的にAIアプリを作成できる革新的なプラットフォームです。
開発者だけでなく、非エンジニアやビジネスユーザーも、ノーコードでチャットボットやコンテンツ生成ツールなどの高度なアプリを構築できます。
この記事では、Difyの特長や利用方法、料金プランなどを詳しく解説します。また、Difyを使った様々なアプリケーション開発事例も紹介し、AIアプリ開発の可能性を探ります。
プログラミングの壁を越えて、誰もがAIの力を活用できる時代の到来を感じさせるDifyの世界をご覧ください。
「AIをマーケティングに活用したいけど、具体的な方法がわからない」とお悩みではありませんか?
AI Marketerなら、効率的なコンテンツ制作と多チャネル展開が簡単に実現できます。
⇒AI Marketerの資料を見てみる
目次
Difyとは
Difyは、AI開発の敷居を下げ、誰もが手軽に高度なAIアプリケーションを構築できる、オープンソースのLLMアプリ開発プラットフォームです。
生成AIを活用したチャットボット、コンテンツ生成ツール、データ分析ツールなど、様々なアプリケーションの開発をサポートします。
直感的なインターフェースと豊富な機能を備えているため、開発者だけでなく非エンジニアやビジネスユーザーも、コーディング不要で高性能なAIアプリを構築できます。
(参考:Dify)
Difyの特徴
Difyは直感的なUIとナレッジ機能、包括的なモデルサポートにより、プログラミング初心者でも手軽にAIアプリを開発できるプラットフォームとなっています。
組織のニーズに合わせて自由にカスタマイズが可能な点も魅力的です。
直感的なノーコードUI
Difyの最大の特徴は、直感的なユーザーインターフェース(UI)を備えていることです。プログラミングの知識がなくても、ドラッグ&ドロップ操作でアプリケーションを構築できます。
パラメーターの設定も簡単に行えるため、初心者でも手軽にAIアプリの開発が可能です。
チャットボット構築例。ノーコードで作成可能
豊富なモデルサポート
Difyは、OpenAI、Anthropic、Azure OpenAI、Llama2、Hugging Face、Replicateなど、さまざまなAIモデルプロバイダーをサポートしています。
目的に応じて最適なモデルを選択でき、さらにモデル間の連携も可能です。 柔軟なモデル活用ができるのが大きな利点です。
Didyで利用可能なAIモデルの一覧 (参考:Dify)
RAGパイプランによるナレッジ機能
Difyには、RAG(Retrieval-Augmented Generation)パイプラインが搭載されています。
この機能を活用することで、組織内に蓄積された独自のドキュメントやデータをもとに回答するチャットボットアプリなどを作成できます。
Difyのナレッジ機能
カスタムツールやAPIの統合
Difyには、Google検索、Slackなどの外部ツールをはじめ、Dell-E、Stable Diffusionといった画像生成AIを組み込める機能があります。
さらに、APIの統合を通じて独自のカスタムツールも作成できます。
外部ツールやAPIと連携させることで、より高度な機能を持つAIアプリ開発が可能になるでしょう。
多様な外部サービスを組み込み可能
豊富なテンプレートとコンポーネント
Difyには、さまざまなアプリケーションのテンプレートとコンポーネントが用意されています。
チャットボット、タスクリスト、カレンダーなど、よく使われる機能をテンプレートとして提供しているため、ゼロからの開発は不要です。
必要に応じてカスタマイズを加えるだけで、短期間でアプリを構築できます。
Difyのテンプレート例
このように、Difyはノーコード/ローコードによるAI開発を実現するだけでなく、豊富なテンプレート、包括的なAIモデル連携、外部ツール統合など、高い拡張性と生産性を備えた特徴を持っています。
Difyの使い方
DifyはGitHubからリポジトリをクローンしてローカルで利用する方法と、ブラウザからSaaSとして利用する方法があります。
用途に合わせて好みの方法を選べます。
ブラウザでの利用方法
-
Difyの公式サイトにアクセスします。
-
右上の「始める」ボタンからアカウントを作成します。
Googleアカウント、もしくはGithubでの登録が求められるので、好きな方を使ってサインアップしてください
-
ホーム画面が開きます。「アプリを作成する」の欄に表示されている「最初から作成する」、「テンプレートから作成」のうち、好きな方を選択します。
今回は「最初から作成する」を選択しました
-
作成したいアプリのタイプ、名前とアイコン、説明を追加します。
今回はアプリタイプをチャットボット、アイコンは初期設定のまま、名前を「chatbot-demo」、説明は空欄にしてあります
-
必要事項を記入します。今回はチャットボットなので手順の欄にプロンプトとして献立を考えるよう入力しました。
今回は日本語で入力しましたが、英語でも入力可能です
-
「デバックとプレビュー」の欄でテスト実行できます。右下に質問文を入力し、送信します。
無事夕食の献立案が出力されました
-
右上の「公開する」ボタン内にある「更新」から保存、公開できます。
「アプリを実行」や「サイトに埋め込む」をクリックすると別ページへ飛びます
ローカルでの利用方法
Difyはオープンソースソフトウェアなので、ローカル環境にもインストール可能です。
こちらの公式ドキュメントを参考に進めていきます。
- GitHubからDifyのリポジトリをクローンします。
Githubがインストールされている環境の場合は、ターミナルで以下のコマンドを実行することでクローンできます。
git clone https://github.com/langgenius/dify.git
- 以下のコマンドを使ってdify内にあるdockerディレクトリに移動し、Dockerを起動します。この操作には若干時間がかかります。
cd dify/docker
docker compose up -d
正しく出力された場合は、以下のように表示されます。
[+] Running 34/4
✔ worker Pulled 269.0s
✔ api Pulled 269.0s
✔ nginx Pulled 72.9s
✔ web Pulled 123.5s
[+] Running 9/9
✔ Container docker-web-1 Started 12.5s
✔ Container docker-db-1 Started 12.6s
✔ Container docker-weaviate-1 Started 12.6s
✔ Container docker-ssrf_proxy-1 Start... 12.7s
✔ Container docker-sandbox-1 Started 12.4s
✔ Container docker-redis-1 Started 12.6s
✔ Container docker-worker-1 Started 11.8s
✔ Container docker-api-1 Started 11.9s
✔ Container docker-nginx-1 Started
3. 正しく実行されているかの確認のため、以下のコマンドを実行します。
docker compose ps
- Difyをアップグレードします。以下のコマンドを使ってdify内のdockerディレクトリに移動し、実行します。
cd dify/docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
以下のような表示が出たら実行完了です!
[+] Running 11/11
✔ Network docker_default Created 0.1s
✔ Network docker_ssrf_proxy_network Created 0.0s
✔ Container docker-db-1 Started 0.9s
✔ Container docker-web-1 Started 0.8s
✔ Container docker-ssrf_proxy-1 S... 1.0s
✔ Container docker-weaviate-1 Sta... 0.9s
✔ Container docker-sandbox-1 Star... 0.7s
✔ Container docker-redis-1 Starte... 0.9s
✔ Container docker-api-1 Started 1.3s
✔ Container docker-worker-1 Start... 1.3s
✔ Container docker-nginx-1 Starte... 1.7s
5. 最後に、ローカル環境を立ち上げるためのリンクにアクセスし、メールアドレスを使ってサインアップを行います。
- ホーム画面が開きます。あとはweb版と同じようなフローで利用できます。なお、ローカル環境ではDockerコンテナ内でワークフローが実行されます。
ローカル利用ではDockerの知識が必要ですが、クラウド環境に依存せずにDifyを利用でき、オンプレミスでの運用も可能になります。利用シーンに合わせて、SaaSかローカルインストールを選択できます。
Difyのワークフローを使ったチャットボットの作成方法
web版を使って、RAGを活用したチャットボットを作ってみます。
テンプレートを使って作成する
先述のように、Difyには多くのテンプレートが用意されています。
まずは、そのうちの一つである「Email Assistant Worklflow」を使ってメール執筆の手助けをするチャットボットを作ってみました。
-
「テンプレートから選択」をクリックし、使いたいテンプレートを選択します。
数多くのテンプレートが用意されています
-
使いたいものを選択し、名前や説明を追記します。
デフォルトではテンプレートの名前が入力されているため、今回はEmail Assinstant Workflow-demoとしました
3. アプリ作成画面が開きます。ここから必要事項を入力していきます。
今回は変更を加えていませんが、内容を変えることで簡単にカスタマイズが可能です
-
右上の「実行」ボタンをクリックし、テスト実行を行います。
今回はメールの内容をさらに完了するように指示しました
-
結果が表示されます。
無事丁寧な文章が出力されました
完成後は「公開する」ボタンから「更新」をクリックして保存しておきましょう。
また、「公開する」ボタンの中にある「アプリを実行する」ボタンをクリックすると、新しいタブが開き、作成したアプリを実行可能です。
そのタブのURLをコピーすることでご自身のウェブサイトなど任意の場所に埋め込むことも可能になります。
「詳細」や「トレース」からどのように実行されたかや、どの程度トークンを使用したか、処理にかかった秒数などを確認できます。
どんな仕組みで動いているかの確認にも便利です
このように直感的な操作でアプリの作成が可能なため、コーディングの経験や知識に自信がない方でも、web版を使うことで簡単に操作、実行することができます。
テンプレートを使わずにカスタマイズする
Difyではこれらのテンプレートを使わず、好きなように機能を組み合わせてアプリを作ることも可能です。
今回はデモとしてメールをよりフォーマルに、もしくはラフにするものを作成してみます。
-
全体像はこのようなものになりました。
各ノードの解説は後述します
今回はほとんどノーコードで作成しています。
-
ホーム画面から「最初から作成」を選択し、「ワークフロー」を選択し、名前をつけます。必要に応じて説明も追加します。
今回はdemo-playとしました
-
機能の追加をします
ホーム画面が開き、さまざまな機能を追加できるようになります。
今回は最初の「開始」ノードで以下の機能を追加します。
- 開始のところでユーザーにどういったものを作りたいのか選択してもらう
- 校正したいテキストを入力してもらう
- メールの最後に入力するユーザーの名前を入れる
まずは開始を選択し、入力フィールドの+をクリック、機能を入力します。
今回は選択式のため、「段落」を選択しました
また、テキストを入力する部分も作るため、さらに+をクリックし、追加していきます。
こちらはテキストのため「ショートテキスト」を選択しています
さらに、最後の署名用の名前欄を作りたいので「ショートテキスト」を使って名前記入欄を作ります。
こちらは最低文字数も記入してあります
- 「次のステップ」の中にある+をクリックし、次の機能を追加します。今回は二種類の選択肢を用意しているので、それらの判別のために「質問分類機」を使用しています。
クラスにそれぞれの選択肢から分岐するように作成しています
- 以下、2と3の繰り返しで機能を足してアプリを作っていきます。今回は入力に対してLLM(大規模言語モデル)で出力を作成したいので、LLMを選択しています。
「System」欄にプロンプトを入力します。
今回はDifyのテンプレートの中にあったものを変数のみ入れ替えて使用しました
- テンプレートを追加します。この機能を挟むことで、出力結果をまとめることができるようになります。
今回は、LLMによるメールの生成結果と、署名用の名前を足したいので以下のように記入しました。
エディタ欄に入力すると自動的に入力変数も補完してくれる場合もあります
- 最後に必ず「終了」ブロックを組み込みます。テンプレート機能でまとめたものを出力するために、変数はoutputを入力しています。
ここまでできたら完成です
これで完成です!
完成したものの動作テストを行う
実際に「実行」ボタンからテストランしてみました。
選択したスタイルは「formal」、入力内容は以下の通りです。
なお、名前は「Demo-name」としています。
Dear, Demo-player,
I hope this message finds you well.
I am writing to inquire about your availability for a meeting to discuss [briefly mention the purpose of the meeting]. I believe that a discussion on this topic would be beneficial and help us to [mention the expected outcome or benefit of the meeting].
Could you please let me know your availability over the next week? I am flexible and can adjust my schedule to accommodate your convenience. Specifically, I am available on the following dates and times:
[Date and Time Option 1]
[Date and Time Option 2]
[Date and Time Option 3]
If none of these times work for you, please suggest a few alternatives that fit your schedule.
Thank you very much for your time and consideration. I look forward to your response and hope we can find a mutually convenient time to meet.
Best regards,
このように出力されました。実際に機能していることがわかります!
Dear Demo-player,
I hope this message finds you well.
I am writing to inquire about your availability for a meeting to discuss [briefly mention the purpose of the meeting]. I believe that a discussion on this topic would be beneficial and help us to [mention the expected outcome or benefit of the meeting].
Could you please let me know your availability over the next week? I am flexible and can adjust my schedule to accommodate your convenience. Specifically, I am available on the following dates and times:
- [Date and Time Option 1]
- [Date and Time Option 2]
- [Date and Time Option 3]
If none of these times work for you, please suggest a few alternatives that fit your schedule.
Thank you very much for your time and consideration. I look forward to your response and hope we can find a mutually convenient time to meet.
Best regards,
Demo-name
「informal」で実行すると、以下のようになりました。概ねこちらの要望を正確に汲み取っていることがわかります。
かなりラフなメールが出力されました
このように、自分好みにカスタマイズして使いやすいアプリを作ることができます。
OpenAIにて提供されているGPTsに似ていますが、カスタマイズの容易さと拡張性の点ではDifyが優秀かもしれません。
Difyの料金体系
Difyの料金体系は、手軽に始められる無料プランから、本格的な開発に対応する有料プランまで、幅広く用意されています。
支払い方法は月払いと年払いの2種類が用意されており、年間プランの場合は2ヶ月分の割引が適用されます。
プラン | サンドボックス (無料プラン) | プロフェッショナル | チームプラン | エンタープライズプラン |
---|---|---|---|---|
料金 | 無料 | 月額59ドル (年額590ドル) | 月額159ドル (年額1,590ドル) | 要相談 |
クレジット | GPTの無料トライアル200回まで | 5,000回/月 | 10,000回/月 | 無制限の機能が用意されている |
アプリの生成回数 | 10回 | 50回 | 無制限 | 無制限 |
チームメンバー | 1人 | 3人 | 無制限 | 無制限 |
容量 | 5MB | 200MB | 1GB | カスタム |
ログの履歴 | 30日間 | 無制限 | 無制限 | 無制限 |
カスタムツール | 利用不可 | 10種類 | 無制限 | 無制限 |
サポート | コミュニティフォーラム | メールサポート | 優先メール&チャットサポート | 専用のSlackチャンネル、電話、メールによるサポート |
Difyの料金体系表(月額)
Difyの商用利用について
Difyは商用利用が可能なオープンソースソフトウェア(OSS)ですが、一部条件があります。
Difyの商用利用の可否
商用利用が制限されるケース
- マルチテナントSaaSサービスの提供
Difyのソースコードを使って、複数の企業や組織が共有して利用するクラウドサービスを運営する場合。
例えば、「Difyを使ったチャットボットプラットフォームを運営し、複数の企業に提供する場合」がこれにあたります。
- ロゴや著作権情報の削除・変更
Difyを使用する際に、Difyコンソールに表示されるロゴや著作権情報を削除したり、変更したりする場合。
上記に当てはまるサービスを提供する場合は、Difyのビジネスチーム(business@dify.ai)に問い合わせをし、商用ライセンスを取得する必要があります。
商用利用が可能なケース
- Difyを社内のシステムやアプリケーションに組み込んで使用する。
- Difyを利用して開発したアプリケーションを販売する。
- Difyをカスタマイズして、特定の顧客向けにサービスを提供する。
これらの場合、Difyの商用利用は基本的に許可されています。
例えば、「受託開発企業A」が「クライアントB」のためにDifyを使って特定のアプリケーションを開発する場合です。
この場合、特別な許可は不要だと考えられます。
ただし、Difyのロゴや著作権情報を適切に表示する必要があります。
Dify オープンソースライセンス規約 (引用:Dify)
Difyでできること
Difyで作成できるアプリケーションは、チャットボットやテキストジェネレーター(物語やスピーチなど)、検索やキュレーションを自動化するエージェントなど、さまざまです。
AIの出力を活用したアプリケーションであれば、Difyで手軽に作れるでしょう。
ここでは、Xで話題のDifyを活用して作成されたアプリを紹介していきます。
最新ニュースを取り入れたチャットボットの作成
話題のDifyでサクッとアプリ作ってみたら相当良い感じ。Google Searchの検索結果をLLMで要約して、最新ニュースの情報を取り入れた文章生成ができる。検索クエリとアプリ内の設計は工夫が必要だけど、多くのドメインで活用できるアプリがバンバン内製できそう。DS系人材も解析+アプリ内製で進化しよう pic.twitter.com/TH4dXpXMRf
— brainapp|より良く生きるを実装する (@brainapp12) May 7, 2024
論文検索システム
とりあえずDifyで論文検索システム作ってみた。APIで取ってきた情報LLMが適当に仕分けしてくれる。
— T⁷ MD,PhD 🇺🇸|アメリカで研究&開発 (@tokitky) June 2, 2024
今までプログラムでやらせていたデータ処理部分をLLMが勝手に処理してくれるのが面白い。#Dify pic.twitter.com/yluzWmA1C4
ブラウジング中にWebページを要約できるアプリ
【これ便利!】Google Chrome上でWebページの内容を要約できるアプリを作ってみた👀
— かずこぱ@最新AIをサクッと解説 (@kazu_copilot) May 6, 2024
今話題の「Dify」を使って、Google Chrome上でWebページの内容を要約できるアプリを作成してみました!
◾️主な機能◾️
1️⃣ URLを渡せば、AIがWebページの内容を要約してくれる
2️⃣… pic.twitter.com/g4XUHRISn2
写真から料理名とカロリー計算するアプリ
Difyで写真から料理名とカロリーを判定してNotionのDBに保存するワークフロー作ってみた。
— hiryu (@hirykawa_) May 17, 2024
カロリーの算出がだいぶ怪しいので外部DBから持って来れるとよさそう。
コーディング不要でこういうのできるの楽しいわな。 pic.twitter.com/VyLrgQ6H7L
まとめ
本記事では、オープンソースのLLMアプリ開発プラットフォームである「Dify」の概要と特徴について解説しました。
Difyは、直感的なノーコードUIや豊富なモデルサポート、ナレッジ機能、外部ツールとの統合など、多彩な機能を備えており、プログラミング初心者でも手軽にAIアプリを開発できるプラットフォームです。
無料プランから本格的な開発に対応する有料プランまで、幅広い料金体系が用意されており、用途に合わせて選択できます。また、商用利用も一定の条件の下で許可されています。
Difyは、AIアプリ開発の敷居を下げ、より多くの人々がAIの恩恵を享受できる世界の実現を目指しています。今後も、さらなる機能拡充と利便性の向上が期待されるプラットフォームです。