> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ユーザー入力

> ワークフローとチャットフローアプリケーションを開始するためのユーザー入力を収集します

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/self-host/use-dify/nodes/user-input) を参照してください。

ユーザー入力ノードでは、アプリケーションへの入力としてエンドユーザーから収集する内容を定義できます。

このノードで開始するアプリケーションは*オンデマンド*で実行され、直接的なユーザー操作または API 呼び出しによって開始できます。

これらのアプリケーションをスタンドアロンの Web アプリや MCP サーバーとして公開したり、バックエンドサービス API を介して公開したり、他の Dify アプリケーションでツールとして使用したりすることもできます。

<Info>
  各アプリケーションキャンバスには、ユーザー入力ノードを 1 つだけ含めることができます。
</Info>

## 入力変数

### プリセット

プリセット入力変数はシステム定義であり、デフォルトで利用可能です。

* `userinput.files`：エンドユーザーがアプリケーションを実行するときにアップロードするファイル。

  <Note>
    ワークフローアプリケーションの場合、このプリセット変数は*レガシー*と見なされており、後方互換性のためにのみ維持されています。

    代わりに[カスタムファイル入力フィールド](#ファイル入力)を使用してユーザーファイルを収集することをお勧めします。
  </Note>

* `userinput.query`（チャットフローのみ）：ユーザーの最新のチャットターンから自動的にキャプチャされたテキストメッセージ。

### カスタム

ユーザー入力ノードでカスタム入力フィールドを設定して、さまざまな種類のユーザー入力を収集できます。各フィールドは、下流のノードから参照できる変数になります。

<Info>
  **ラベル名** はエンドユーザーに表示されます。
</Info>

<Tip>
  フィールドの値が既知のもの（製品識別子やテナント ID など）で、エンドユーザーから取得する必要がない場合、そのフィールドを **非表示・事前入力** に設定し、自分で値を提供できます。詳細は [入力フィールドの非表示・事前入力](#入力フィールドの非表示・事前入力) を参照してください。
</Tip>

#### テキスト入力

<Tabs>
  <Tab title="短いテキスト">
    最大 256 文字を受け付けます。名前、メールアドレス、タイトル、または 1 行に収まる短いテキスト入力に使用します。
  </Tab>

  <Tab title="段落">
    長さ制限なしの長文テキストを許可します。詳細な応答や説明のために、ユーザーに複数行のテキストエリアを提供します。
  </Tab>
</Tabs>

#### 構造化入力

<Tabs>
  <Tab title="選択">
    事前定義されたオプションを含むドロップダウンメニューを表示します。ユーザーはリストされたオプションからのみ選択でき、データの一貫性を確保し、無効な入力を防ぎます。
  </Tab>

  <Tab title="数値">
    数値のみに入力を制限します。数量、評価、ID、または数学的処理を必要とするデータに最適です。
  </Tab>

  <Tab title="チェックボックス">
    シンプルなはい/いいえオプションを提供します。ユーザーがボックスをチェックすると、出力は `true` になり、それ以外の場合は `false` になります。確認や二者択一が必要な場合に使用します。
  </Tab>

  <Tab title="JSON コード">
    JSON オブジェクト形式のデータを受け付けます。複雑でネストされたデータ構造をアプリケーションに渡すのに最適です。

    オプションで JSON スキーマを定義して、入力を検証し、ユーザーに期待されるデータ構造と検証要件を示すことができます。スキーマを定義すると、他のノードでオブジェクトの個々のプロパティを参照することもできます。
  </Tab>
</Tabs>

#### ファイル入力

<Tabs>
  <Tab title="単一ファイル">
    ユーザーはデバイスまたはファイル URL を介して、サポートされている任意のタイプの 1 つのファイルをアップロードできます。アップロードされたファイルは、ファイルメタデータ（名前、サイズ、タイプなど）を含む変数として利用できます。
  </Tab>

  <Tab title="ファイルリスト">
    一度に複数のファイルのアップロードをサポートします。ドキュメント、画像、その他のファイルのバッチを一緒に処理する場合に便利です。

    <Tip>
      リスト演算子ノードを使用して、アップロードされたファイルリストから特定のファイルをフィルタリング、並べ替え、または抽出して、さらに処理することができます。
    </Tip>
  </Tab>
</Tabs>

**ファイル処理**

ユーザー入力ノードはファイルを収集するだけで、コンテンツを読み取ったり解析したりしないため、アップロードされたファイルは後続のノードによって適切に処理される必要があります。例えば：

* ドキュメントファイルは、LLM がそのコンテンツを理解できるように、テキスト抽出ノードにルーティングできます。

* 画像は、ビジョン機能を持つ LLM ノードまたは専用の画像処理ツールノードに送信できます。

* CSV や JSON などの構造化データファイルは、コードノードを使用して解析および変換できます。

<Tip>
  ユーザーが混在タイプの複数のファイル（画像とドキュメントなど）をアップロードする場合、リスト演算子ノードを使用してファイルタイプ別に分離してから、異なる処理ブランチにルーティングできます。
</Tip>

## 入力フィールドの非表示・事前入力

ワークフローには、すでに分かっている入力が必要な場合があります。エンドユーザーに入力させるのは煩わしいでしょう。そのフィールドを **非表示・事前入力** に設定すると、値は自分で提供し、エンドユーザーには見えませんが、ワークフローには値が渡ります。

たとえば、複数の異なる製品ごとにランディングページを運営し、それぞれに AI チャットボットを掲載する企業を想像してください。すべてのチャットボットの背後にあるワークフローはほぼ同じで、製品識別子だけが異なります。

製品ごとに別々のワークフローを保守する代わりに、`productName` という非表示フィールドを持つ 1 つのワークフローを用意し、各ランディングページに対応する値を事前入力します。エンドユーザーから見ると、各ページにその製品専用のチャットボットがあるように感じられますが、実際にはすべてのページが同じワークフローに異なる `productName` を渡しているだけです。

<Warning>
  非表示フィールドは **秘匿情報ではありません**。値は URL クエリ文字列に含まれて送られ、ブラウザのアドレスバー、履歴、ネットワーク通信から見えます。認証情報や API キーには [環境変数](/ja/learn/key-concepts#変数) を使用してください。
</Warning>

<Info>
  単一ファイルおよびファイルリストのフィールドは、この機能をサポートしていません。
</Info>

<Steps>
  <Step title="機能の有効化">
    1. **入力フィールドを編集** ウィンドウで、**必須** がチェックされている場合は外します。この 2 つのオプションは併用できません。
    2. **非表示・事前入力** をチェックします。実行時に値が指定されない場合のフォールバックとして、デフォルト値を任意で設定できます。

    非表示フィールドは **プレビュー** パネルには引き続き表示されるため、公開前にフローをテストできます。
  </Step>

  <Step title="値の提供">
    1. アプリを公開します。
    2. エンドユーザーがアプリにアクセスする方法に合わせて、いずれかの方法を選択します。

           <Tabs>
             <Tab title="共有可能なリンク">
               エンドユーザーがリンクから直接 WebApp を開く場合に使用します。

               1. アプリの公開パネルの **Web App** セクションで、**公開** の横の歯車アイコンをクリックします。
                          <Frame>
                            <img src="https://mintcdn.com/dify-6c0370d8/lwIzCowco7hnsTRZ/images/use-dify/workflow/hidden-field-config-icon.png?fit=max&auto=format&n=lwIzCowco7hnsTRZ&q=85&s=fbcb5240d0cd7d4dadc9bb36126de7d0" alt="非表示フィールドの事前入力アイコン" width="874" height="330" data-path="images/use-dify/workflow/hidden-field-config-icon.png" />
                          </Frame>
               2. 非表示フィールドに値を入力し、**公開** をクリックします。WebApp は値が URL クエリパラメーターとして適用された状態で開きます。アドレスバーから URL をコピーして共有してください。

               **異なる値で多数のリンクを生成するには**、同じパターンで自分でさらに作成するか、システムに値を自動的に入力させます。

               ```text wrap theme={null}
               {WEBAPP_URL}?{VARIABLE_NAME}={VALUE}&{VARIABLE_NAME}={VALUE}

               # 例：{WEBAPP_URL}/chat/abc123?productName=Acme&region=us-east
               ```

               <Note>
                 スペースや特殊文字を含む値は URL エンコードしてください（例：`Acme Corp` は `Acme%20Corp` になります）。
               </Note>

               <Accordion title="例：CRM が顧客 ID を自動入力">
                 CRM を使用しているサポートチームは、チケット返信テンプレートで WebApp URL の末尾に `?customerId={{customer.id}}` を追加できます。

                 担当者がリンクを送信する際、CRM が実際の顧客 ID に置き換えるため、チャットボットはどの顧客との会話か尋ねずに把握できます。
               </Accordion>
             </Tab>

             <Tab title="サイトへの埋め込み">
               アプリを iframe またはスクリプトとしてサイトに埋め込む場合に使用します。

               <Tabs>
                 <Tab title="すべての訪問者に同じ値">
                   すべての訪問者が同じ値を受け取る場合に使用します（サイト全体のリージョン、埋め込みページの製品 ID など）。

                   1. アプリの公開パネルの **Web App** セクションで、**埋め込み** > **非表示フィールドを事前入力** をクリックします。
                                  <Frame>
                                    <img src="https://mintcdn.com/dify-6c0370d8/lwIzCowco7hnsTRZ/images/use-dify/workflow/embedding-icon.png?fit=max&auto=format&n=lwIzCowco7hnsTRZ&q=85&s=e9fafdf94266f0900c6a3b7a972c88f0" alt="埋め込みアイコン" width="876" height="338" data-path="images/use-dify/workflow/embedding-icon.png" />
                                  </Frame>
                   2. 非表示フィールドに値を入力します。入力した値は iframe URL とスクリプトスニペットの `inputs` オブジェクトに組み込まれます。
                 </Tab>

                 <Tab title="訪問者ごとに異なる値">
                   各訪問者が固有の値を受け取る場合に使用します（ログインユーザーの ID、現在のページなど）。

                   サイトの埋め込みスニペットで、各非表示フィールドを `window.difyChatbotConfig` の `inputs` オブジェクトのキーとして設定します。各値はサイトのコンテキストからレンダリング時に計算されるため、各訪問者は固有の値を受け取ります。

                   ```html theme={null}
                   <script>
                     window.difyChatbotConfig = {
                       token: 'YOUR_TOKEN',
                       inputs: {
                         productName: getCurrentProduct(),    // 現在のページから
                         tenantId: getCurrentTenant(),        // 認証システムから
                       },
                     };
                   </script>
                   ```
                 </Tab>
               </Tabs>
             </Tab>
           </Tabs>
  </Step>
</Steps>
