⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
モデルの選択
設定済みのプロバイダーからタスクに最適なモデルを選択します。 選択後、モデルパラメータを調整してレスポンスの生成方法を制御できます。利用可能なパラメータとプリセットはモデルによって異なります。プロンプトの作成
モデルに入力の処理方法とレスポンスの生成方法を指示します。/ または { を入力して変数を参照できます。
どこから始めればよいかわからない場合や、既存のプロンプトを改善したい場合は、AI アシスト付きプロンプトジェネレーターをお試しください。


指示とメッセージの指定
システム指示を定義し、メッセージを追加をクリックしてユーザー/アシスタントメッセージを追加します。すべて順番にプロンプトとしてモデルに送信されます。 モデルと直接会話するイメージです:- システム指示はモデルのレスポンスルールを設定します——役割、トーン、行動ガイドライン。
- ユーザーメッセージはモデルに送信する内容——質問、リクエスト、タスク。
- アシスタントメッセージはモデルのレスポンスです。
入力とルールの分離
システム指示で役割とルールを定義し、ユーザーメッセージで実際のタスク入力を渡します。例:対話履歴のシミュレーション
アシスタントメッセージがモデルのレスポンスなら、なぜ手動で追加するのか疑問に思うかもしれません。 ユーザーメッセージとアシスタントメッセージを交互に追加することで、プロンプト内に対話履歴をシミュレーションできます。モデルはこれらを過去のやり取りとして扱い、動作の誘導に役立ちます。上流 LLM からの対話履歴のインポート
対話履歴の追加をクリックして、上流の Agent または LLM ノードから対話履歴をインポートします。これによりモデルは上流で何が起こったかを把握し、そのノードが中断したところから続けることができます。 対話履歴にはユーザーメッセージ、アシスタントメッセージ、が含まれます。Agent または LLM ノードのcontext 出力変数で確認できます。
システム指示はノード固有のため含まれません。
- 対話履歴をインポートしない場合、下流ノードは上流ノードの最終出力のみを受け取り、それがどのように導き出されたかはわかりません。
- 対話履歴をインポートすると、プロセス全体が見えます:ユーザーが何を質問したか、どのツールが呼び出されたか、どのような結果が返されたか、モデルがどのように推論したか。
例:リサーチとレポートの LLM を連結する
例:リサーチとレポートの LLM を連結する
2つの LLM ノードが順番に実行されるとします:LLM A は検索ツールを呼び出してトピックを調査し、LLM B は調査結果に基づいてレポートを作成します。LLM B が LLM A の最終テキスト出力のみを受け取る場合、結論を要約できますが、検証や具体的なソースの引用はできません。LLM A の対話履歴をインポートすることで、LLM B は各ツール呼び出しの生データを確認し、レポートで直接参照できます。LLM A の対話履歴インポート後に LLM B が受け取る完全なメッセージシーケンス:LLM B は次のことを理解します:調査プロセス(質問、検索、要約)を見た上で、テキスト出力だけでは得られない生データを含め、その情報に基づいてレポートを作成する必要があるということです。
Jinja2 を使った動的プロンプトの作成
Jinja2 構文で動的プロンプトを作成できます。例えば、条件分岐を使って変数の値に応じた指示をカスタマイズできます。Jinja2 の例:ユーザーレベルに応じた条件付きプロンプト
Jinja2 の例:ユーザーレベルに応じた条件付きプロンプト
コンテキストの追加
高度な設定 > コンテキストで、LLM に追加の参照情報を提供し、ハルシネーションを減らしてレスポンスの精度を向上させます。 一般的なパターン:ナレッジ検索ノードから検索結果を渡すことで、検索拡張生成(RAG)を実現します。対話メモリの有効化(チャットフローのみ)
メモリはこのノード内でのみ有効です。異なる会話間では保持されません。
5 は、直近の5組のユーザークエリと LLM レスポンスを保持します。
Dify ツールの利用
Tool Call タグが付いたモデルのみが Dify ツールを利用できます。

マルチモーダル入力の処理
マルチモーダル対応モデルに画像、音声、動画、ドキュメントを処理させるには、以下のいずれかの方法を選択します:- プロンプトでファイル変数を直接参照する。
-
高度な設定で Vision を有効にし、ファイル変数を選択する。
解像度は画像処理の詳細レベルのみを制御します:
- 高:複雑な画像でより高精度だが、より多くのトークンを使用
- 低:シンプルな画像でより高速、より少ないトークンで処理
思考プロセスとツール呼び出しをレスポンスから分離
モデルの思考プロセスやツール呼び出し(もしあれば)を含まないクリーンなレスポンスを取得するには、text 出力変数(推論タグ分離を有効化をオンにした状態)または generation.content を参照します。
generations 変数自体にはすべての中間ステップと最終レスポンスが含まれます。
構造化出力の強制
指示で出力形式を記述しても、一貫性のない結果が生じることがあります。より信頼性の高いフォーマットを実現するには、構造化出力を有効にして定義済みの JSON スキーマを強制します。ネイティブ JSON をサポートしないモデルの場合、Dify はスキーマをプロンプトに含めますが、厳密な遵守は保証されません。

-
出力変数の横で構造化をオンにします。出力変数リストの末尾に
structured_output変数が表示されます。 -
設定をクリックし、以下のいずれかの方法で出力スキーマを定義します。
- ビジュアルエディター:ノーコードインターフェースでシンプルな構造を定義。対応する JSON スキーマが自動生成されます。
- JSON Schema:ネストされたオブジェクト、配列、バリデーションルールを含む複雑な構造のスキーマを直接記述。
- AI 生成:自然言語でニーズを記述し、AI にスキーマを生成させる。
- JSON インポート:既存の JSON オブジェクトを貼り付けて、対応するスキーマを自動生成。
エラー処理
一時的な問題(ネットワークの不具合など)に対する自動リトライ、またはエラーが続く場合にワークフローの実行を継続するための代替エラー処理戦略を設定します。