このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
ユーザー入力ノードでは、アプリケーションへの入力としてエンドユーザーから収集する内容を定義できます。
このノードで開始するアプリケーションはオンデマンドで実行され、直接的なユーザー操作または API 呼び出しによって開始できます。
これらのアプリケーションをスタンドアロンの Web アプリや MCP サーバーとして公開したり、バックエンドサービス API を介して公開したり、他の Dify アプリケーションでツールとして使用したりすることもできます。
各アプリケーションキャンバスには、ユーザー入力ノードを 1 つだけ含めることができます。
入力変数#
プリセット#
プリセット入力変数はシステム定義であり、デフォルトで利用可能です。
-
userinput.files:エンドユーザーがアプリケーションを実行するときにアップロードするファイル。NoteWorkflow アプリケーションの場合、このプリセット変数はレガシーと見なされており、後方互換性のためにのみ維持されています。
代わりにカスタムファイル入力フィールドを使用してユーザーファイルを収集することをお勧めします。
-
userinput.query(Chatflow のみ):ユーザーの最新のチャットターンから自動的にキャプチャされたテキストメッセージ。
カスタム#
ユーザー入力ノードでカスタム入力フィールドを設定して、さまざまな種類のユーザー入力を収集できます。各フィールドは、下流のノードから参照できる変数になります。
ラベル名 はエンドユーザーに表示されます。
フィールドの値が既知のもの(製品識別子やテナント ID など)で、エンドユーザーから取得する必要がない場合、そのフィールドを 非表示・事前入力 に設定し、自分で値を提供できます。詳細は 入力フィールドの非表示・事前入力 を参照してください。
テキスト入力#
最大 256 文字を受け付けます。名前、メールアドレス、タイトル、または 1 行に収まる短いテキスト入力に使用します。
長さ制限なしの長文テキストを許可します。詳細な応答や説明のために、ユーザーに複数行のテキストエリアを提供します。
構造化入力#
事前定義されたオプションを含むドロップダウンメニューを表示します。ユーザーはリストされたオプションからのみ選択でき、データの一貫性を確保し、無効な入力を防ぎます。
数値のみに入力を制限します。数量、評価、ID、または数学的処理を必要とするデータに最適です。
シンプルなはい/いいえオプションを提供します。ユーザーがボックスをチェックすると、出力は true になり、それ以外の場合は false になります。確認や二者択一が必要な場合に使用します。
JSON オブジェクト形式のデータを受け付けます。複雑でネストされたデータ構造をアプリケーションに渡すのに最適です。
オプションで JSON スキーマを定義して、入力を検証し、ユーザーに期待されるデータ構造と検証要件を示すことができます。スキーマを定義すると、他のノードでオブジェクトの個々のプロパティを参照することもできます。
ファイル入力#
ユーザーはデバイスまたはファイル URL を介して、サポートされている任意のタイプの 1 つのファイルをアップロードできます。アップロードされたファイルは、ファイルメタデータ(名前、サイズ、タイプなど)を含む変数として利用できます。
一度に複数のファイルのアップロードをサポートします。ドキュメント、画像、その他のファイルのバッチを一緒に処理する場合に便利です。
リスト演算子ノードを使用して、アップロードされたファイルリストから特定のファイルをフィルタリング、並べ替え、または抽出して、さらに処理することができます。
ファイル処理
ユーザー入力ノードはファイルを収集するだけで、コンテンツを読み取ったり解析したりしないため、アップロードされたファイルは後続のノードによって適切に処理される必要があります。例えば:
-
ドキュメントファイルは、LLM がそのコンテンツを理解できるように、テキスト抽出ノードにルーティングできます。
-
画像は、ビジョン機能を持つ LLM ノードまたは専用の画像処理ツールノードに送信できます。
-
CSV や JSON などの構造化データファイルは、コードノードを使用して解析および変換できます。
ユーザーが混在タイプの複数のファイル(画像とドキュメントなど)をアップロードする場合、リスト演算子ノードを使用してファイルタイプ別に分離してから、異なる処理ブランチにルーティングできます。
入力フィールドの非表示・事前入力 #
ワークフローには、すでに分かっている入力が必要な場合があります。エンドユーザーに入力させるのは煩わしいでしょう。そのフィールドを 非表示・事前入力 に設定すると、値は自分で提供し、エンドユーザーには見えませんが、ワークフローには値が渡ります。
たとえば、複数の異なる製品ごとにランディングページを運営し、それぞれに AI チャットボットを掲載する企業を想像してください。すべてのチャットボットの背後にあるワークフローはほぼ同じで、製品識別子だけが異なります。
製品ごとに別々のワークフローを保守する代わりに、productName という非表示フィールドを持つ 1 つのワークフローを用意し、各ランディングページに対応する値を事前入力します。エンドユーザーから見ると、各ページにその製品専用のチャットボットがあるように感じられますが、実際にはすべてのページが同じワークフローに異なる productName を渡しているだけです。
非表示フィールドは 秘匿情報ではありません。値は URL クエリ文字列に含まれて送られ、ブラウザのアドレスバー、履歴、ネットワーク通信から見えます。認証情報や API キーには 環境変数 を使用してください。
単一ファイルおよびファイルリストのフィールドは、この機能をサポートしていません。
機能の有効化
- 入力フィールドを編集 ウィンドウで、必須 がチェックされている場合は外します。この 2 つのオプションは併用できません。
- 非表示・事前入力 をチェックします。実行時に値が指定されない場合のフォールバックとして、デフォルト値を任意で設定できます。
非表示フィールドは プレビュー パネルには引き続き表示されるため、公開前にフローをテストできます。
値の提供
-
アプリを公開します。
-
エンドユーザーがアプリにアクセスする方法に合わせて、いずれかの方法を選択します。
エンドユーザーがリンクから直接 Web アプリを開く場合に使用します。
- アプリの アクセスポイント タブで、Web アプリ カードの コンフィグ をクリックします。
- 非表示フィールドに値を入力し、公開 をクリックします。Web アプリが開き、値が URL クエリパラメータとして適用されます。
- アドレスバーの URL をコピーして Web アプリを共有します。
異なる値で多数のリンクを生成するには、同じパターンで自分でさらに作成するか、システムに値を自動的に入力させます。
Noteスペースや特殊文字を含む値は URL エンコードしてください(例:
Acme CorpはAcme%20Corpになります)。例:CRM が顧客 ID を自動入力
CRM を使用しているサポートチームは、チケット返信テンプレートで Web アプリ URL の末尾に
?customerId={{customer.id}}を追加できます。担当者がリンクを送信する際、CRM が実際の顧客 ID に置き換えるため、チャットボットはどの顧客との会話か尋ねずに把握できます。
アプリを iframe またはスクリプトとしてサイトに埋め込む場合に使用します。
すべての訪問者が同じ値を受け取る場合に使用します(サイト全体のリージョン、埋め込みページの製品 ID など)。
-
アクセスポイント タブを開き、Web アプリ カードの サイトに埋め込む > 非表示フィールドを事前入力 をクリックします。
-
非表示フィールドに値を入力します。入力した値は iframe URL とスクリプトスニペットの
inputsオブジェクトに組み込まれます。 -
更新後のスニペットをサイトにコピーします。
各訪問者が固有の値を受け取る場合に使用します(ログインユーザーの ID、現在のページなど)。
サイトの埋め込みスニペットで、各非表示フィールドを
window.difyChatbotConfigのinputsオブジェクトのキーとして設定します。各値はサイトのコンテキストからレンダリング時に計算されるため、各訪問者は固有の値を受け取ります。