チャットフローの新規作成
このドキュメントでは、LLMアプリ開発プラットフォーム「Dify」において、チャットフロー形式のアプリケーションを新規作成し、構築から公開まで行う標準的な手順を解説します。
Difyは頻繁にアップデートが行われるため、バージョンによってボタンの名称や配置が若干異なる場合があります。本ガイドでは、主要なUI構成に基づいた操作手順を記載しています。
1. アプリの新規作成
1.1 スタジオへのアクセス

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

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

アプリを作成すると、フローエディタ(編集画面)が開きます。
キャンバス(中央): ノードを配置・接続する作業エリア。
ノード追加(左側+ボタン/右クリック): 利用可能なノード一覧。
プロパティ設定(右側に展開): 選択したノードの詳細設定を行うパネル。
3. 基本的なフローの構築
チャットフローが動作するための最小構成は 「開始(Start) → LLM → 回答(Answer)」 です。
3.1 開始(Start)ノード

チャットフローの入力を受け付ける最初のノードです。
入力変数(Input Variables): ユーザーに入力させたい項目があればここで定義します(通常はチャットの会話文がシステム変数 sys.query として渡されるため、追加設定なしでも動作します)。
sys.query
ユーザーが入力したメッセージ(自動で入力される)
sys.files
アップロードされたファイル(ファイルアップロード有効時)
sys.conversation_id
会話の識別ID
sys.user_id
ユーザーID
3.2 LLMノード

AIモデルによる文章生成を行う中核ノードです。
AIモデル
利用するモデル(GPT-4, Claude 3, Geminiなど)を選択します。
コンテキスト
直前のノードからの出力や、変数を参照させます。
システムプロンプト
AIの役割や制約条件を記述します。
メモリ
会話履歴(Chat History)を含める設定を有効にすることで、文脈を踏まえた会話が可能になります。
3.3 回答(Answer)ノード
ユーザー画面にテキストを表示するためのノードです。
回答内容: LLMノードの出力結果(例:
{{#llm.text#}})変数を指定します。
設定されていないと、ユーザーにメッセージが表示されません。
4. ノードの追加と接続
フローを構築するには、ノードを追加して接続します。
左側パネルからノードをキャンバスにドラッグ&ドロップ、またはノードの「+」ボタンをクリック
前のノードの 出力ポート(右端の点) をクリック&ドラッグします。
次のノードの 入力ポート(左端の点) にドロップして接続します。
各ノードをクリックして右側パネルで設定をおこないます。
5. テストとデバッグ
フローを作成したら、公開前に必ず動作確認を行います。
画面右上の 「プレビュー(Preview)」 または 「デバッグ(Debug)」 ボタンをクリックします。
チャットウィンドウが開くので、メッセージを入力して送信します。
各ノードが正常に実行され(緑色のチェックなどが付く)、応答が返ってくるか確認します。
エラーが出る場合は、必要に応じてフローを修正します。ノードの接続忘れや、フローに必須な変数の未設定を確認してください。
6. 公開(Publish)
テストで問題がなければアプリを本番環境として公開します。
画面右上の 「公開する(Publish)」 → 「更新(Update)」 をクリックします。
「アプリを実行(Run App)」 をクリックすると、実際のアプリ画面が開きます。
外部サービスに組み込む場合は、左側メニューの 「APIアクセス」 からAPIキーやドキュメントを確認できます。
発展的な機能
基本フローに慣れたら、以下の機能でアプリを拡張できます。
ナレッジ検索(Knowledge Retrieval): RAG(検索拡張生成)を行い、独自のドキュメントに基づいた回答を生成させます。
条件分岐(If/Else): ユーザーの入力内容や変数の値によって処理を分岐させます。
HTTPリクエスト: 外部APIを呼び出して、最新情報の取得や他ツールとの連携を行います。
変数アグリゲーター: 複数の分岐から合流する際に変数を整理します。
最終更新
