Chatbot 공부


Visual Studio

일반적으로 Community Version을 사용하는 것이 좋음

“Visual Studio Installer”를 실행하고 Visual STudio Enterprise에 “수정”을 누른다.

“웹 및 클라우드” 항목에

  1. ASP.NET 및 웹 개발
  2. Azure 개발

이 두 항목을 꼭 체크가 되어 있어야 한다.

Chatbot은 웹으로, http로 메세지를 주고받기 때문에 웹 개발과 유사하다.

CLoud 기반 실행으로 Azure 개발 이 요소를 꼭 포함하고 있어야 한다.

Bot Framework v4 SDK Templates for Visual Studio

얘도 설치를 해줘야 한다.

Emulator

Emulator를 통해 만들어진 chatbot을 test한다.

봇 배포

** 최신 버전의 Azure CLI를 사용하고 있어야 한다. 2.2.0 이전 버전을 사용하는 경우 CLI 명령 사용 중단 오류가 발생하기 때문이다. 또한 Azure CLI 배포와 Azure Portal 배포를 함께 사용하지 말라고 한다. **

전제 조건

  • Microsoft Azure 구독
  • 로컬 컴퓨터에서 개발한 봇
  • 최신 버전의 Azure CLI.

배포할 준비가 된 봇

C# 봇을 배포하는 경우 해당 봇이 릴리스 모드로 빌드되었는지 확인

1. Azure에 로그인

명령 프롬프트를 열어 Azure Portal 에 로그인 한다.

cmd에

az login 

이라 친다.

치면 로그인 할 수 있는 브라우저 창이 열린다.

2. 구독 설정

사용할 기본 구독을 설정한다.

마찬가지로 cmd에

az account set --subscription "<azure-subscription>"

라 친다.

3. 애플리케이션 등록 만들기

Azure 애플리케이션 등록을 만든다. 이걸 하는 이유는

  1. 웹 채팅과 같은 채널 세트를 통해 봇과 사용자가 상호작용할 수 있게 한다.
  2. 사용자를 대신해서 보호된 리소스에 액세스하기 위해 사용자를 인증하고 봇에서 사용하는 토큰을 만드는 OAuth 연결 설정 정의

3.1 Azure 애플리케이션 등록 만들기

az ad app create --display-name "displayName" --password "AtLeastSixteenCharacters_0" --available-to-other-tenants
  • displayName : 애플리케이션의 표시 이름. Azure Portal에서 리소스 그룹에 표시된다고 한다.
  • password : 애플리케이션에 대한 암포(클라이언트 암호). 16자 이상, 하나 이상의 알파벳 문자 대/소문자 및 하나 이상의 특수 문자를 포함해야 한다.
  • available-to-other-tenants : 모든 Azure AD 테넌트에서 애플리케이션을 사용할 수 있음을 나타낸다.

3.2 appid 및 appSecret 값 기록

3.1을 실행한 후,

  1. 이전 단계에서 만든 password
  2. 출력 JSON에서 찾을 수 있느 appId

이 두가지를 기록해야 한다. appId와 password 값을 복사한다음 저장한다. 얘네는 나중에 ARM 배포 단계에서 각각 appId 및 appSecret 매개 변수에 값을 할당할 때 필요하다.

QnA Maker

  • 빠르게 데이터 위에 대화 레이어 만들기 *

QnA Maker는 기존 데이터 위에 대화형 질문 및 답변 레이어를 만들 수 있도록 하는 클라우드 기반 API 서비스이다.

기술 자료에 있는 QnA 중에서 선택된 최적의 답변으로 사용자 질문에 자동으로 답변, 기술 자료도 사용자 동작으로부터 지속적으로 학습하며 갈수록 똑똑해진다고 되어있다. 추가 작업 프롬프트를 사용하여 여러 대화 설정 만들기

홈페이지에 있는 설명서를 보니

  1. FAQ, 제품 설명서, 지침, 지원 문서 및 정책 등을 비롯한 반구조화된 콘텐츠에서 질문/대답 쌍을 자동으로 추출할 수 있습니다.
  2. 대체 질문을 위한 제안으로 기술 자료를 개선해보세요. 관련성에 따라 추가하거나 거부할 수 있습니다.
  3. QnA Maker 포털이나 REST API를 사용하여 복잡한 멀티턴 대화를 쉽게 만들고, 편집하고, 학습시켜보세요.
  4. Teams, Skype 또는 다른 곳에서 봇을 만들고 게시해보세요. 코딩 경험이 없어도 됩니다. 반구조화된 문서 또는 URL을 업로드하기만 하면 됩니다.

라고 되어있다.

또 잡담을 사용하여 봇에 개성을 추가할 수 있다고 되어있다. 설명에는 자동 완성 잡담 데이터 세트를 추가하여 봇이 더 원활하게 대화하도록 해본다. 전문가답거나, 위트있거나,,,등등 열정적인 가상 사용자를 선택하라고 되어있다. 기술 자료에 잡담 추가

대강 보니 실제로 대화하는 것 같은 느낌을 주고 몰입도를 높여주는 기능으로 보인다.

추가로 서식 있는 데이터를 지원하고 컨텐츠를 동적으로 관리할 수 있다.

새로운 서식 있는 텍스트 편집기를 이용해서 기술 자료에 서식 있는 콘텐츠를 추가할 수 있다. Markdown의 모든 기능을 사용해서 답변을 작성하거나 서식 있는 콘텐츠를 포함하는 기술 자료를 업로드 할 수 있다고 한다. 가져온 문서와 url에 대한 형식 지침

QnA Maker 기술 자료 만들기, 학습 및 게시