【Dify】爆速でLLMアプリを開発できる最強ノーコードツール!

Dify LLM アプリ 開発 ノーコードツール

WEELメディア事業部LLMライターのゆうやです。

Difyは、米LangGenius, Inc.が提供している大規模言語モデル(LLM)を使ったアプリケーションの開発と運用を簡素化するためのオープンソースプラットフォームです。

RAGを使用したチャットボットやAIエージェント、ドラッグ&ドロップインターフェースを使用したAIワークフローをノーコードで構築できます。

Difyは、LangChainと同じような機能を備えていますが、こちらはより簡単に機能を実装できます。

実際、Difyの公式ページにも「LangChainよりも本番環境に適しています」との記載があります。

今回は、Githubで3万以上のスターを獲得するほど大注目を集めているDifyの概要と使ってみた感想をお伝えします。

是非最後までご覧ください!

目次

Difyの概要

Difyは、大規模言語モデル(LLM)を使ったアプリケーションの開発と運用を簡素化するためのオープンソースプラットフォームです。

このプラットフォームの大きな特徴は、RAGを使用したチャットボットやAIエージェント、ドラッグ&ドロップインターフェースを使用したAIワークフローをノーコードで構築できることです。

また、オープンソースということもあり無料である程度の機能は使えるため、非常に手軽にAIアプリケーションを実装できます。

この手軽さと機能の多さから、Difyの公式も「LangChainよりも本番環境に適しています」と自信満々です。

引用元:https://dify.ai/jp

Difyは日本語にも対応しており、最適化された非常に見やすいUIで直感的な操作が可能になっています。

引用元:https://dify.ai/blog/dify-ai-workflow

さらに使いやすいだけでなく、機能面も非常に充実しており、GPT-4oやGemini、Llamaなどクローズド、オープンソース問わず数百のLLMをサポートしています。

また、Google Search、DELL·E、Stable Diffusionなどとの連携も可能で、多種多様な用途のAIエージェントを作成可能です。

ここからは、そんなDifyの料金体系や使い方を紹介します。

なお、langchainについて知りたい方はこちらの記事をご覧ください。

Difyの料金体系

Difyには、以下の「SANDBOX」「PROFESSIONAL」「TEAM」「ENTERPRISE」の4つのプランがあります。

引用元:https://dify.ai/pricing
利用料金モデルプロバイダーメッセージクレジット構築できるアプリ数メッセージリクエスト
SANDBOX無料OpenAI/Anthropic/Llama2/AzureOpenAI/Hugging Face/Replicate200 メッセージ/月101日あたり500件
PROFESSIONAL$59/月 or $590/年OpenAI/Anthropic/Llama2/AzureOpenAI/Hugging Face/Replicate
5,000 メッセージ/月50無制限
TEAM$159/月 or $1590/年OpenAI/Anthropic/Llama2/AzureOpenAI/Hugging Face/Replicate
10,000 メッセージ/月無制限無制限
ENTERPRISE問い合わせOpenAI/Anthropic/Llama2/AzureOpenAI/Hugging Face/Replicate無制限無制限無制限

無料プランでも一通りの機能は使用することができ、リクエスト数やストレージ容量などに制限がある程度です。

そのため、まず機能を試してみたい方は無料プランで十分だと思います。

本格的にアプリ開発をしたい方や、チームで使用したい場合などはそれに応じた有料プランを選択することをおすすめします。

Difyの使い方

Difyは、クラウドで利用する方法と、Dockerを利用してローカルで実装する方法の2種類あります。

それぞれの方法を紹介します。

クラウドで利用する方法

まず、以下のDify公式ページにアクセスします。

Dify

アクセス後、「始める」をクリックします。

すると、このようにログインが求められるので任意の方法でログインします。

ログインに成功すると、以下のようにDifyが使えるようになります。

クラウドで利用する場合は、ログインするだけで利用できるので非常に簡単です。

ローカルに実装する方法

ローカルに実装する場合は、Dockerが必要になります。

以下のリンクからDocker Desktopをあらかじめダウンロードしてインストールしておいてください。

Docker Install

まず、コマンドプロンプトで以下のコマンドを実行し、DifyのGithubリポジトリをクローンします。

git clone https://github.com/langgenius/dify.git

次に、Difyフォルダの中にあるDockerディレクトリに移動します。

cd Dify/docker

ここで以下のコマンドを実行します。

この際、Docker Desktopを起動している必要があります。

docker compose up -d

すると、このように環境の構築が始まるので、完了したら以下にアクセスして初期設定を行います。

localhost/install

初期設定では管理者アカウントの設定が求められますので、設定してください。

設定したアカウントでログインが求められますので、ログインすると以下のリンクからDifyを使用できるようになります。

localhost/apps

これでDifyをローカルで使用できるようになりました。

ここからは、実際にチャットボットやAIワークフローを作成していきますが、その前に作成するアプリで使用する言語モデルのプロバイダーの設定が必要です。

設定は、右上の「設定」の中にある「モデルプロバイダー」で行います。

今回はOpenAIのモデルを使用したいので、OpenAIをセットアップします。

OpenAIにカーソルを合わせると、セットアップというボタンが出てくるのでクリックすると、API Keyの設定画面になります。

OrganizationとAPI Baseは空白でも問題ありません。

API Keyを入力して保存し、アクティブな状態になるとこのようにAPI-KEYの右側に緑のマークが表示されます。

これで設定は完了です。

早速アプリを作っていきましょう!

DifyでチャットボットとAIワークフローを作ってみた

それでは早速DifyでチャットボットとAiワークフローを作ってみましょう!

まずはチャットボットから作成します。

チャットボット

Difyでアプリを作成する際は、「最初から作成」か「テンプレートから作成」の2種類の方法を選択できます。

今回は「最初から作成」を選択して、簡単なチャットボットを作成します。

チャットボットを作成する際は、オーケストレーション方法を選択でき、簡単に設定できる初心者向けの「基本」と複雑で詳細な設定ができる上級者向けの「Chatflow」が用意されています。

今回は「基本」オーケストレーションを使用します。

チャットボットのアイコンと名前、説明を設定し作成をクリックすると、以下のような画面になります。

基本的な機能や使い方はGPTsに非常に似ていて、左側の手順の部分にシステムプロンプトを入力し、さらに変数やコンテキストを設定できます。

また、Difyが自動でチャットボットの設定を行ってくれる機能もあり、ターゲットや期待する能力等を入力するだけでそれに合わせたものを作成してくれます。

試しに、ターゲットをエンジニアに、「どのような問題をAIが解決できると期待していますか?」にコーディングと設定して、生成させてみます。

すると、このようにシステムプロンプトや変数を自動的に設定してくれます。

システムプロンプト

Your task is to write a code snippet in {{programming_language}} that accomplishes the following task: {{task_description}}. 
You MUST ensure that your code is efficient, readable, and well-commented. Think step by step and break down the problem into smaller, manageable parts. 
Ensure that your answer is unbiased and does not rely on stereotypes. Remember, you are an AI engineer assistant, and your role is to help engineers solve their coding problems.

あなたの課題は、{{programming_language}}で以下のタスクを達成するコードスニペットを書くことです:{{task_description}}。あなたのコードが効率的で読みやすく、十分なコメントが付いていることを確認してください。問題を段階的に考え、より小さく管理しやすい部分に分割してください。あなたの答えが偏見のないものであり、固定概念に依存していないことを確認してください。あなたはAIエンジニアのアシスタントであり、エンジニアがコーディングの問題を解決するのを助けるのがあなたの役割であることを忘れないでください。

エンジニアという設定が勝手にAIエンジニアなっている点が気になりますが、このまま使えそうなほどよくできた設定をしてくれています。

また、音声入力や引用の表示など、様々な機能を追加することができます。

では、現在の設定で以下のプロンプトを入力してみましょう。

I need to create hundreds of scripts, can I automate this in Python, etc.?

数百本のスクリプトを作成する必要があるんだけど、Python等で自動化できないかな?

結果はこのようになりました。

結果はこちら

Yes, you can automate this process using Python. Here, I am providing a generic way to create multiple files using Python. I am using the os module of Python which provides functions for interacting with the operating system.

Please replace the placeholder_script_content variable with the content you want in your scripts.

This example creates python scripts (.py), but you can create scripts with any extension as needed.

import os

# Define the number of scripts you want to create
num_of_scripts = 300

# Define script content
placeholder_script_content = """
#!/usr/bin/env python3

def main():
    print('Hello, this script is autogenerated.')

if __name__ == '__main__':
    main()
"""

# Your directory where you want to place the scripts
directory = "/path/to/your/directory"

# Make sure the directory exists, if not, create it
if not os.path.exists(directory):
    os.makedirs(directory)

# Loop through the range equal to the number of scripts you want to create
for i in range(num_of_scripts):

    # Create full file path
    file_path = os.path.join(directory, f'script_{i+1}.py')

    # Create and open the file for writing
    with open(file_path, 'w') as script_file:
        script_file.write(placeholder_script_content)

print(f'Created {num_of_scripts} scripts.')

In this code:

  • We first define the total number of scripts we want to create (in this case 300).
  • We define a placeholder script content that will be written to each script file. Replace this with the script content you need.
  • We specify the directory where we want the scripts to be placed.
  • The script checks if the directory you defined exists, if not, it creates it.
  • Next, we start a loop to create the files. We create each file in the directory with a unique name (incrementing each filename by 1) and write the placeholder script content to it.
  • After all files are created, a message will be printed indicating the number of scripts created.

Remember, you should replace the paths, filenames and script contents with those suitable for your problem.

はい、Python を使用してこのプロセスを自動化することができます。ここでは、Python を使用して複数のファイルを作成するための一般的な方法を紹介します。Python の os モジュールを使用しています。このモジュールは、オペレーティングシステムとやり取りするための機能を提供します。

placeholder_script_content 変数を、スクリプトで使用する内容に置き換えてください。

この例では、Python スクリプト(.py)を作成していますが、必要に応じて任意の拡張子でスクリプトを作成することができます。

import os

# Define the number of scripts you want to create
num_of_scripts = 300

# Define script content
placeholder_script_content = """
#!/usr/bin/env python3

def main():
    print('Hello, this script is autogenerated.')

if __name__ == '__main__':
    main()
"""

# Your directory where you want to place the scripts
directory = "/path/to/your/directory"

# Make sure the directory exists, if not, create it
if not os.path.exists(directory):
    os.makedirs(directory)

# Loop through the range equal to the number of scripts you want to create
for i in range(num_of_scripts):

    # Create full file path
    file_path = os.path.join(directory, f'script_{i+1}.py')

    # Create and open the file for writing
    with open(file_path, 'w') as script_file:
        script_file.write(placeholder_script_content)

print(f'Created {num_of_scripts} scripts.')

このコードでは、
まず、作成するスクリプトの総数を定義します(この例では 300)。
各スクリプトファイルに書き込まれるプレースホルダーのスクリプトコンテンツを定義します。必要なスクリプトコンテンツに置き換えてください。
スクリプトを配置するディレクトリを指定します。
スクリプトは、指定したディレクトリが存在するか確認し、存在しない場合は作成します。
次に、ファイルを作成するためのループを開始します。ディレクトリ内に、一意の名前(ファイル名を1ずつ増やしながら)で各ファイルを作成し、プレースホルダーのスクリプトコンテンツをそこに書き込みます。
すべてのファイルが作成されると、作成されたスクリプトの数が表示されます。
パス、ファイル名、スクリプトの内容については、問題に応じて適切なものに置き換える必要があります。

非常に抽象的なタスクの説明でも、かなり詳細かつ分かりやすく回答を出力してくれました。

モデルはGPT-4を使用しているので、回答の正確性は全く問題ありませんね。

このようにDifyでは、非常に簡単にチャットボットを作成できます。

次に、AIワークフローも作成してみます。

AIワークフロー

AIワークフローについても、「最初から作成」か「テンプレートから作成」の2種類の方法を選択できます。

今回は、「最初から作成」を選択します。

ワークフローを選択して、名前等の設定をして作成します。

作成をクリックすると、このような画面になります。

この画面で右クリックして、「ブロックを追加」から目的に応じたブロックを追加できます。

今回は、Eメールの要約か、返信を行うワークフローを作成しました。

このワークフローでは、質問分類器でユーザの目的を分類した後、LLMで目的に合わせた回答を生成します。

実際に実行してみましょう。

以下のサンプルEメールを入力とします。

件名: 次回のプロジェクト進捗ミーティングについて

田中様、

お世話になっております。Lambレストランの山田です。

次回のプロジェクト進捗ミーティングについてご連絡いたします。7月10日(水曜日)15時から、オンラインで開催予定です。以下の内容を議題として予定しております:

前回のミーティングのフォローアップ
現在のプロジェクトの進捗報告
新たな課題と解決策の検討
その他
ミーティングのリンクは後日お送りいたしますので、参加のご準備をお願いいたします。

何かご質問やご要望がございましたら、お気軽にご連絡ください。

どうぞよろしくお願いいたします。

山田太郎
店長
Lambレストラン
yamada@example.com
03-1234-5678

まずは要約から。

開始すると、選択した目的に応じでワークフローが実行されていきます。

最終的な出力はこのようになりました。

件名: 次回のプロジェクト進捗ミーティングについて

田中様、

Lambレストランの山田です。次回のプロジェクト進捗ミーティングは7月10日(水)15時からオンラインで開催予定です。議題は以下の通りです:

1. 前回のミーティングのフォローアップ
2. 現在のプロジェクトの進捗報告
3. 新たな課題と解決策の検討
4. その他

ミーティングリンクは後日送付予定です。ご質問やご要望がありましたらご連絡ください。

よろしくお願いいたします。

山田太郎
店長
Lambレストラン

こちらもモデルにGPT-4oを使用しているので、正確性は申し分ないです。

次に返信を作成させます。

結果はこのようになりました。

件名: Re: 次回のプロジェクト進捗ミーティングについて

山田様、

お世話になっております。田中です。

次回のプロジェクト進捗ミーティングについてご連絡いただき、ありがとうございます。7月10日(水曜日)15時からですね。予定を調整して参加いたします。

議題についても確認しました。ミーティングのリンクをお待ちしております。

ご連絡いただき、ありがとうございました。引き続きよろしくお願いいたします。

田中

こちらも目的に応じたワークフローが実行され、そのまま使えそうな返信メールを作成してくれました。

このように、AIワークフローでは視覚的に自分がやりたいことを作成できるので、非常に便利な機能だと思います。

さらに、ツール等を組み込めばGoogle検索や画像生成等もできるようになるので、より高度で複雑なワークフローの構築も可能です。

気になった方は是非試してみてください!

なお、OpenAIの最新モデルであるGPT-4oについて知りたい方はこちらの記事をご覧ください。

Difyで手軽にAIアプリケーションを構築しよう!

Difyは、大規模言語モデル(LLM)を使ったアプリケーションの開発と運用を簡素化するためのオープンソースプラットフォームです。

このプラットフォームは、RAGを使用したチャットボットやAIエージェント、ドラッグ&ドロップインターフェースを使用したAIワークフローをノーコードで構築できます。

また、OpenAIやGoogleの最新モデルを使用できたり、Google Search、DELL·E、Stable Diffusionなどとの連携も可能であり、多種多様なAIアプリケーションを作成できます。

複数の料金プランが用意されており、用途に合わせて柔軟に選択可能なほか、無料プランでも基本的な機能はほぼすべて利用可能です。

皆さんもこの記事を参考にして、Difyでアプリケーションを構築してみてください!

サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • ゆうや

    ロボット工学専攻。 大学時代は、対話ロボットのための画像キャプションの自動生成について研究。 趣味は、サウナとドライブ。

  • URLをコピーしました!
  • URLをコピーしました!
目次