Sow and Pigs Public House, Thundridge, Hertfordshire
© Copyright Christine Matthews and licensed for reuse under this Creative Commons Licence.

 

前回は、Azure Prompt Flowの標準Prompt flowテンプレート(Standard flow)を実際に使ってみた結果をご覧いただきました。今回は、チャット用標準テンプレート(Chat flow)を実際に使ってみた例をご覧いただきます。

 

■チャット用標準テンプレート(Chat flow)の選択

Prompt flow画面の呼び出しと、新しいプロンプト用のPrompt flowを作成するための画面は、前回ご紹介した通りです。Prompt flowの画面で「+ Create」をクリックすると下の画面(Create a new flow)がポップアップします。

 

■チャット用標準テンプレートの利用

上図中、赤枠で囲った「Chat flow」テンプレートの「Create」ボタンをクリックすると、以下の画面に切り替わります。

チャット用標準Prompt flowは、画面右側のビジュアルインタフェース部分で示されている通りです。

 

■サンプル入力:inputs

このテンプレートでは、上図中央の「Inputs」欄にあるように入力データが2つあり、1つはデータ名「chat_history」、データ型:リストで、初期値は空(Value欄:[])となっています。

もう1つは、データ名:question、データ型:stringで、図中「please input content in chat box」となっていて、「Chat」実行時、Prompt flow画面右側にビジュアルインタフェースに代わって表示される「Chatペイン」(後述)のチャット入力欄からの文字例入力を受け付けるようになっているようです。

 

■Chat呼び出し:chat

「chat」は、GPTに渡すプロンプトの内容を定義するLLM呼び出し用サンプルテンプレートとして用意されたもので、上図中赤枠で示した「+LLM」をクリックすることで、新たなLLM呼び出しを作成することができます。

「∨ Inputs」欄を見ると、「chat」にも入力データが2つあり、1つはデータ名「question」、データ型:stringで、先の「inputs」入力データ:questionで与えられたもの(${inputs.question})。もう1つは(2度目以降の実行時)「input」のchat_historyで与えられた文字列です。

「∨ Prompt」欄に12行のプロンプトテンプレートが入っており、「input」から渡されたchat_history(${inputs.chat_history})が空の場合は、「Input」から渡された、チャット入力欄からの文字例入力がGPTに渡され、GPTからの回答を出力(${chat.output})。

(2度目以降の実行では)、「input」から渡されたchat_history(${inputs.chat_history})が空ではないので、4~9行目のプロンプトの内容が実行されるということのようです。(まだ、「{% for item in chat_history %}~{% endfor %}」のシンタックスの解説が見つかっていないので、結果からの判断です)

 

■サンプル出力:outputs

画面中央の「Outputs」欄に、データ名:answert、値として「chat」の出力(${chat.output})が設定されていますので、テンプレートのままこのプロンプトフローを実行すると、chatから渡されたデータがそのまま出力されることになります。

 

■チャット用標準テンプレートの初回実行

上図中赤枠で囲った「Chat」をクリックして、チャット用標準テンプレートを実行すると、画面右側がビジュアルインタフェースからチャット用のペインに切り替わり、右下に下図のようなチャット入力フィールドが現れます。

このチャット入力欄に「これは1回目のチャット入力データです」と入れて送信(上図中赤丸部分をクリック)し、しばらくたってGPTから得た回答の結果が、次の図となります。

「Chat」ペインを見ると、入力した内容に対して、GPTから「こんにちは!どのようにお手伝いできますか?」が返されており、中央の「Inputs」欄を見ると、空だったchat_historyに、先ほどチャット入力フィールド入力した「「これは1回目のチャット入力データです」のデータが、”question”と対にして保持されていることが分かります。

また、画面中央の「chat」の「>Outputs」欄の「View full output」をクリックすると、GPTからの回答内容「こんにちは!どのようにお手伝いできますか?」が確認できました。

■チャット用標準テンプレートの2度目の実行

チャット入力欄に「これは2回目のチャット入力データです」と入れて送信(上図中赤丸部分をクリック)し、しばらくたってGPTから得た回答の結果が、次の図となります。

「Chat」ペインを見ると、入力した内容に対して、GPTから「こんにちは!前回に引き続きお手伝いします。どのようなご質問やお悩みがありますか?お気軽にお知らせください。」が返されており、中央の「Inputs」欄を見ると、「これは2回目のチャット入力データです」のデータが、questionデータとなり、chat_historyデータには、赤丸を付けた部分をクリックすることで、上図下段の「Edit」以下の内容がポップアップ表示され、チャット入力とGPTからの回答のヒストリが保持されていることが確認できました。

 

ということで、今回は、OpenAI Serviceと連携するPrompt flowのチャット用標準テンプレートの使い方について確認しました。

次回は、評価フローテンプレート(Evaluation flow)の使い方についてご紹介したいと思います。

 

終わり