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

# レッスン 3：ワークフローの頭脳（LLM ノード）

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

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/llm-node.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=7fbaf0976b543a365235df4d4a4fcd1d" alt="LLM ノード" width="284" height="154" data-path="images/use-dify/tutorial/workflow-101-lesson-03/llm-node.png" />
</Frame>

レッスン 2 では、材料（開始ノード）とお皿（出力ノード）を準備しました。

開始ノードが下ごしらえ担当だとすれば、LLM ノードはまさに*シェフ長*です。ワークフローの頭脳であり、中核となる存在です。

思考、分析、クリエイティブな文章作成など、あらゆる知的作業を担当します。記事の要約、コードの作成、メールの下書きなど、重要な処理はすべてこのノードが行います。

## モデルの設定

始める前に、モデルプロバイダーに接続する必要があります。

<Steps>
  <Step title="統合を開く">
    **統合** > **モデルプロバイダー** に移動します。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/llm-node-01.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=211283b9fb0238ece30970b0ae0b7405" alt="モデルプロバイダー" width="421" height="179" data-path="images/use-dify/tutorial/workflow-101-lesson-03/llm-node-01.png" />
    </Frame>
  </Step>

  <Step title="OpenAI プロバイダーをインストール">
    OpenAI を見つけて、**インストール** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/llm-node-02.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=04dc0e10f4f1d0743673279c87600de2" alt="OpenAI を選択" width="1034" height="506" data-path="images/use-dify/tutorial/workflow-101-lesson-03/llm-node-02.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/install.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=a08c8d0d29071c50138355088e5e6da1" alt="OpenAI をインストール" width="1028" height="785" data-path="images/use-dify/tutorial/workflow-101-lesson-03/install.png" />
    </Frame>
  </Step>

  <Step title="キャンバスに戻る">
    インストールが完了したら、準備完了です。右上の **ESC**（または **X**）をクリックして、「キャンバス」に戻りましょう。
  </Step>
</Steps>

## タグを理解する

パティシエはケーキが得意でもお寿司は作れません。同じように、AI モデルにもそれぞれ得意分野があります。

Dify でモデルを選択するとき、名前の横にタグが表示されます。適切なモデルを選ぶために、これらのタグの意味を理解しましょう。

<AccordionGroup>
  <Accordion title="CHAT（会話型）">
    AI の最も基本的な機能です。以下のようなタスクに最適です：

    * 対話
    * 記事の作成
    * テキストの要約
    * 質問への回答
  </Accordion>

  <Accordion title="128K（大容量メモリ）">
    この数値は **コンテキストウィンドウ** を表しています。短期記憶のようなものだと考えてください。

    K は「千」を意味します。**128K** は、モデルが 128,000 トークン（おおよそ単語や音節に相当）を保持できることを意味します。この数値が大きいほど、記憶力が優れています。

    <Info>
      大量の PDF レポートや一冊の本全体を分析する必要がある場合は、この数値が大きいモデルが必要です。
    </Info>
  </Accordion>

  <Accordion title="マルチモーダル（進化した知覚能力）">
    「モーダル」とは **情報の種類** を意味します。初期の AI モデルはテキストしか読めませんでしたが、マルチモーダルモデルは進化しており、目や耳のような*知覚*を備えています。

    **VISION（目）**

    このタグを持つモデルは、テキストを読むだけでなく、画像を見ることもできます。夕焼けの写真をアップロードして「*この写真にはどんな色がありますか？*」と質問したり、冷蔵庫の中身の写真をアップロードして「*これで何が作れますか？*」と尋ねたりできます。

    **AUDIO（耳）**

    このタグを持つモデルは、音声を聞くことができます。会議や講義の録音をアップロードすると、テキストに書き起こしたり、要約を作成したりできます。

    **VIDEO（動画アナリスト）**

    このモデルは動画コンテンツを視聴して理解できます。人間が映画を観るように、動画クリップの内容を分析できます。

    **DOCUMENT（リーダー）**

    このモデルは優秀な読み手です。テキストをコピー＆ペーストする代わりに、ファイル（PDF や Word 文書など）をそのままアップロードできます。モデルがファイルを直接読み取り、書かれている内容に基づいて質問に回答します。
  </Accordion>
</AccordionGroup>

今回のメールアシスタントには、**CHAT** タグが付いた LLM がまさに必要なものです。

## 実践 1：LLM ノードを追加する

ワークフローに頭脳を組み込みましょう。

<Steps>
  <Step title="アプリを開く">
    レッスン 2 で作成した **AI メールアシスタント** ワークフローに戻ります。
  </Step>

  <Step title="ノードを追加する">
    開始ノードと出力ノードの間の空白部分を右クリックし、新しい **LLM** ブロックをクリックします。右側のパネルで **モデル**を探し、**gpt-4o-mini** を選択します。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/add-the-node.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=3dd8fa5cee465340d7d3d1a3992dc6a4" alt="ノードを追加" width="781" height="398" data-path="images/use-dify/tutorial/workflow-101-lesson-03/add-the-node.png" />
    </Frame>
  </Step>

  <Step title="ノードを接続する">
    開始ノードから LLM ノードへ線をドラッグします。次に LLM ノードから出力ノードへ線をドラッグします。フローは次のようになります：**開始 → LLM → 出力**。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/connect-the-nodes.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=9914482eade4187857df062a5bb93b07" alt="ノードを接続" width="941" height="186" data-path="images/use-dify/tutorial/workflow-101-lesson-03/connect-the-nodes.png" />
    </Frame>
  </Step>
</Steps>

次に、LLM に具体的な指示を送る必要があります。これを **プロンプト** と呼びます。

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/prompt.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=e50fdf05f85f84783f04e36a20ca6a8f" alt="プロンプトを追加" width="707" height="452" data-path="images/use-dify/tutorial/workflow-101-lesson-03/prompt.png" />
</Frame>

### 重要な概念：プロンプト（指示書）

**プロンプトとは？** プロンプトは、注文票に添える具体的なメモのようなものです。AI に **何をすべきか**、**どのようにすべきか**を正確に伝えます。

最も重要なポイントは、プロンプト内で開始ノードの **変数** を直接使用できることです。これにより、毎回異なる*材料*を提供するたびに、AI が出力を柔軟に変化させることができます。

Dify では、`customer_name` のような変数をプロンプトに挿入すると、AI に「Customer Name というラベルの箱を見て、中に入っているテキストを使ってください」と指示していることになります。

## 実践 2：プロンプトを書く

では、実際にやってみましょう。指示と変数を組み合わせたプロンプトを作成します。

<Steps>
  <Step title="指示を作成する">
    LLM ノードをクリックしてパネルを開き、**system** ボックスを見つけます。**System 指示** は、モデルがどのように応答すべきか（役割、トーン、行動のガイドライン）のルールを設定します。

    まず、指示を書きましょう。以下のテキストをコピー＆ペーストできます。

    ```plaintext wrap theme={null}
    You are a professional customer service manager. Based on the customer's email, please draft a professional reply.
    Requirements:
    1. Start by addressing the customer name with a friendly tone.
    2. Thank them for their email.
    3. Let them know we have received it.
    4. Sign off as Anne.
    ```
  </Step>

  <Step title="ユーザーメッセージを追加する">
    ユーザーメッセージは、モデルに送信する内容です。質問、リクエスト、またはモデルに処理してほしいタスクを入力します。

    このワークフローでは、顧客名とメール内容は毎回変わります。手動で入力する代わりに、ユーザーメッセージに変数を追加します。

    1. system ボックスの下にある **Add Message** ボタンをクリックします。
    2. User Message ボックスに **customer name**：と入力します。
    3. キーボードで `/` を押します。
    4. 変数選択メニューが表示されるので、`customer_name` をクリックします。
    5. Enter を押して改行し、**email content**：と入力します。再度 `/` キーを押して `email_content` をクリックします。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/add-user-message.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=7159839f2672884c83b037d6fae4e947" alt="ユーザーメッセージを追加" width="1042" height="210" data-path="images/use-dify/tutorial/workflow-101-lesson-03/add-user-message.png" />
    </Frame>

    <Tip>
      波括弧を手動で入力する必要はありません。`/` を押して、メニューから変数を選ぶだけで OK です。
    </Tip>

    4. 最終的なプロンプトは次のようになります：

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/final-prompt.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=e422f5e12fa40f4175f216bdc305aae0" alt="最終プロンプト" width="1044" height="630" data-path="images/use-dify/tutorial/workflow-101-lesson-03/final-prompt.png" />
    </Frame>
  </Step>
</Steps>

<Check>
  **おめでとうございます！** Dify で初めての AI ワークフローが完成しました！
</Check>

## 実行とテスト

材料は準備完了、シェフもスタンバイ、指示も整いました。しかし、料理の味はどうでしょうか？お客様に提供する前に、まずは味見をしてみましょう。

テストは安定したワークフローを作るための秘訣です。本番稼働前に、見落としがちな小さな問題を見つけるのに役立ちます。

### クイック概念：チェックリスト

**チェックリスト** は、ワークフロー専属の*健康診断ドクター*だと考えてください。

リアルタイムで作業を監視し、不完全な設定やミス（接続されていないノードなど）を自動的に検出します。

**公開** ボタンを押す前にチェックリストを確認することが、不要なエラーを早期に発見する最善の方法です。

### 実践 3：テストとデバッグ

<Steps>
  <Step title="事前チェック">
    「キャンバス」の右上を見てください。**チェックリスト** アイコンに小さな数字 **1** が表示されていませんか？これは Dify が「*ちょっと待ってください！まだ 1 つ足りないところがあります。*」と教えてくれています。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/checklist.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=c7992fb8427acdd223d64bf77e7c506d" alt="チェックリスト" width="671" height="238" data-path="images/use-dify/tutorial/workflow-101-lesson-03/checklist.png" />
    </Frame>
  </Step>

  <Step title="警告を分析する">
    クリックすると、**output variable is required（出力変数が必要です）** という警告が表示されます。出力ノードが何も受け取っていないことを意味しています。

    シェフ長（LLM）が料理を完成させたのに、ウェイター（出力ノード）が手ぶらのままだと想像してください。
  </Step>

  <Step title="問題を修正する">
    1. **出力ノード** をクリックします。
    2. **Output Variable（出力変数）** を探し、横にある **プラス（+）** アイコンをクリックします。
    3. **Variable Name** フィールドに `email_reply` と入力します。
    4. 値を選択します：変数セレクターをクリックし、LLM ノードから `{x} text` を選択します。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/fix-the-issue.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=a5bcd78ef80d9a3f42597744e9c4bced" alt="問題を修正" width="1352" height="417" data-path="images/use-dify/tutorial/workflow-101-lesson-03/fix-the-issue.png" />
    </Frame>
  </Step>

  <Step title="テスト実行">
    チェックリストのポップアップ数字が消えました。テスト実行をしてみましょう。

    「キャンバス」の右上にある **テスト実行** をクリックします。顧客名とメール内容を入力し、**開始** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/test-run.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=5f1b73fda178a2d321a657cf9ca37fed" alt="テスト実行" width="1322" height="406" data-path="images/use-dify/tutorial/workflow-101-lesson-03/test-run.png" />
    </Frame>

    <CodeGroup>
      ```text テスト用サンプルメール theme={null}
      顧客名：Amanda

      メール原文：
      Hi there,

      I'm writing to ask for more information about Dify. Could you please tell me more on it?

      Best regards,
      Amanda
      ```
    </CodeGroup>
  </Step>

  <Step title="成功！">
    今度は、各ノードに緑のチェックマークが表示され、AI が生成した返信メールが確認できます。
  </Step>
</Steps>

<Check>
  **よくできました！**

  ワークフローを構築しただけでなく、チェックリストの使い方や、公開前の確認方法も習得しました。
</Check>

## ミニチャレンジ

同じ構造を使って、旅行プランナーを作ってみましょう。

<Tip>
  **プロンプトジェネレーター** を活用して、より良いプロンプトを作成してみましょう！

  <Frame>
    <img src="https://mintcdn.com/dify-6c0370d8/W-660XSNevX1HYUo/images/use-dify/tutorial/workflow-101-lesson-03/prompt-generator.png?fit=max&auto=format&n=W-660XSNevX1HYUo&q=85&s=12c2989bd02c9f7c9f683d45a4097f76" alt="プロンプトジェネレーター" width="399" height="119" data-path="images/use-dify/tutorial/workflow-101-lesson-03/prompt-generator.png" />
  </Frame>
</Tip>
