Bot Builder v4에서 봇 개발 : 스킬 개발 - 7 스킬 디버깅

지난번 의 기사에서는 템플릿으로 작성된 유닛 테스트를 보았습니다. 이번에는 스킬의 디버깅에 대해 생각해 보겠습니다.

메시지 유형 동작 디버깅



메시지 유형 기술은 일반 봇과 동일하므로 Bot Framework 에뮬레이터에서 디버깅할 수 있습니다. 따라서 특별한 대응은 필요하지 않습니다.

이벤트 유형 액션 디버깅



이벤트 유형 디버깅에는 두 가지 유형이 있습니다.
  • 로컬 디버깅
  • 원격 디버깅

  • 로컬 디버깅



    우선 Bot Framework 에뮬레이터를 사용한 로컬 디버깅을 살펴보겠습니다. 이벤트 유형의 조치는 ActivityType이 Event여야 하지만 현재 버전의 에뮬레이터에서는 조치에 대한 이벤트 유형을 보낼 수 없습니다.

    그러나 시리즈의 그 5 에서도 소개했듯이, EventDebuggerMiddleware/event: .
    /event:{name:"アクション名",value:"<入力パラメーター>"}
    

    또 다른 점은 ITurnContextEx.cs의 IsSkill 확장 메소드에서 스킬 호출 여부를 확인하고 있습니다. 로 간주되지 않습니다. 그래서 코드를 다음과 같이 다시 씁니다.
    public static class ITurnContextEx
    {
        public static bool IsSkill(this ITurnContext turnContext)
        {
            if (turnContext.Activity.Type == ActivityTypes.Event && turnContext.Activity.ChannelId == "emulator")
                return true;
    
            return turnContext.TurnState.Get<ClaimsIdentity>("BotIdentity") is ClaimsIdentity botIdentity && SkillValidation.IsSkillClaim(botIdentity.Claims) ? true : false;
        }
    }
    

    이제 에뮬레이터에서 실행하면 이벤트를 디버깅할 수 있습니다.

    SampleAction


    GetTimeAction


    원격 디버깅



    어시스턴트 봇이나 Power Virtual Agent에서 호출할 때 디버깅을 원하는 경우 매니페스트를 변경하여 대응합니다. 다음은 PVA의 예입니다.

    1. ngrok에서 로컬 서버를 설정합니다.
    ngrok http --host-header=localhost:3987 3978
    

    2. manifest-1.0.json을 ngrok 주소로 업데이트합니다.


    3. Azure AD에서 응용 프로그램의 Homepage 주소를 업데이트합니다.


    4. PVA 기술을 다시 읽습니다.


    5. 중단점을 설정하고 PVA에서 호출합니다.


    요약



    라이브 디버깅도 안전했습니다. 이것으로 개발도 어리석은 것 같습니다.

    목차로 돌아가기

    좋은 웹페이지 즐겨찾기