メインコンテンツへスキップ
⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
LLMノードは大規模言語モデルを呼び出してテキスト、画像、ドキュメントを処理します。設定されたモデルにプロンプトを送信し、その応答を取得します。構造化出力、コンテキスト管理、マルチモーダル入力をサポートしています。
LLM Node Overview

LLMノード設定インターフェース

LLMノードを使用する前に、システム設定 → モデルプロバイダーで少なくとも1つのモデルプロバイダーを設定してください。セットアップ手順についてはモデル設定ガイドをご覧ください。

モデル選択とパラメーター

設定したモデルプロバイダーから任意のモデルを選択できます。異なるモデルはそれぞれ異なるタスクに適しています。GPT-4とClaude 3.5は複雑な推論を得意としますがコストが高く、GPT-3.5 Turboは機能と価格のバランスが取れています。ローカル展開には、Ollama、LocalAI、Xinferenceを使用してください。
LLM Node Configuration

モデル選択とパラメーター設定

モデルパラメーターは応答生成を制御します。温度は0(決定的)から1(創造的)の範囲です。核サンプリングは確率によって単語選択を制限します。頻度ペナルティは繰り返しを減らします。存在ペナルティは新しいトピックを促進します。プリセットも使用できます:精密バランス創造的

プロンプト設定

インターフェースはモデルタイプに基づいて適応します。チャットモデルではメッセージロール(システムは動作用、ユーザーは入力用、アシスタントは例用)を使用し、補完モデルでは単純なテキスト継続を使用します。 プロンプト内でワークフロー変数を二重中括弧で参照します:{{variable_name}}。変数はモデルに到達する前に実際の値で置き換えられます。
System: あなたは技術文書の専門家です。
User: {{user_input}}

コンテキスト変数

コンース帰属を保持しながら外部知識を注入します。これにより、大規模言語モデルがあなたの特定のドキュメントを使用して質問に答えるRAGアプリケーションが可能になります。
Context Variables

RAGアプリケーションでのコンテキスト変数の使用

知識検索ノードの出力をLLMノードのコンテキスト入力に接続し、次のように参照します:
このコンテキストのみを使用して回答してください:
{{knowledge_retrieval.result}}

質問:{{user_question}}
知識検索からのコンテキスト変数を使用する場合、Difyは自動的に引用と帰属を追跡するため、ユーザーは情報源を確認できます。

構造化出力

プログラムで使用するために、JSONなどの特定のデータ形式での応答をモデルに強制します。3つの方法で設定できます:
  • ビジュアルエディター
  • JSONスキーマ
  • AI生成
シンプルな構造のためのユーザーフレンドリーなインターフェース。名前とタイプでフィールドを追加し、必須フィールドをマークし、説明を設定します。エディターは自動的にJSONスキーマを生成します。
ネイティブJSON対応のモデルは構造化出力を確実に処理します。その他のモデルについては、Difyがプロンプトにスキーマを含めますが、結果は異なる場合があります。

メモリとファイル処理

メモリを有効にすると、ワークフロー実行内の複数のLLM呼び出しでコンテキストを維持できます。ノードは以前のインタラクションを後続のプロンプトに含めます。メモリはノード固有であり、ワークフロー実行間では持続しません。 ファイル処理では、マルチモーダルモデル用にプロンプトにファイル変数を追加します。GPT-4Vは画像をaudeはPDFを直接処理しますが、他のモデルでは前処理が必要な場合があります。

ビジョン機能設定

画像を処理する際、詳細レベルを制御できます:
  • 高詳細 - 複雑な画像でより良い精度を提供しますが、より多くのトークンを使用します
  • 低詳細 - シンプルな画像でより少ないトークンでより高速な処理
ビジョン機能のデフォルト変数セレクターはsys.filesで、開始ノードからファイルを自動的に取得します。
File Processing

マルチモーダル大規模言語モデルでのファイル処理

補完モデルでの会話履歴については、マルチターンコンテキストを維持するために会話変数を挿入します:
Conversation History

会話履歴変数の使用

Jinja2テンプレートサポート

LLMプロンプトは高度な変数処理のためにJinja2テンプレートをサポートしています。Jinja2モード(edition_type: "jinja2")を使用すると、次のことができます:
{% for item in search_results %}
{{ loop.index }}. {{ item.title }}: {{ item.content }}
{% endfor %}
Jinja2変数は通常の変数置換とは別に処理され、プロンプト内でループ、条件文、複雑なデータ変換が可能になります。

ストリーミングレスポンス

LLMノードはデフォルトでストリーミングレスポンスをサポートしています。各テキストチャンクはRunStreamChunkEventとして生成され、リアルタイムの応答表示が可能になります。ファイル出力(画像、ドキュメント)はストリーミング中に自動的に処理され保存されます。

エラーハンドリング

失敗したLLM呼び出しのリトライ動作を設定します。最大リトライ回数、リトライ間隔、バックオフ乗数を設定します。リトライが十分でない場合のデフォルト値、エラールーティング、代替モデルなどのフォールバック戦略を定義します。