【アプリ例】ドキュメントをアップロード→アップロードしたドキュメントに対して任意のプロンプトを実行する
最終更新
最終更新
このガイドでは「ドキュメントをアップロード」→「アップロードしたドキュメントに対して任意のプロンプトを実行」と繋がるアプリの作成方法を解説します。
この形式のアプリは、ユーザーがその場でアップロードしたドキュメントに対して任意のアクション(要約や加工など)を実行させたい場合など、多くのお客様が利用しています。ガイドを参考に自社に合わせた形でアレンジしてみてください。
大まかな流れとしては下記になります。
・ユーザーが任意のドキュメントをアップロード→アップロードしたドキュメントに対して実行したい指示を入力→結果を確認→TOPに戻る(別のドキュメントをアップロード) or 会話を終了する
ドキュメントをアップロードさせる場合、「LLMインプットノード」を使用します。
LLMインプットノード内を下記の手順に沿って設定します。
選択タブ:ユーザーにドキュメントをアップロードしてもらう場合アップロードタブを選択してください。
メッセージ欄:ユーザーに表示するメッセージを入力してください。
応答内容を以下の変数に保存する:アップロードしたドキュメントを一時的に保管するための変数を設定します。 ※ここで設定できる変数は「ドキュメント変数」タイプ変数のみになります。 ※例では「@DOC」の変数を利用していますが、新たに作成した任意の変数を指定しても問題ありません。任意の変数を使用する場合、変数の種類は「会話変数」「ドキュメント」を設定してください。
LLMインプットノードでは「ドキュメントのアップロードエラー」が発生する場合があります。その場合、「有効なインプットがない場合」の分岐に進むので、その場合にエラーメッセージを表示するノードを作成します。
エンドユーザーにエラーメッセージを表示する場合「会話質問応答ノード」を使用します。
ユーザーに表示するメッセージを設定してください。 この例では「有効なインプットがありません。TOPに戻ります。」と設定しています。
アップロードしたドキュメントに対して実行させたいタスクを入力をさせる場合、「会話質問応答ノード」を使用します。
会話質問応答ノード内を下記の手順に沿って設定します。
メッセージ欄:ユーザーに表示するメッセージを入力してください。
応答追加:ユーザーに実行させたいタスクを入力する枠を作成する場合、チェックを入れてください。
応答を入力してください。:「応答追加」にチェックを入れると応答の種類を選択できます。 テキスト入力枠を作成する場合「テキスト」を選択してください。
応答内容を以下の変数に保存する:ユーザーが入力した「タスク」を一時的に保管するための変数を設定します。 ※例では「@QUERY」の変数を利用していますが、新たに作成した任意の変数を指定しても問題ありません。任意の変数を使用する場合、変数の種類は「会話変数」「文字列」を設定してください。
ここまでの手順で3つのノードが作成できますので、下記の手順でノードを繋いでください。
「START」からドキュメントのアップロードをするためのLLMインプットノードへ矢印を繋ぐ(オレンジ色の矢印)
「有効なインプットがある場合」の分岐から実行したいタスクを入力させる「質問応答ノード」に矢印を繋ぐ(赤色の矢印)
「有効なインプットがない場合」の分岐から有効なインプットがないとのエラーメッセージを表示する「会話応答ノード」に矢印を繋ぐ(緑色の矢印)
アップロードしたドキュメントに対してタスクを実行する場合、「LLMノード」を使用します。
まずはプロンプトを設定していきます。
LLMノード内にあるプロンプトの右横にある下記マークをクリックしてプロジェクト設定>プロンプト管理画面に移動します。
クリックした四角いマークでブラウザの別タブが開きますので、プロジェクト設定>プロンプト管理メニュー内のシングルプロンプトタブ>「プロンプトを追加」ボタンから新規でプロンプトを作成していきます。
プロンプト内は以下のように設定してください。
プロンプト名:アップロードしたドキュメントに対して任意のプロンプトを実行する
説明:アップロードしたドキュメントに対して任意のプロンプトを実行する
プロンプト内容(システム)※コピーして貼り付けてください※: 以下の"ドキュメント情報"に対して"指示"を実行してください。
プロンプト内容(ユーザー)※コピーして貼り付けてください※: #指示 {指示}
#ドキュメント情報 {ドキュメント情報}
動的インプット:
項目:指示 入力値:@QUERY
項目:ドキュメント情報 入力値:@DOC
動的インプットはプロンプトを実行する際にフロー上でユーザーに入力やアップロードさせた情報などをプロンプトに含める時に利用します。 動的インプットを追加する時はドキュメント情報やユーザー入力の情報を保存している変数を指定してください。 動的インプットを追加するとプロンプト入力枠の左下にチップ形式で表示されますので、チップをクリックしてプロンプト内に挿入してください。プロンプト内に挿入された動的インプットは青色で表示されます。
今回のプロンプトでは「プロンプト内容(ユーザー)」に”指示”と”ドキュメント情報”を含めています。
動的インプットの追加が完了したら、プロンプトユーザーの{指示}・{ドキュメント情報}が青く活性化していることを確認し「適用」ボタンをクリックしてください。
~ ブラウザのアプリ編集画面タブに戻ってください ~
アプリ編集画面タブに戻ったら、追加したプロンプトを表示させるためにF5キーをクリックまたはブラウザリロードボタンをクリックして画面を更新し、LLMノードを下記の通り設定します。
実行するタイプを選択してください。:シングルプロンプトを選択してください。
ベースモデル:プロンプトを実行するためのモデルを選択してください。
プロンプト:アップロードしたドキュメントに対して任意のプロンプトを実行する
長いインプットの処理方法を選択:インプットを切り分けずに処理(トークン制限に達するまで)
生成された結果でメンバーに回答:チェックを入れる
設定が完了したら「更新」ボタンをクリックします。
ここまで作成が完了したら下記の手順でノードを繋いでください。
「質問応答ノード」からドキュメントに対して任意のプロンプトを実行するためのLLMノードへ矢印を繋ぐ(赤色の矢印)
回答が得られた場合、TOPのカテゴリー選択に戻る or 会話を終了するボタンを作成します。
ボタンを作成する場合、「会話・質問応答ノード」を使用します。
会話・質問応答ノード内を下記の手順に沿って設定します。
メッセージ欄:ユーザーに表示するメッセージを入力してください
応答追加:ユーザーに選択させるボタンなどを作成する場合、チェックを入れてください。
応答を入力してください。:「応答追加」にチェックを入れると応答の種類を選択できます。 ボタンを作成する場合「ボタン」を選択してください。
オプションを追加:ユーザーにボタンを表示する際のボタン名を設定できます。
オプションを追加ボタンを押すとオプションタイプを選択する画面が表示されますので「一般」をクリックしてください。
クリック後、ボタン名を設定できる画面に遷移しますので、回答オプションにボタン名を入力し、適用ボタンを押してください。
今回のフローでは「TOPに戻る」「会話を終了する」の2つのボタンを用意しますので4.を繰り返して「会話を終了する」ボタンも作成してください。
ここまで作成が完了したら下記の手順でノードを繋いでください。
LLM実行ノードの「成功しました」の分岐から「TOPのカテゴリー選択に戻る or 会話を終了するボタン」のある質問応答ノードへ矢印を繋ぐ
質問応答ノードの「TOPに戻る」のボタンから最初の「LLMインプットノード」に矢印を繋ぐ(青色の矢印)
LLM実行ノードでは「実行エラー」が発生する場合があります。その場合、「プロンプト実行中にエラーが発生した場合」の分岐に進むので、その場合にエラーメッセージを表示するノードを作成します。
エンドユーザーにエラーメッセージを表示する場合「会話質問応答ノード」を使用します。
ユーザーに表示するメッセージを設定してください。 この例では「エラーが発生しました。もう一度最初からやり直してください。」と設定しています。
ここまで作成が完了したら下記の手順でノードを繋いでください。
LLM実行ノードの「プロンプト実行中にエラーが発生した場合」の分岐からエラーメッセージの会話応答ノードへ矢印を繋ぐ(緑色の矢印)
エラーメッセージを表示する「会話応答ノード」からTOPのドキュメントをアップロードをする「LLMインプットノード」へ矢印を繋ぐ(赤色の矢印)
以上でアプリは完成です。
※動的インプットの登録については下記の動画もご参考ください。