다음을 통해 공유


기술 소비자 정보

적용 대상: SDK v4

기술 소비자는 하나 이상의 기술을 호출할 수 있는 봇입니다. 기술과 관련하여 루트 봇은 기술 소비자이기도 한 사용자 지향 봇입니다.

사용자의 관점에서 루트 봇은 상호 작용하는 봇입니다. 기술의 관점에서 기술 소비자는 사용자와 통신하는 채널입니다. (자세한 내용은 기술 개요참조하세요.)

기술 소비자로서 루트 봇에는 해당 봇과 기술 간의 트래픽을 관리하는 몇 가지 추가 논리가 포함되어 있습니다.

  • 루트에서 사용하는 각 기술에 대한 구성 정보입니다.
  • 루트가 사용자와 주고 받는 대화와 기술이 있는 대화 간에 전환할 수 있는 대화 ID 팩터리입니다.
  • 스킬 봇에 활동을 패키지하고 전달할 수 있는 기술 클라이언트입니다.
  • 스킬 봇에서 요청을 수신하고 작업 압축을 풀 수 있는 기술 처리기입니다.

기술 관리

단일 기술을 시작하고 완료까지 실행하도록 하는 것은 기술 소비자에 몇 가지 추가 사항으로 관리됩니다. 여러 기술 또는 대화 스레드를 사용하여 더 복잡한 시나리오가 가능합니다.

기술 소비자는 다음 두 개 이상의 HTTP 엔드포인트를 구현합니다.

  • 메시징 엔드포인트는 사용자 또는 채널에서 활동을 수신합니다. 이는 모든 봇이 구현하는 일반적인 메시징 엔드포인트입니다.
  • 기술로부터 활동을 수신하기 위한 기술 호스트 엔드포인트입니다. 이는 기술이 회신하는 서비스 URL인 콜백 URL로 작동합니다. (기술 소비자는 기술에서 HTTP 메서드 요청을 수신하는 코드를 기술 처리기와 페어링해야 합니다.)

기술 설명

각 기술에 대한 Bot Framework 기술 개체를 기술 소비자의 구성 파일에 추가합니다. 각 항목에는 기술에 대한 ID, 앱 ID 및 엔드포인트가 있습니다.

속성 Description
ID 기술 소비자에 한정된 기술의 ID 또는 키입니다.
앱 ID 기술이 Azure에 등록될 때 봇 리소스에 할당된 appId입니다.
기술 엔드포인트 기술에 대한 메시징 엔드포인트입니다. 소비자에서 기술과 통신하는 데 사용할 URL입니다.

기술 클라이언트 및 기술 처리기

기술 소비자는 기술 클라이언트를 사용하여 활동을 기술로 보냅니다. 클라이언트:

  • 사용자로부터 또는 소비자가 생성한 기술로 보내는 활동을 사용합니다.
  • 기술로 전송된 활동의 서비스 URL을 소비자의 기술 호스트 엔드포인트로 설정합니다.
  • 원래 대화 참조를 소비자 기술 대화용으로 바꿉니다.
  • 봇-봇 인증 토큰을 추가합니다.
  • 업데이트된 활동을 기술로 보냅니다.

기술 소비자는 기술 처리기를 사용하여 기술로부터 활동을 받습니다. 처리기는 다음을 수행합니다.

  • 채널 서비스 REST API 메서드를 처리합니다.
  • 인증 및 클레임 유효성 검사를 적용합니다.
  • 원래 대화 참조를 검색합니다.
  • 소비자의 어댑터에 대한 활동을 생성합니다. 이 활동은 기술이 완료되었거나 사용자에게 전달할 활동이라는 신호를 보냅니다.

직접 기술 관리

활성 기술을 추적하려면 기술 소비자에 논리를 추가해야 합니다. 일반적으로 기술을 관리하는 방법, 여러 활성 기술을 병렬로 기본 수 있는지 여부 등은 소비자에게 달려 있습니다. 고려해야 할 특정 시나리오는 다음과 같습니다.

  • 새 소비자-기술 대화를 시작합니다. 이 대화는 특정 소비자-사용자 대화와 연결됩니다.
    • 기술에 매개 변수를 전달하려면 초기 작업의 값 속성을 기술로 설정합니다.
  • 기존 소비자 기술 대화를 계속합니다.
  • endOfConversation 기술로부터의 활동을 소비자 기술 대화의 끝을 알리는 신호로 인식합니다.
    • 기술에서 반환 값을 검색하려면 활동의 속성을 검사.
    • 기술이 종료되는 이유를 검사 위해 작업의 코드 매개 변수를 검사, 이는 기술에 오류가 발생했음을 나타낼 수 있습니다.
  • endOfConversation 활동을 기술에 보내서 소비자의 기술을 취소합니다.

기술을 직접 관리하는 소비자에 대한 기술 소비자를 구현하는 방법을 알아보세요.

기술 대화 상자를 사용하여 기술 관리

대화 상자 라이브러리사용하는 경우 기술 대화 상자를 사용하여 기술을 관리할 수 있습니다. 기술 대화 상자는 활성 대화이지만 관련 기술로 활동을 전달합니다.

  • 기술 대화 상자를 만들 때 대화 상자 옵션 매개 변수를 사용하여 소비자의 앱 ID 및 콜백 URL, 사용할 대화 ID 팩터리, 기술의 속성 등 대화 상자에서 기술을 관리하는 데 필요한 모든 정보를 제공합니다.
    • 둘 이상의 기술을 대화 상자로 관리하려면 각 기술에 대해 별도의 기술 대화 상자를 만들어야 합니다.
    • 종종 구성 요소 대화 상자에 기술 대화 상자를 추가합니다.
  • 기술 대화를 시작하려면 대화 컨텍스트의 begin 메서드를 사용하고 기술 대화의 ID를 제공합니다. 옵션 매개 변수를 사용하여 소비자가 기술에 대한 첫 번째 활동으로 보낼 활동을 제공합니다.
  • 다른 대화 상자와 마찬가지로 기술 대화 상자를 취소하거나 중단할 수 있습니다. 예제에 대한 사용자 중단을 처리하는 방법을 참조하세요.

대화 상자를 사용하여 대화 상자를 사용하여 기술을 관리하는 소비자에 대한 기술을 사용하는 방법을 알아보세요.

예상 회신의 배달 모드 사용

봇과 기술은 통신을 위해 HTTPS를 통해 업계 표준 REST 및 JSON을 사용합니다. 일반적인 활동 처리 흐름은 루트 봇이 메시징 엔드포인트의 채널에서 게시물을 수신할 때 시작됩니다. 그런 다음 루트 봇은 처리를 위한 기술로 활동을 보냅니다. 기술의 회신은 메시징 엔드포인트가 아닌 루트 봇의 기술 호스트 엔드포인트에 다시 게시됩니다. 마지막으로, 회신은 루트 봇에 의해 추가로 처리되거나 채널에 다시 게시됩니다. 이 일반 흐름은 기술로 전송된 활동의 배달 모드를 변경하여 변경할 수 있습니다. 배달 모드가 "ExpectReplies"로 설정된 경우 기술은 기술 호스트 엔드포인트에 다시 게시되지 않습니다. 대신 모든 회신 활동이 응답 본문으로 직렬화됩니다. 그런 다음 루트 봇은 이러한 활동을 반복하여 기술 호스트 엔드포인트에서 처리한 방법과 유사하게 처리합니다.

자세한 내용은 작업 사양의 배달 모드 를 참조하세요.