Bot Framework SDK란?

적용 대상: SDK v4

Microsoft Bot Framework 및 Azure AI Bot Service는 지능형 봇을 빌드, 테스트, 배포 및 관리할 수 있는 라이브러리, 도구 및 서비스의 컬렉션입니다. Bot Framework에는 봇을 빌드하고 AI 서비스에 연결하기 위한 모듈식 및 확장 가능한 SDK가 포함되어 있습니다. 개발자는 이 프레임워크를 사용하여 음성을 사용하고 자연어를 이해하고 질문에 답변하는 봇을 만들 수 있습니다.

봇을 빌드하기 위한 Microsoft 제품 및 서비스 목록, 봇이 지원하는 사용자 및 각각에 대한 간략한 설명은 사용 사례에 적합한 챗봇 솔루션 선택을 참조하세요.

봇이란?

봇은 컴퓨터를 사용하는 것처럼 느껴지지 않으며 사람 또는 지능형 로봇을 다루는 것과 같은 환경을 제공합니다. 봇을 사용하여 저녁 식사 예약 또는 프로필 정보 수집과 같은 간단하고 반복적인 작업을 더 이상 직접적인 사용자 개입이 필요하지 않을 수 있는 자동화된 시스템으로 전환할 수 있습니다. 사용자는 텍스트, 대화형 카드 및 음성을 사용하여 봇과 대화합니다. 봇 상호 작용은 질문에 대한 빠른 답변 또는 서비스에 대한 액세스를 지능적으로 제공하는 관련 대화일 수 있습니다.

봇을 생각하는 한 가지 방법은 대화형 인터페이스가 있는 웹 애플리케이션입니다. 사용자는 Facebook, Slack, Microsoft Teams 또는 사용자 지정 애플리케이션과 같은 채널을 통해 봇에 연결합니다.

  • 봇이 구성된 방법과 채널에 등록되는 방법에 따라 상호 작용은 텍스트 또는 음성에 있을 수 있으며 이미지와 비디오를 포함할 수 있습니다.
  • 봇은 사용자의 입력을 처리하여 사용자가 요청하거나 말한 내용을 해석합니다.
  • 봇은 입력을 평가하고 사용자에게 추가 정보를 요청하거나 사용자를 대신하여 서비스에 액세스하는 등의 관련 작업을 수행합니다.
  • 봇은 사용자에게 응답하여 봇이 무엇을 하고 있는지 또는 수행했는지 알 수 있도록 합니다.

A remote bot interacts with a user on a device via text, speech, images, or video.

봇은 Azure에서 호스트되고 API를 사용하여 메시지를 보내고 받는 웹 애플리케이션으로 구현되는 경우가 많습니다. 봇의 내용은 봇의 종류와 용도에 따라 크게 달라집니다. 봇은 관련 코드가 거의 없는 메시지를 수신하고 사용자에게 다시 에코할 수 있습니다. 더 복잡한 봇은 다양한 도구와 서비스를 사용하여 다양한 플랫폼에서 보다 풍부한 환경을 제공할 수 있습니다.

봇은 파일에서 읽고 쓰고, 데이터베이스 및 API를 사용하고, 정기적인 계산 작업을 수행하는 등 다른 유형의 소프트웨어에서 수행할 수 있는 것과 동일한 작업을 수행할 수 있습니다. 봇을 고유하게 만드는 것은 인간 간 통신에 사용되는 메커니즘을 사용하는 것입니다.

Azure AI Bot Service 및 Bot Framework에는 다음이 포함됩니다.

  • C#, JavaScript, Python 또는 Java에서 봇을 개발하기 위한 Bot Framework SDK입니다. (Java SDK는 2023년 11월에 종료되는 최종 장기 지원으로 사용 중지됩니다.)
  • 엔드투엔드 봇 개발에 도움이 되는 CLI 도구입니다.
  • 봇 커넥트 봇과 채널 간에 메시지와 이벤트를 릴레이하는 서비스입니다.
  • 봇 관리 및 구성을 위한 Azure 리소스.

또한 봇은 다음과 같은 다른 Azure 서비스를 사용할 수 있습니다.

  • 지능형 애플리케이션을 빌드하는 Azure AI 서비스
  • 클라우드 스토리지 솔루션용 Azure Storage

봇을 빌드하는 방법

Azure AI Bot Service 및 Microsoft Bot Framework는 봇 수명 주기의 모든 단계를 통해 봇을 디자인하고 빌드하는 데 도움이 되는 통합된 도구 및 서비스 집합을 제공합니다. C#, Java, JavaScript, TypeScript 및 Python용 SDK가 있습니다. 즐겨 찾는 개발 환경 또는 명령줄 도구를 선택하여 봇을 만듭니다.

Illustration of the steps in the bot life cycle.

계획

봇을 성공적으로 만드는 프로세스에서는 소프트웨어의 형식에 관계 없이 목표, 프로세스 및 사용자 요구 사항을 철저하게 파악하는 것이 중요합니다. 간단한 봇을 만들거나 음성, 자연어 이해 및 질문 답변과 같은 보다 정교한 기능을 포함할 수 있습니다.

코드를 작성하기 전에 모범 사례에 대한 봇 디자인 지침을 검토하고 봇에 대한 요구 사항을 식별합니다.

빌드

일반적으로 봇은 Azure에서 호스트되는 웹 서비스입니다. Azure에서는 다양한 채널에서 메시지와 이벤트를 보내고 받도록 봇을 구성할 수 있습니다. 다양한 환경 및 언어로 봇을 만들 수 있습니다. 로컬 개발을 위한 봇을 만들 수 있습니다.

Azure AI Bot Service 및 Bot Framework를 사용하면 다른 라이브러리 및 서비스를 사용하여 봇의 기능을 확장할 수 있습니다. 이 표에서는 SDK에서 지원하는 일부 기능에 대해 설명합니다.

기능 설명 자세한 정보
메모리 및 스토리지 사용자 및 대화 상태 유지 상태 관리
자연어 해석 사용자 입력에서 정보 해석 및 추출 언어 이해
리치 카드 이미지, 오디오, 비디오 및 단추와 같은 텍스트 및 기타 미디어 결합 미디어 및 카드 추가하는 방법

봇 자산을 만들고, 관리하고, 테스트하는 데 도움이 되는 명령줄 도구입니다. 자세한 내용은 Azure CLIBot Framework 도구를 참조하세요.

전체 코드 샘플은 Bot Framework 샘플 리포지토리참조하세요. 샘플은 SDK의 많은 기능을 보여 줍니다.

테스트

봇은 다양한 부분이 함께 작동하는 복잡한 앱입니다. 다른 복잡한 앱과 마찬가지로 이로 인해 몇 가지 흥미로운 버그가 발생하거나 봇이 예상과 다르게 동작할 수 있습니다. 게시하기 전에 봇을 테스트합니다. 당사는 사용을 위해 릴리스되기 전에 봇을 테스트할 수 있는 여러 가지 방법을 제공합니다.

  • Bot Framework Emulator를 사용하여 로컬로 봇을 테스트합니다. Bot Framework Emulator는 채팅 인터페이스뿐만 아니라 봇이 수행하는 방식과 이유를 이해하는 데 도움이 되는 디버깅 및 심문 도구를 제공하는 독립 실행형 앱입니다. 에뮬레이터는 개발 중인 봇 애플리케이션과 함께 로컬로 실행할 수 있습니다.

  • 에서 봇을 테스트합니다. Azure Portal을 통해 구성되면 웹 채팅 인터페이스를 통해 봇에 연결할 수도 있습니다. 웹 채팅 인터페이스는 테스터 및 봇의 실행 코드에 직접 액세스할 수 없는 다른 사용자에게 봇에 대한 액세스 권한을 부여하는 좋은 방법입니다.

  • 현재 Bot Framework SDK를 사용하여 봇을 단위 테스트 합니다.

게시

에서 봇을 사용할 준비가 되면 Azure 에 봇을 배포하거나 사용자 고유의 웹 서비스 또는 데이터 센터에 배포합니다. 공용 인터넷에 주소를 두는 것은 봇이 사이트 또는 채팅 채널 내에서 생활하는 첫 번째 단계입니다.

연결

Twilio를 통해 Facebook, Messenger, Slack, Microsoft Teams, Telegram 및 SMS와 같은 채널에 봇을 커넥트. Bot Framework는 이러한 다양한 플랫폼에서 메시지를 보내고 받는 데 필요한 대부분의 작업을 수행합니다. 봇 애플리케이션은 연결된 채널의 수와 유형에 관계없이 통합되고 정규화된 메시지 스트림을 받습니다. 채널을 추가하는 정보는 채널 토픽을 참조하세요.

Evaluate

Azure Portal에서 수집된 데이터를 사용하여 봇의 성능과 기능을 향상시킬 기회를 확인합니다. 트래픽, 대기 시간 및 통합과 같은 서비스 수준 및 계측 데이터를 가져올 수 있습니다. 또한 Analytics는 사용자, 메시지 및 채널 데이터에 대한 대화 수준 보고를 제공합니다. 자세한 내용은 분석을 수집하는 방법을 참조 하세요.

다음 단계