다음을 통해 공유


기술 소비자 정보

적용 대상: SDK v4

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

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

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

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

스킬 관리

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

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

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

기술 설명

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

재산 설명
아이디 기술 소비자에 한정된 기술의 ID 또는 키입니다.
앱 ID appId 기술이 Azure에 등록되었을 때 봇 리소스에 할당된 값입니다.
스킬 엔드포인트 스킬에 대한 메시징 엔드포인트입니다. 이는 소비자가 기술과 통신하는 데 사용하는 URL입니다.

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

기술 소비자는 기술 클라이언트를 사용하여 활동을 기술에 전달합니다. 클라이언트:

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

기술 소비자는 기술 핸들러를 사용하여 기술로부터 활동을 수신합니다. 처리기:

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

직접 기술 관리

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

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

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

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

대화 상자 라이브러리를 사용하는 경우 기술 대화 상자를 사용하여 기술을 관리할 수 있습니다. 기술 대화 상자가 활성 상태일 때, 해당 스킬로 활동을 전달합니다.

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

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

응답을 기대하는 배달 방식 사용

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

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