Bot Framework 일반 질문과 대답

이 문서에서는 일반적으로 묻는 일반적인 질문에 답변합니다.

적용 대상: SDK v4

입력 작업이 아무 것도 수행하지 않는 이유는 무엇인가요?

일부 채널은 클라이언트에서 일시적인 입력 업데이트를 지원하지 않습니다.

SDK의 커넥트or 라이브러리와 Builder 라이브러리의 차이점은 무엇인가요?

커넥트or 라이브러리는 REST API의 처리입니다. Builder 라이브러리는 프롬프트, 프로그래밍 모델 및 프롬프트, Watefall, 체인 및 안내가 있는 양식 완성 같은 대화형 대화 프로그래밍 모델 및 기타 기능을 추가합니다. 또한 Builder 라이브러리는 자연어 이해와 같은 Azure AI 서비스에 대한 액세스를 제공합니다.

사용자 메시지는 HTTPS 메서드 호출과 어떻게 관련합니까?

사용자가 채널을 통해 메시지를 보내면 Bot Framework 웹 서비스는 봇의 웹 서비스 엔드포인트에 HTTPS POST를 실행합니다. 봇은 이 채널에서 보내는 각각의 메시지에 대해 Bot Framework에 별도의 HTTPS POST를 실행하여 0, 1 또는 여러 메시지를 사용자에게 돌려보낼 수 있습니다.

"사전 대응"과 "반응성"의 차이점은 무엇인가요?

봇의 관점에서 "반응성"은 사용자가 봇에 메시지를 보내 대화를 시작하고 봇이 해당 메시지에 응답하여 반응한다는 것을 의미합니다. 반면에 "사전 대응"은 봇이 사용자에게 첫 번째 메시지를 보내 대화를 시작한다는 것을 의미합니다. 예를 들어 봇은 타이머가 만료되거나 이벤트가 발생할 때 사용자에게 알리는 자동 관리 메시지를 보낼 수 있습니다.

사용자에게 자동 관리 메시지를 보내려면 어떻게 해야 하나요?

자동 관리 메시지를 보내는 방법을 보여 주는 예제는 GitHub의 BotBuilder-Samples 리포지토리 내에서 C# V4 샘플Node.js V4 샘플을 참조하세요.

ETag란? 봇 데이터 스토리지와는 어떤 관계가 있나요?

ETag는 낙관적 동시성 제어를 위한 메커니즘입니다. 이 봇 데이터 모음은 데이터 업데이트 충돌을 방지하기 위해 ETag를 사용합니다. HTTP 상태 코드 412 "사전 조건 실패"의 ETag 오류는 봇이 첫 번째 작업을 완료하기 전에 여러 메시지가 병렬로 수신되었음을 나타냅니다. 대화 스택 및 상태는 봇 데이터 모음에 저장됩니다. 예를 들어 봇이 해당 대화에 대한 새 메시지를 받을 때 이전 메시지를 계속 처리하는 경우 "사전 조건 실패" ETag 오류가 표시될 수 있습니다.

속도 제한이란?

Bot Framework 서비스는 단일 봇이 다른 봇의 성능에 부정적인 영향을 줄 수 없도록 악의적인 호출 패턴(예: 서비스 거부 공격)으로부터 자신과 고객을 보호해야 합니다. 이러한 종류의 보호를 위해 엔드포인트에 속도 제한(제한이라고도 함)을 추가했습니다. 속도 제한을 적용하여 클라이언트 또는 봇에서 특정 호출을 수행할 수 있는 빈도를 제한할 수 있습니다. 예를 들어 속도 제한을 사용하도록 설정하면 봇이 많은 수의 활동을 게시하려는 경우 일정 기간 동안 간격을 지정해야 합니다. 속도 제한의 목적은 봇의 총 볼륨을 제한하는 것이 아닙니다. 사용자 대화 패턴을 따르지 않는 대화형 인프라의 남용을 방지하도록 설계되었습니다. 예를 들어, 두 명의 인간이 사용할 수 있는 것보다 더 많은 콘텐츠로 두 개의 대화를 범람합니다.

속도 제한은 무엇인가요?

당사는 속도 제한을 지속적으로 조정하여 가능한 한 관대하게 만드는 동시에 서비스와 사용자를 보호하고 있습니다. 임계값은 때때로 변경되므로 현재 숫자를 게시하지 않습니다. 마지막으로 App Service에서 봇을 호스팅하는 경우 봇은 App Service의 제한 사항에 바인딩됩니다. 자세한 내용은 Azure 서비스에 대한 SLA 요약을 참조하세요. 속도 제한의 영향을 받는 경우 언제든지 문의bf-reports@microsoft.com하세요.

채널을 사용하여 전송되는 파일의 크기 제한은 무엇인가요?

일부 채널에는 전송할 수 있는 파일의 크기 또는 형식에 제한이 있습니다. 예를 들어 Direct Line과 Facebook은 모두 작업 페이로드를 262,144바이트제한하지만 Bot Framework Emulator에는 제한이 없습니다. 이러한 제한은 채널에 의해 부과됩니다. 이 제한을 초과하는 메시지를 보내면 다음과 같은 오류가 발생할 수 있습니다. 요청 콘텐츠 길이가 262,144바이트 제한을 초과했습니다. 그러나 리소스에 대한 링크를 인터넷 첨부 파일로 제공할 수 있습니다. 첨부 파일을 보내는 방법에 대한 자세한 내용은 메시지에 미디어를 추가하는 방법을 참조 하세요.

속도 제한의 영향을 받는지 어떻게 알 수 있나요?

대용량에서도 속도 제한이 발생할 가능성은 거의 없습니다. 대부분의 속도 제한은 작업의 대량 전송(봇 또는 클라이언트로부터), 과도한 부하 테스트 또는 버그로 인해서만 발생합니다. 요청이 제한되면 요청을 다시 시도하기 전에 대기할 시간(초)을 나타내는 Retry-After 헤더와 함께 HTTP 429(너무 많은 요청) 응답이 반환됩니다. Azure 애플리케이션 Insights를 통해 봇에 대한 분석을 사용하도록 설정하여 이 정보를 수집할 수 있습니다. 또는 봇에 코드를 추가하여 메시지를 기록할 수 있습니다.

속도 제한은 어떻게 발생하나요?

속도 제한은 다음 조건 중 어느 것에 의해 발생합니다.

  • 봇이 메시지를 너무 자주 보냅니다.
  • 봇의 클라이언트가 메시지를 너무 자주 보냅니다.
  • 직접 회선 클라이언트는 새 웹 소켓을 너무 자주 요청합니다.

인간 인계를 구현하는 방법

때때로 봇이 사용자를 이해하지 못하거나 요청을 자동화할 수 없는 경우와 같이 봇에서 인간에게 대화를 전송(전달)해야 합니다. 이러한 경우 봇은 인간에게 전환을 제공합니다. Bot Framework SDK는 인간에게 전달을 지원합니다. 핸드오프 작업을 신호로 표시하기 위한 몇 가지 이벤트 유형 이 있습니다. 이러한 이벤트는 봇에이전트 허브(Engagement Hub라고도 함) 간에 교환됩니다. 이 에이전트 허브는 일반적으로 인간인 에이전트가 사용자로부터 요청을 받고 처리하고 봇의 에스컬레이션 요청을 처리할 수 있도록 하는 애플리케이션 또는 시스템으로 정의됩니다. 자세한 내용은 봇에서 휴먼 문서로의 전환 대화를 참조하세요.