Dify(ディファイ)を使って独自のAIアプリケーションを開発したいけれど、設定項目が多くてどこから手をつければ良いかわからない…とお悩みではありませんか?
この記事では、DifyのWeb管理画面(スタジオ)を使用して、AIモデルを作成する具体的な手順と、各機能ブロックの役割について詳しく解説します。ゼロから作成する方法だけでなく、テンプレート(DSLファイル)を活用した効率的な開発方法も紹介します。
Difyアプリの作成方法:2つのアプローチ
Difyでアプリケーションを作成するには、「最初から作成する」方法と「DSLファイルからインポートする」方法の2種類があります。
1. 最初から作成(スクラッチ開発)
自分のアイデアをゼロから形にする場合はこちらを選択します。アプリのタイプ(チャットボット、テキスト生成など)を選び、アイコンや名前を設定してスタートします。

2. DSLファイルから作成(テンプレート利用)
既存の設定ファイル(DSL)を読み込んで、素早くアプリを構築する方法です。Dify DSLは、AIアプリの設定情報(プロンプト、モデル設定、フローなど)が記述されたYML形式の標準ファイルです。
- ローカルファイルのインポート: コミュニティで配布されているテンプレートや、以前バックアップしたDSLファイルを持っている場合は、「DSLファイルをインポート」を選択します。
- URL経由でのインポート: 公開されているDSLファイルのURL(例:
https://example.com/your_dsl.yml)を指定して直接取り込むことも可能です。
注意: DSLファイルのインポート時にはバージョンの互換性チェックが行われます。バージョンが大きく異なる場合、正しく動作しない可能性があるためご注意ください。
ワークフローを構成する「ブロック」の解説
Difyのワークフローやチャットフローは、様々な機能を持つ「ブロック(ノード)」を組み合わせることで構築します。主要なブロックの役割を理解しておきましょう。
| 分類 | ブロック名 | 機能・役割 |
|---|---|---|
| 大規模言語モデル | LLM | GPT-4などのモデルを利用して、質問への回答や文章生成を行います。 |
| 知識検索 | ナレッジベース(RAG)からユーザーの質問に関連する情報を検索し、AIに参照させます。 | |
| 回答 | ユーザーへの返信内容を定義します。固定テキストや変数を組み合わせて柔軟な応答を作成できます。 | |
| エージェント | AIが自律的にツールを選択・実行し、複雑なタスクを解決するためのコンポーネントです。 | |
| 問題理解 | 質問分類器 | ユーザーの質問内容を分析し、条件に応じて処理を分岐させるための分類を行います。 |
| ロジック | IF/ELSE | 条件分岐を設定し、フローを2つのルートに分けます。 |
| イテレーション | リスト形式のデータに対して、同じ処理を繰り返し実行します(反復処理)。 | |
| ループ | 特定の条件を満たすまでタスクを繰り返します。 | |
| データ変換 | コード実行 | PythonやNode.jsコードを実行して、複雑なデータ加工や計算を行います。 |
| テンプレート | Jinja2言語を使用して、テキストのフォーマットやデータ変換を行います。 | |
| 変数集約器 | 分岐した複数の処理結果を一つの変数にまとめ、後続の処理で扱いやすくします。 | |
| テキスト抽出 | アップロードされたドキュメントファイルからテキスト情報を抽出・解析します。 | |
| 変数代入 | 変数に値を書き込んだり、別の変数の値を代入したりします。 | |
| パラメータ抽出 | 自然言語の入力から、API呼び出し等に必要な構造化データを抽出します。 | |
| ツール | HTTPリクエスト | 外部のAPIやサーバーにリクエストを送信し、データの取得や連携を行います。 |
| リスト処理 | 画像やファイルなど、複数のデータをリストとして一括処理します。 |
アプリに「機能」を追加する
チャットボットの利便性を高めるための追加機能設定です。

| 機能 | 説明 |
| 会話の開始 | ユーザーがチャットを開いたときに表示されるウェルカムメッセージを設定します。 |
| フォローアップ | 回答の後に「次の質問候補」を提示し、会話をスムーズに進めます。 |
| ファイルアップロード | ユーザーが画像やドキュメントを送信できるようにします。 チャットの入力ボックスは画像やドキュメントやその他のファイルのアップロードをサポートします。 |
| 引数と帰属 | 回答の根拠となったナレッジのソース元を表示し、信頼性を高めます。有効にすると、生成されたコンテンツのソースドキュメントと帰属セクションが表示されます。 |
| コンテンツのモデレーション | 不適切な入出力をブロックし、安全な運用を実現します。 モデレーション API を使用するか、機密語リストを維持することで、モデルの出力を安全にします。 |
プロンプトサービスオーケストレーション
視覚的なオーケストレーションインターフェースは高く評価されており、プロンプトを変更して効果を確認できます。
オーケストレーションモード
- シンプルなオーケストレーション
- アシスタントオーケストレーション
- フローオーケストレーション
プロンプト変数タイプ
- 文字列
- ラジオ列挙
- 外部API
- ファイル(2024年Q3以降)
エージェントワークフロー機能
業界をリードする視覚的なワークフローオーケストレーションインターフェース。ライブノードデバッグ、モジュール化されたDSL、およびネイティブコードランタイムを備え、より複雑で信頼性と安定性の高いLLMアプリケーションの構築に適しています。
サポートノード
- LLM
- 知識検索
- 質問分類
- IF/ELSE
- CODE
- テンプレート
- HTTPリクエスト
- ツール
RAG(検索拡張生成)機能の活用
Difyの強力な機能の一つが、独自のデータをAIに学習させる「RAG」機能です。社内マニュアルや商品データなどをナレッジベースとして登録することで、独自の回答が可能になります。
データの取り込み(ETL)
PDF、Word、Markdownなどのファイルを自動で整形・クリーニングして取り込めます。NotionやWebサイトの同期も可能です。
検索精度の向上
データの検索方法として、「キーワード検索」「ベクトル検索(意味検索)」に加え、それらを組み合わせた「ハイブリッド検索」が利用可能です。さらに、検索結果を再ランク付けする「Rerankモデル」を使用することで、回答の精度を大幅に向上させることができます。
対応しているAIモデル
Difyは特定のAIモデルに依存せず、用途に合わせて最適なモデルを選択・切り替えが可能です。
- 推論モデル (LLM): チャットや文章生成のメインとなるモデル。 対応:OpenAI (GPT-4等), Azure OpenAI, Anthropic (Claude), Google (Gemini) など多数。
- Embeddingモデル: テキストをベクトルデータ化し、検索可能にするモデル。 対応:OpenAI, Cohere, Jina AIなど。
- Rerankモデル: 検索結果の関連度を判定し、並び替えるモデル。 対応:Cohere, Jina AIなど。
- 音声認識モデル: 音声をテキストに変換するモデル。 対応:OpenAI (Whisper) など。
これらの機能を組み合わせることで、単なるチャットボットだけでなく、業務を自動化する高度なAIエージェントをノーコードで構築することが可能です。ぜひDifyを使って、自社専用のAIツールを開発してみてください。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント