MixedCode

안녕하세요.믹스드코드 운영자 강창훈입니다.

BotFramework 기반 ChatBot을 개발하기위해서는 이전장에서도 설명드린대로 총4가지 방식이 있지만 금번 코드랩에서는 기본적으로 .NET 개발환경에서의 개발에 초점을 맞춰 진행해보도록 하겠습니다.

.NET Framework에 대해서 생소하신분들은 믹스드코드의 다음 게시글을 참고해주시기 바라며 개발환경 구성부터 시작해 보도록 하겠습니다.http://mixedcode.com/Article/Index?aidx=1065


1..NET 기반 BotFramework 개발환경 구성하기

1.1 Visual Studio 2017 Community 다운로드 설치
.NET 과 BotFramework 기반에서 ChatBot을 개발하기 위해서는 통합개발환경(IDE=개발툴)으로 Visual Studio2017을 사용합니다.
Visual Studio 제품군과 Visual Studio 2017 설치에 관련된 내용은 아래 관련 게시글 참고해주시기 바랍니다.
http://mixedcode.com/Article/Index?aidx=1149
http://mixedcode.com/Article/Index?aidx=1066

.NET 용 Bot Builder SDK는 Visual Studio 제품군중 Visual Studio 2017 버전만 지원하며 Visual Studio For Mac 제품군에서는 아직 지원하지 않습니다.

1.2 Bot Builder SDK for .NET 설치 및 솔루션 프로젝트 구성하기
.NET 용 Bot Builder SDK는 .NET 개발자가 봇을 작성하는 데 익숙한 방법을 제공하기 위해 Visual Studio 와 C#언어를 활용합니다.
.NET 용 Bot Builder SDK는 오픈소스로 개발제공되고 있으며 GitHub에서 SDK소스를 다운로드 받을수도 있습니다.
.NET 용 Bot Builder SDK는 NuGet 패키지 형태로 Visusal Studio에서 자동다운로드 설치가 가능합니다.

.NET Framework 용 Bot Builder SDK에는 .NET Framework 4.6 이상이 필요합니다.
더 낮은 버전의 .NET Framework를 대상으로하는 기존 프로젝트에 SDK를 추가하는 경우 먼저 .NET Framework 4.6을 대상으로 프로젝트를 업데이트해야합니다.

Visual Studio 2017이 설치되었으면 .NET 과 Botframework 기반에서 보다 쉽게 Chatbot 개발환경을 지원해주는 .NET용 Bot Builder SDK를 다음과 같은 절차에 의해 설치를 진행합니다.

1) Visual Studio 2017 에 Bot Builder SDK for .NET 설치하기

A. Visual Studio 2017 기반 솔루션 및 프로젝트 구성하기

-Visual Studio를 오픈하고 상단 파일>새로만들기>프로젝트를 클릭합니다.


-새프로젝트 팝업에서 좌측 설치됨>기타프로젝트형식>Visual Studio 솔루션을 선택합니다.
-중앙 최상단에 .NetFramework버전을 .NetFramework4.6을 반드시 선택하고 가운데 빈솔루션을 선택한후 솔루션 이름을 BotFrameworkSolution이라고 입력하고 솔루션폴더 생성위치를 특정 디렉토리로 지정한후 확인버튼을 클릭합니다.


-솔루션탐색기에 빈솔루션이 생성된것을 확인합니다.
-솔루션 탐색기에 오른쪽 마우스클릭 >추가>새프로젝트를 클릭합니다.


-좌측 Visual C# 언어를 선택하고 상단에 .NET Framework 4.6 버전을 선택후 중앙에 콘솔앱(.NET Framework) 템플릿을 선택후 이름을 SampleConsoleApp으로 입력 후 확인버튼을 클릭합니다.
-SampleConsoleApp이 생성된것을 확인합니다.



B.NuGet 패키지로 프로젝트에 Microsoft.Bot.Builder설치하기
-NugetPackage는 Visual Studio의 각종 프로젝트에 외부에서 검증된 각종 오픈소스 프로젝트 개발 결과물을 쉽게 포함시킬수 있는 오픈소스 배포시스템 및 제공환경으로 이해하시면 좋을듯합니다.  따라서 일반적으로는 인터넷에 연결된 환경에서 NugetPackage 시스템 사용이 가능합니다.

-솔루션 탐색기에서 SampleConsoleApp 프로젝트 이름에 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리 ...를 클릭합니다.
-찾아보기 탭에서 조회박스에 "Microsoft.Bot.Builder"를 입력하고 조회를 실시합니다.
-조회결과 목록에서 Microsoft.Bot.Builder를 선택하고 설치를 클릭합니다.


-미리보기 확인창과 라이선스 확인창이 뜨면 확인 및 동의함을 선택합니다
-BotFramework Microsoft.Bot.Builder가 설치완료된것을 확인합니다.






2)Visual Studio 프로젝트 템플릿 설치 및 프로젝트 생성하기
봇 개발의 생산성과 효율성을 높이기 위해 BotFramework용 Visual Studio 프로젝트 템플릿을 다운로드합니다. 제공되는 템플릿의 종류는 아래와 같습니다.
• C #으로 봇을 개발하기위한 Visual Studio 용 봇 템플릿
• C #으로 Cortana 기술을 개발하기위한 Visual Studio 용 Cortana 기술 템플릿

A. C# Bot Template 다운로드
http://aka.ms/bf-bc-vstemplate
-압축파일을 다운로드 후 압축을 해제합니다.
-Visual Studio 2017를 닫습니다.
-아래 윈도우 현재 사용자 계정폴더경로에 압축해제 Bot Application 폴더를 복사 붙여넣습니다.
-C:\Users\사용자계정폴더명\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\ 폴더내에
압축해제된 폴더인 Bot Application폴더를복사 붙여넣기 합니다.


B.C# Cortana Template 다운로드
https://aka.ms/bf-cortanaskill-template
-압축파일을 다운로드 후 압축을 해제합니다.
-Visual Studio 2017를 닫습니다.
-아래 윈도우 현재 사용자 계정폴더경로에 압축해제 Bot Application - Cortana Skill 폴더를 복사 붙여넣습니다.
-C:\Users\사용자계정폴더명\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C# 폴더내에
압축해제된 폴더인 Bot Application - Cortana Skill 폴더를 복사 붙여넣기 합니다.






-Visual Studio를 실행후 새 프로젝트 만들기에 해당 템플릿이 나타나는지 확인합니다.


C. BotFramework 템플릿으로 프로젝트 생성하기
-기존에 생성한 BotFrameworkSolution 을 오픈하고 솔루션 탐색기에 솔루션명에 오른쪾마우스 클릭>추가>새프로젝트를 선택합니다.
-.NET Framework 4.6을 선택하고 중앙에 Bot Application 템플릿을 선택 후 프로젝트이름을 BotSample1Application으로 입력후 확인버튼을 클릭합니다.


1.3 봇프레임워크 에뮬레이터 설치하기
Bot Framework Emulator는 로컬 또는 원격으로 봇을 테스트하고 디버깅 할 수있는 데스크탑 응용 프로그램입니다.
에뮬레이터를 사용하여 봇과 채팅하고 봇이 보내고받는 메시지를 검사 할수있습니다.

Downloads 목록에서 botframework-emulator-Setup-3.5.31.exe  을 다운로드 받은 후 설치를 진행합니다.
https://github.com/Microsoft/BotFramework-Emulator/releases/tag/v3.5.31
설치된 경로는 C:\Users\사용자계정폴더\AppData\Local\botframework\app-3.5.31\botframework-emulator.exe 입니다.





1.4 Bot Framework Channel Inspector
Bot Framework Channel Inspector를 사용하면 다른 채널에서 어떤 봇 기능이 보일지 빠르게 확인할 수 있습니다
https://docs.botframework.com/en-us/channel-inspector/channels/Skype/#navtitle




2..NET 기반 심플챗봇 개발하기

.NET 용 Bot Builder SDK는 Visual Studio 및 Windows를 사용하여 봇을 개발하기위한 사용하기 쉬운 프레임 워크입니다.
SDK는 C #을 활용하여 .NET 개발자가 강력한 봇을 만드는 데 익숙한 방법을 제공합니다.
심플 챗봇에서는 봇 애플리케이션 템플릿과 .NET 용 봇 빌더 SDK를 사용하여 봇을 제작 한 다음 봇프레임워크 에뮬레이터로 테스트하는 방법을 소개합니다.

2.1 심플챗봇 봇 어플리케이션 프로젝트를 생성합니다.


-BotFrameworkSolution 을 오픈하고 솔루션 탐색기에 솔루션명에 오른쪾마우스 클릭>추가>새프로젝트를 선택합니다.
-.NET Framework 4.6을 선택하고 중앙에 Bot Application 템플릿을 선택 후 프로젝트이름을 SimpleChatBotApplication 으로 입력후 확인버튼을 클릭합니다.


-생성된 SimpleChatBotApplication 에 오른쪽 마우스 클릭 후 시작프로젝트로 설정을 선택합니다.
-SimpleChatBotApplication 프로젝트의 오른쪽 마우스 클릭 후 속성항목을 선택합니다.
-응용프로그램 탬의 어셈블리 이름을 SimpleChatBotApplication 로 변경합니다.
-Visual Studio에서 F5 또는 디버그>디버깅 시작을 클릭하여 디버깅모드로 프로그램을 실행시킵니다.
-웹브라우저에 표시되는 챗봇 API 웹 페이지를 확인합니다.



2.2 BOT API 샘플기능 확인하기
- 템플릿에서 제공된 샘플 API 컨트롤러 코드를 확인합니다.
-MessagesController.cs 는 .NET 플랫폼의 웹개발 프레임워크인 ASP.NET 하위 스펙중 REST/OPEN API 기술을 지원해주는 ASP.NET WEBAPI의 기술을 이용해 제공되는 OPEN API 컨트롤러입니다.

-MessagesController.cs는 각종 챗봇 클라이언트 프로그램에서 REST방식으로 데이터를 보내오면 http://localhost:3979/api/컨트롤러명 경로로  POST,GET,PUT,DELETE 방식으로 메시지를 보내오면 메시지를 받아 처리하는 접근경로를 제공합니다.
EX) http://localhost:3979/api/messages


-솔루션 탐색기의 SimpleChatBotApplication Bot프로젝트의 Controllers\MessagesController.cs 파일을 클릭하고 Post 메서드가 사용자로부터 메시지를 받고 루트 대화 상자를 호출하는 코드를 확인합니다.


-루트 대화 상자는 메시지를 처리하고 응답을 생성합니다.
Dialogs\RootDialog.cs 내의 MessageReceivedAsync 메서드는 "You sent 보낸 메시지 which was '보낸 메시지 자릿수' characters" 대화 메시지를 리턴하는 응답을 보냅니다.

2.3 BOT API 샘플기능 테스트하기
에뮬레이터는 로컬 호스트에서 봇을 테스트하고 디버그하거나 터널을 통해 원격으로 실행하는 데 사용할 수있는 데스크톱 응용 프로그램입니다.
상기 MessagesController.cs POST 메소드를 테스트 하기 위해 Bot Framework Emulator를 사용하여 실제 상황을 보면서 봇을 테스트해보겠습니다.



먼저 BotFrameworkSolution 솔루션의 SimpleChatBotApplication을 디버깅모드로 실행시킨후 웹브라우저에 표기되는 주소정보와 포트정보를 확인합니다.
저의 경우는 http://localhost:3979 이지만 개발자마다 포트주소는 다를수 있습니다.

Visual Studio를 디버깅모드로 유지한채 Bot Framework Emulator를 가동후 최상단 Enter Your Endpoint URL 입력란에 http://localhost:3979/api/messages 주소정보를 입력합니다.
Microsoft App ID 및 Microsoft App 암호는 개발시에는 지정할 필요가 없으며 이 정보는 나중에 개발된 봇을  Bot Framework 포털에 등록한후  관련정보를 포탈에서 제공받을수 있습니다.

에뮬레이터 하단에 메시지입력란에 메시지를 입력하고 보내기 버튼을 클릭합니다.
정상적으로 VisualStudio 챗봇API 와 통신이 이루어지는지 확인이 가능합니다.
보내진 메시지는 Visual Studio를 통해 디버깅 또한 가능합니다.



지금까지 .NET 기반 챗봇 개발환경을 함께 구성해 보았으며 간단한 챗봇 API 샘플과 애뮬레이터를 이용해  챗봇 통신 개발 프로세스를 이해하고
통신 테스트 및 디버깅 환경을 이해해보았습니다.

다음시간에서는 좀더 구체적인 챗봇과의 통신 프로세스 와 개발관련 기술을 익혀보도록 하겠습니다.
감사합니다.





Comments

Leave a Reply

*