Bot Framework v3.0부터 시작 BOT 개발: 〇 브웨이 주문 접수 BOT 더 정중하게 - FormFlow(2)

좀 더 정중한 커뮤니케이션을 실시하는 "〇부웨이 주문 접수 BOT"(개량판)



지난번은, 선택사항에 의한 질문(복수)을 실시하는 정형 프로세스("〇브웨이 주문 접수 BOT"라고 합니다)의 가장 간단한 형태를 FormFlow 클래스로 작성했습니다. 이번에는 FormFlow의 기본 기능을 사용하여 좀 더 정중한 응답을 하는 BOT로 만들어 보겠습니다.

Microsoft Bot Framework v3.0부터 시작하는 BOT 개발

아래 준비



FormFlow를 사용하여 정형 목록 질문을 수행하는 BOT 동작 개발 에서 작성한 SandwichBot (〇 브웨이 주문 접수 BOT)를 베이스로 개량해 나갑니다.

SandwichBot (〇ブウェイ注文受付 BOT) の単純形

선택을 듣는 메시지 변경



"~를 선택하십시오"라는 문구는 Bot Framework에서 제공하는 표준 메시지입니다. 이것을 좀 더 주문에 맞는 메시지로 변경합니다.
해당 질문 항목 위에 프롬프트를 사용하여 메시지를 입력하면됩니다. {?}은 항목 이름이고 {||}은 선택 사항을 포함합니다.

MessagesController.cs
[Serializable]
public class SandwichOrder
{
    [Prompt("{&}をひとつお選びください{||}")]
    public SandwichOptions? サンドイッチの種類;
    :
    [Prompt("{&}(複数選択もOK)をお選びください{||}")]
    public List<ToppingsOptions> 追加するオプション;
    :

또는 TemplateAttibute를 사용하여 메시지를 입력합니다. 위와 출력 결과는 동일합니다.

MessagesController.cs
[Serializable]
public class SandwichOrder
{
    [Template(TemplateUsage.EnumSelectOne, "{&}をひとつお選びください{||}")]
    public SandwichOptions? サンドイッチの種類;
    :
    [Template(TemplateUsage.EnumSelectMany, "{&}(複数選択もOK)をお選びください{||}")]
    public List<ToppingsOptions> 追加するオプション;
    :

확인 대화 상자 추가



IFormBuilder.Message에서 메시지를 출력하고 IFormBuilder.Field를 사용하여 한 항목씩 출력합니다. IFormBuilder.Confirm을 사용하면 선택 사항 확인 (및 다시 선택) 대화 상자를 추가 할 수 있습니다.

MessagesController.cs
[Serializable]
public class SandwichOrder
{
    :
    public static IForm<SandwichOrder> BuildForm()
    {
        return new FormBuilder<SandwichOrder>()
            //.Message("こんにちは! 野菜の○ブウェイです。ご注文をどうぞ!")
            //.Build();

            .Message("こんにちは! 野菜の○ブウェイです。ご注文を承ります!")
            .Field(nameof(サンドイッチの種類))
            .Field(nameof(サイズ))
            .Field(nameof(パンの種類))
            .Field(nameof(追加するオプション))
            .Field(nameof(抜きたい野菜))
            .Field(nameof(増やしたい野菜))
            .Field(nameof(ソース))
            .Confirm("注文はこちらでよろしいでしょうか? (宜しければ 1:はい, 変更する場合は 2:いいえ を送信してください) ----- {サンドイッチの種類}、{サイズ}サイズ&{パンの種類} (追加オプション:{追加するオプション}、野菜抜き:{抜きたい野菜}、野菜増量:{増やしたい野菜}、{ソース}ソース)")
            .Message("ご注文完了です。")
            .Build();
    }
}

Emulator로 동작 확인



이상의 내용으로 동작 확인을 실시합니다.

Bot Framework Channel Emulator의 동작 확인 방법은 여기를 참조하십시오.
Microsoft Bot Framework v3.0부터 시작하는 BOT 개발: Bot 응용 프로그램의 로컬 실행 및 에뮬레이터 액세스

7개의 질문 항목이 제시되어 거기에 대답하는 흐름은 지난번과 같습니다.


이번에는 확인 대화 상자가 표시되므로 선택한 내용으로 확정하려면 "예"를, 다시 선택하려면 "아니오"를 입력합니다. (Locale:ko-kr의 경우)

다이얼로그나 Locale 에 대해서는 이쪽을 확인해 주세요.
Microsoft Bot Framework v3.0부터 시작 BOT 개발: 예/아니 대화 상자 표시 - Dialog(2)

IFormBuilder.Confirm による確認ダイアログ

확인 대화 상자에서 아니요를 선택하면 변경할 항목을 선택하고 변경할 수 있습니다.
IFormBuilder.Confirm による確認ダイアログ(いいえを選択した場合)

[참고] 샘플 앱을 공개했습니다.



이전 단계에서 만든 앱 샘플로 공개 (GitHub) .

좋은 웹페이지 즐겨찾기