> ## 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.

# シンプルなチャットボット

> Hello World

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

Dify の真の価値は、どんなに複雑なアイデアでも簡単に構築、デプロイ、スケールできることにあります。高速プロトタイピング、スムーズなイテレーション、あらゆるレベルでの信頼性の高いデプロイのために構築されています。

まずは、アプリケーションへの信頼性の高い LLM 統合を学びましょう。このガイドでは、ユーザーの質問を分類し、LLM を使用して直接応答し、国固有の豆知識で応答を強化する簡単なチャットボットを構築します。

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/dJ34OU_JY7Y?si=AiYJq7WY1iUCgGAO" title="Difyクイックスタートビデオ" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

## ステップ 1：新しいワークフローを作成（2 分）

1. **スタジオ** > **ワークフロー** > **空白から作成** > **オーケストレート** > **新しいチャットフロー** > **作成** へ移動

## ステップ 2：ワークフローノードを追加（6 分）

<Tip>
  任意の変数を参照したい場合は、まず `{` または `/` を入力すると、ワークフローで使用可能なさまざまな変数が表示されます。
</Tip>

### 1. LLM ノードと出力：質問を理解して回答

<Info>
  `LLM` ノードは言語モデルにプロンプトを送信し、ユーザー入力に基づいて応答を生成します。API 呼び出し、レート制限、インフラストラクチャの複雑さを抽象化するので、ロジックの設計に集中できます。
</Info>

<Steps>
  <Step title="LLM ノードを作成">
    `ノードを追加` ボタンを使用して LLM ノードを作成し、開始ノードに接続
  </Step>

  <Step title="モデルを設定">
    デフォルトのモデルを選択
  </Step>

  <Step title="システムプロンプトを設定">
    システムプロンプトフィールドに以下を貼り付け：

    ```text theme={null}
    ユーザーは国に関する質問をします。質問は {{sys.query}} です
    タスク：
    1. 言及された国を特定する。
    2. 質問を明確に言い換える。
    3. 一般的な知識を使って質問に答える。

    次のJSON形式で応答してください：
    {
      "country": "<国名>",
      "question": "<言い換えた質問>",
      "answer": "<質問への直接的な回答>"
    }
    ```
  </Step>

  <Step title="構造化出力を有効化">
    **構造化出力を有効にする** により、LLM が返すものを簡単に制御し、正確なデータ抽出や条件ロジックでのダウンストリーム使用のために一貫した機械可読出力を確保できます。

    * 出力変数の構造化を ON に切り替え > `設定` をクリックして `JSONからインポート` をクリック
    * 貼り付け：

    ```json theme={null}
    {
      "country": "string",
      "question": "string",
      "answer": "string"
    }
    ```
  </Step>
</Steps>

### 2. コードブロック：豆知識を取得

<Info>
  `コード` ノードはコードを使用してカスタムロジックを実行します。必要な場所に正確にコードを注入できます（ビジュアルワークフロー内で）。バックエンド全体を配線する必要がありません。
</Info>

<Steps>
  <Step title="コードノードを作成">
    `ノードを追加` ボタンを使用して `コード` ノードを作成し、LLM ブロックに接続
  </Step>

  <Step title="入力変数を設定">
    1 つの `入力変数` 名を "country" に変更し、変数を `structured_output` > `country` に設定
  </Step>

  <Step title="Python コードを追加">
    このコードを `PYTHON3` に貼り付け：

    ```python theme={null}
    def main(country: str) -> dict:
      country_name = country.lower()
      fun_facts = {
        "japan": "日本には500万台以上の自動販売機があります。",
        "france": "フランスは世界で最も訪問者が多い国です。",
        "italy": "イタリアは他のどの国よりも多くのユネスコ世界遺産を持っています。"
      }
      fun_fact = fun_facts.get(country_name, f"{country.title()}に関する豆知識はありません。")
      return {"fun_fact": fun_fact}
    ```
  </Step>

  <Step title="出力変数の名前を変更">
    より良いラベル付けのため、出力変数 `result` を `fun_fact` に変更
  </Step>
</Steps>

### 3. 回答ノード：ユーザーへの最終回答

<Info>
  `回答` ノードはクリーンな最終出力を作成して返します。
</Info>

<Steps>
  <Step title="回答ノードを作成">
    `ノードを追加` ボタンを使用して `回答` ノードを作成
  </Step>

  <Step title="回答フィールドを設定">
    回答フィールドに貼り付け：

    ```text theme={null}
    Q: {{ structured_output.question }}

    A: {{ structured_output.answer }}

    豆知識：{{ fun_fact }}
    ```
  </Step>
</Steps>

ワークフローの終了：

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/Z6MqdkI3dck9_1H6/images/use-dify/tutorial/simple-chatbot/quick-start-workflow-overview.png?fit=max&auto=format&n=Z6MqdkI3dck9_1H6&q=85&s=5add61c81e708d98c3d30b4c06e645b9" alt="" width="1280" height="368" data-path="images/use-dify/tutorial/simple-chatbot/quick-start-workflow-overview.png" />
</Frame>

***

## ステップ 3：ボットをテスト（3 分）

`プレビュー` をクリックして、次の質問をしてみましょう：

* "フランスの首都は何ですか？"
* "日本料理について教えてください"
* "イタリアの文化について説明してください"
* その他の質問

ボットが期待通りに動作することを確認してください！

## ボットが完成しました！

このガイドでは、インフラストラクチャを再発明することなく、言語モデルを確実かつスケーラブルに統合する方法を示しました。Dify のビジュアルワークフローとモジュラーノードにより、より速く構築するだけでなく、LLM 駆動アプリのためのクリーンでプロダクション対応のアーキテクチャを採用しています。
