# チャットフローの新規作成

このドキュメントでは、LLMアプリ開発プラットフォーム「Dify」において、**チャットフロー**形式のアプリケーションを新規作成し、構築から公開まで行う標準的な手順を解説します。

{% hint style="warning" %}
Difyは頻繁にアップデートが行われるため、バージョンによってボタンの名称や配置が若干異なる場合があります。本ガイドでは、主要なUI構成に基づいた操作手順を記載しています。
{% endhint %}

## 1. アプリの新規作成

### 1.1 スタジオへのアクセス

![](/files/or1xGwQ75NH7gqhoHcEw)

1. Difyにログインし、画面上部のメニューから **「スタジオ」** を選択します。
2. アプリ一覧画面が表示されます。

### 1.2 アプリを新規作成

![](/files/K6evfNknpQ8w4dGykplv)

1. \*\*「最初から作成」\*\*ボタンをクリックします。
2. アプリタイプの選択画面が表示されます。
   * **アプリタイプを選択**: **チャットフロー**を選択します。
   * **アプリのアイコンと名前**: アプリ名を入力します（例: My First Chatflow）。アイコンは任意で設定します。
3. **「作成する」** をクリックします。

## 2. フローエディタの基本構成

![](/files/ttttPC0AQ4Fr9YQ3dOs4)

アプリを作成すると、フローエディタ（編集画面）が開きます。

* **キャンバス（中央）**: ノードを配置・接続する作業エリア。
* **ノード追加（左側＋ボタン/右クリック）**: 利用可能なノード一覧。
* **プロパティ設定（右側に展開）**: 選択したノードの詳細設定を行うパネル。

## 3. 基本的なフローの構築

チャットフローが動作するための最小構成は **「開始(Start) → LLM → 回答(Answer)」** です。

### 3.1 開始（Start）ノード

![](/files/CZvvaG6XVDQnhBJpg9fj)

チャットフローの入力を受け付ける最初のノードです。

**入力変数（Input Variables）**: ユーザーに入力させたい項目があればここで定義します（通常はチャットの会話文がシステム変数 `sys.query` として渡されるため、追加設定なしでも動作します）。

| 入力変数                  | 内容                           |
| --------------------- | ---------------------------- |
| `sys.query`           | ユーザーが入力したメッセージ（自動で入力される）     |
| `sys.files`           | アップロードされたファイル（ファイルアップロード有効時） |
| `sys.conversation_id` | 会話の識別ID                      |
| `sys.user_id`         | ユーザーID                       |

### 3.2 LLMノード

![](/files/aHRDV5S2Jpp0p7W8O2vT)

AIモデルによる文章生成を行う中核ノードです。

| 設定項目                              | 内容                                                   |
| --------------------------------- | ---------------------------------------------------- |
| <p><strong>AIモデル</strong><br></p> | 利用するモデル（GPT-4, Claude 3, Geminiなど）を選択します。            |
| **コンテキスト**                        | 直前のノードからの出力や、変数を参照させます。                              |
| **システムプロンプト**                     | AIの役割や制約条件を記述します。                                    |
| **メモリ**                           | 会話履歴（Chat History）を含める設定を有効にすることで、文脈を踏まえた会話が可能になります。 |

### 3.3 回答（Answer）ノード

ユーザー画面にテキストを表示するためのノードです。

* **回答内容**: LLMノードの出力結果（例: `{{#llm.text#}}`）変数を指定します。

{% hint style="warning" %}
設定されていないと、ユーザーにメッセージが表示されません。
{% endhint %}

## 4. ノードの追加と接続

フローを構築するには、ノードを追加して接続します。

1. 左側パネルからノードをキャンバスにドラッグ＆ドロップ、またはノードの「＋」ボタンをクリック
2. 前のノードの **出力ポート（右端の点）** をクリック＆ドラッグします。
3. 次のノードの **入力ポート（左端の点）** にドロップして接続します。
4. 各ノードをクリックして右側パネルで設定をおこないます。

## 5. テストとデバッグ

フローを作成したら、公開前に必ず動作確認を行います。

1. 画面右上の **「プレビュー（Preview）」** または **「デバッグ（Debug）」** ボタンをクリックします。
2. チャットウィンドウが開くので、メッセージを入力して送信します。
3. 各ノードが正常に実行され（緑色のチェックなどが付く）、応答が返ってくるか確認します。
4. エラーが出る場合は、必要に応じてフローを修正します。ノードの接続忘れや、フローに必須な変数の未設定を確認してください。

## 6. 公開（Publish）

テストで問題がなければアプリを本番環境として公開します。

1. 画面右上の **「公開する（Publish）」** → **「更新（Update）」** をクリックします。
2. **「アプリを実行（Run App）」** をクリックすると、実際のアプリ画面が開きます。
3. 外部サービスに組み込む場合は、左側メニューの **「APIアクセス」** からAPIキーやドキュメントを確認できます。

## 発展的な機能

基本フローに慣れたら、以下の機能でアプリを拡張できます。

* **ナレッジ検索（Knowledge Retrieval）**: RAG（検索拡張生成）を行い、独自のドキュメントに基づいた回答を生成させます。
* **条件分岐（If/Else）**: ユーザーの入力内容や変数の値によって処理を分岐させます。
* **HTTPリクエスト**: 外部APIを呼び出して、最新情報の取得や他ツールとの連携を行います。
* **変数アグリゲーター**: 複数の分岐から合流する際に変数を整理します。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-create-new-chatflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
