안녕하세요. 발표자 강창훈입니다.
금번 LangCon2019 행사에서 진행되는 "LUIS 머신러닝 자연어처리 기술 기반 챗봇 개발 및 서비스" 강의는
세션1에서 1시간정도 2018년 11월 릴리즈된 BotFramework SDK Ver4.x를 기반으로한 챗봇 개발 및 Azure Bot Service를 통한 서비스 방법을 아주 퀵하게 실습해보고
세션2에서 마이크로소프트의 Cognitive Service중 언어 카테고리 핵심 서비스인 머신러닝 기반 자연어처리 서비스 LUIS를 활용하는 밥법에 대해 안내해드리려합니다.
금번 LangCon2019 행사에서 진행되는 "LUIS 머신러닝 자연어처리 기술 기반 챗봇 개발 및 서비스" 강의는
세션1에서 1시간정도 2018년 11월 릴리즈된 BotFramework SDK Ver4.x를 기반으로한 챗봇 개발 및 Azure Bot Service를 통한 서비스 방법을 아주 퀵하게 실습해보고
세션2에서 마이크로소프트의 Cognitive Service중 언어 카테고리 핵심 서비스인 머신러닝 기반 자연어처리 서비스 LUIS를 활용하는 밥법에 대해 안내해드리려합니다.
Microsoft Bot Framework SDK Ver4.x 기반에서 챗봇 개발 및 챗봇 배포,에뮬레이터 환경 구성방법 그리고 기초적인 사용법등을 안내해드립니다.
0.챗봇 개발환경 준비 및 구성하기
Step1.Visual Studio 2017 Community(무료) 설치하기
-다운로드링크: https://www.visualstudio.com/ko/ 링크이동합니다.
-다운로드 사이트에서 Windows용다운로드 버튼 클릭>Community(5인하 무료) 클릭 다운로드후 설치진행합니다.
-Visual Studio 2017 Community(무료)버전 다운로드하여 설치합니다.

-Visual Studio 2017 Community(무료)버전 다운로드하여 설치합니다.

-설치시 반드시 워크로드 부분에서 상기 설치항목들중 웹 및 클라우드 하위 항목중 ASP.NET 및 웹 개발 과 Azure 개발 두가지 항목의 우측에 있는 체크박스를
반드시 체크후 설치를 진행해주세요.
-상기 항목 체크없이 설치하시면 Azure Bot 서비스를 Visual Studio로 개발이 불가합니다.
-물론 추가설치도 가능합니다.
ㅁVisual Studio 설치 후 개발환경 확인 가이드
-윈도우 작업표시줄 검색> Visual Studio Installer 검색 > 요구 시 Installer 업데이트 실시
-기존에 설치된 Visual Studio Community 2017은 반드시 업데이트 버튼을 클릭해 최신상태로 업데이트 해 줌.
-Visual Studio Community 2017 > 자세히 > 수정 클릭하면 개발환경 재구성 WorkLoad 하면이 표시되며 추가 항목을 선택 설치 가능함
Step2.ChatBot Project 템플릿 다운로드 및 설치
-애저봇서비스 메인페이지 : https://dev.botframework.com/
-봇빌더를 이용한 봇만들기 소개 : https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0
- Bot Builder V4 SDK Template for Visual Studio Download : https://marketplace.visualstudio.com/items?itemName=BotBuilder.botbuilderv4
- Bot Builder V4 SDK Template for Visual Studio Download : https://marketplace.visualstudio.com/items?itemName=BotBuilder.botbuilderv4
-애저봇서비스 기반에서 챗봇을 개발할수 있는방법은 크게 Azure Portal 사이트에서 심플하고 자동화된 방식으로 개발하는방법과
Visual Studio 2017 기반에서 제공되는 개발언어별 BotBuilder 환경을 통해 강력하고 편리하게 개발하는 두가지 방법을 제공합니다.


설치방법 : 상기 설치파일을 다운받아 설치하거나 또는 Visual Studio를 가동 후 상단 메뉴> 도구>확장 및 업데이트 클릭> 팝업 좌측 온라인 노드 클릭 > “Bot Builder V4 SDK Template for Visual Studio” 검색 후 다운로드 받고 Visual Studio를 닫으면 잠시 후 설치가 진행됩니다.
Step3.ChatBot Emulator 설치하기
ㄴ BotFramework-Emulator-4.2.1-windows-setup.exe 다운로드 후 설치
-개발자 컴퓨터에서 챗봇을 개발하고 테스트하기 위한 에뮬레이터 프로그램입니다.




1.개발준비가 모두 완료되었으면 Visual Studio 2017를 시작합니다.
-상단메뉴 파일> 새로만들기> 프로젝트 를 클릭합니다.
-개발 템플릿 이 설치된 좌측 노드를 확인합니다. 개발툴 버전에 따라 Visual C#>BotFramework 또는 Visual C#> Cloud>AzureBot Service 를 클릭하면 가운데 챗봇 어플리케이션 개발 시작을
쉽게 도와주는 프로젝트 템플릿 3종 제공됩니다.
-CoreBot(BaseBot) : LUIS 환경 지원 챗봇
-EchoBot : 심플챗봇 개발
-EmptyBot : 빈프로젝트
ㄴEchoBot 템플릿을 선택합니다.
-상단메뉴 파일> 새로만들기> 프로젝트 를 클릭합니다.
-개발 템플릿 이 설치된 좌측 노드를 확인합니다. 개발툴 버전에 따라 Visual C#>BotFramework 또는 Visual C#> Cloud>AzureBot Service 를 클릭하면 가운데 챗봇 어플리케이션 개발 시작을
쉽게 도와주는 프로젝트 템플릿 3종 제공됩니다.
-CoreBot(BaseBot) : LUIS 환경 지원 챗봇
-EchoBot : 심플챗봇 개발
-EmptyBot : 빈프로젝트
ㄴEchoBot 템플릿을 선택합니다.
-챗봇 프로젝트명 입력: ex) LangCon2019EddyEchoBot
-경로 : C:\
-솔루션 명: LangCon2019EddyEchoBotSolution
-경로 : C:\
-솔루션 명: LangCon2019EddyEchoBotSolution
여러분 상황에 맞게 프로젝트 명/솔루션 폴더 생성경로,솔루션명을 입력후 확인버튼을 클릭합니다.
2.화면 우측 솔루션 탐색기에 여러분이 만드신 솔루션명이 보입니다.

3. 프로젝트 기본 환경 정보확인
-챗봇 프로젝트에 오른쪽마우스 클릭 > 프로젝트 속성 ASP.NET CORE 버전확인
ㄴ.NET Core 2.1
-프로젝트 > 종속성> SDK버전 확인,Nuget확인
ㄴMicrosoft.AspNetCore.All 2.1.1
ㄴMicrosoft.Bot.Builder 4.2.2
4.프로젝트 디버깅
-F5 또는 상단메뉴 디버그>디버깅 시작을 클릭하여 챗봇 어플리케이션 디버깅을 실시해봅니다.
-정상적인 경우 아래와같이 웹사이트가 자동으로 브라우저에 표시되는것을 확인할수 있습니다.
*챗봇 어플리케이션(SDK4.x)은 ASP.NET Core WEBAPI 웹 기반 프로젝트로 개발되며 OPEN API기반 RESTful서비스 방식으로 개발 및 서비스 제공됩니다.
5.에뮬레이터를 기동합니다.
-챗봇 프로젝트를 디버깅 모드로 둔 상태에서 설치한 애물레이터를 실행합니다.
-OpenBot 버튼을 클릭하여 여러분이 만드신 챗봇프로젝트의 물리적 경로를 찾습니다.(솔루션 생성시 지정한 솔루션폴더내 챗봇프로젝트폴더 경로 확인)
-챗봇프로젝트의 물리적 경로내에 존재하는 ~.bot파일을 선택합니다
-애물레이터와 현재 디버깅중인 챗봇 웹 어플리케이션과 연동되어 디버깅이 가능해집니다.
-에뮬레이터(채널,클라이언트)와 챗봇과 통신 테스트를 진행해보세요.
-챗봇 프로젝트를 디버깅 모드로 둔 상태에서 설치한 애물레이터를 실행합니다.
-OpenBot 버튼을 클릭하여 여러분이 만드신 챗봇프로젝트의 물리적 경로를 찾습니다.(솔루션 생성시 지정한 솔루션폴더내 챗봇프로젝트폴더 경로 확인)
-챗봇프로젝트의 물리적 경로내에 존재하는 ~.bot파일을 선택합니다
-애물레이터와 현재 디버깅중인 챗봇 웹 어플리케이션과 연동되어 디버깅이 가능해집니다.
-에뮬레이터(채널,클라이언트)와 챗봇과 통신 테스트를 진행해보세요.
7.디버깅 브라우저를 닫고 Visual Studio 2017로 돌아와 상단중간 빨간색네모 단추를 클릭하여 디버깅을 종료합니다.
8. Bot Builder Ver4.x Applicaiton Process
-채널(에뮬레이터) 와 챗봇과의 간단한 통신 프로세스를 아래 그램을 통해 확인해봅니다.

ㅁ Program.cs --> Startup.cs --><ProjectNameBot>.cs
ㅁ Program.cs
- 챗봇 어플리케이션 진입점
ㅁ Startup.cs
-IoC 의존성 주입기법 기반 각종 서비스 IoC컨테이너에 등록처리
ㅁ <ProjectName>Bot.cs 기본 챗봇 서비스 클래스
-<ProjectName>BotAccessors.cs : 챗봇 서비스에서 사용할 데이터 구조를 싱글톤으로 접근할수 있게 해주는 연결고리
-<ProjectName>Bot.cs : 디폴트 챗봇 서비스 클래스
-CounterState.cs : 채널과 챗봇간 대화주고 받은 횟수 카운팅 관리용 클래스 TurnCount 속성제공
9.친절한 챗봇 개발하기
- ~Bot.cs 파일을 열고 아래 굵게 표시된 else if 구문을 추가합니다.
- ~Bot.cs 파일을 열고 아래 굵게 표시된 else if 구문을 추가합니다.
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
// Handle Message activity type, which is the main activity type for shown within a conversational interface
// Message activities may contain text, speech, interactive cards, and binary or unknown attachments.
// see https://aka.ms/about-bot-activity-message to learn more about the message and other activity types
if (turnContext.Activity.Type == ActivityTypes.Message)
{
// 전달 대화 컨텍스트로부터 대화상태 조회
var state = await _accessors.CounterState.GetAsync(turnContext, () => new CounterState());
// Bump the turn count for this conversation.
state.TurnCount++;
// Set the property using the accessor.
await _accessors.CounterState.SetAsync(turnContext, state);
// Save the new turn count into the conversation state.
await _accessors.ConversationState.SaveChangesAsync(turnContext);
// Echo back to the user whatever they typed.
var responseMessage = $"테스트1 {state.TurnCount}: You sent '{turnContext.Activity.Text}'\n";
await turnContext.SendActivityAsync(responseMessage);
}
else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
{
if (turnContext.Activity.MembersAdded != null)
{
foreach (var member in turnContext.Activity.MembersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
await turnContext.SendActivityAsync("안녕하세요??? \n LangCon2019 챗봇입니다.");
}
}
}
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}
감사합니다.
EugenetunseLU on 4/6/2023 5:24:20 AM
With thanks! Plenty of material.
college application essay help online https://helpmedomyxyzhomework.com scholarship essays for college students https://helpwithdissertationwriting.com