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

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

circle-exclamation

1. アプリの新規作成

1.1 スタジオへのアクセス

  1. Difyにログインし、画面上部のメニューから 「スタジオ」 を選択します。

  2. アプリ一覧画面が表示されます。

1.2 アプリを新規作成

  1. **「最初から作成」**ボタンをクリックします。

  2. アプリタイプの選択画面が表示されます。

    • アプリタイプを選択: チャットフローを選択します。

    • アプリのアイコンと名前: アプリ名を入力します(例: My First Chatflow)。アイコンは任意で設定します。

  3. 「作成する」 をクリックします。

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#}})変数を指定します。

circle-exclamation

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を呼び出して、最新情報の取得や他ツールとの連携を行います。

  • 変数アグリゲーター: 複数の分岐から合流する際に変数を整理します。

最終更新