IBM Watson Conversation의 ChatBot 클라이언트를 Xamarin에서 만들어 보았습니다.

이 기사는 초보자·학생씨 환영! Xamarin Part 1 Advent Calendar 2017의 19 일째 기사입니다.

요 전날 IBM Cloud 라이트 플랜이 발표되었습니다.
무료, 무기한, 신용카드 등록 없이 42종류의 플랫폼 서비스나 API를 사용할 수 있으며, 물론 Watson API도 무료로 사용할 수 있습니다.

그 중에서도 Watson API 중 하나인 Conversation을 사용하면 자연어를 의도 분류하면서 답변하는 AI 채팅봇을 훨씬 쉽게 만들 수 있습니다.

그런 Conversation이지만 IBM Cloud의 웹 관리 콘솔에서 만든 Bot의 데모를 할 수 있습니다.



그렇지만 손님에게 보여줄 때, 관리 콘솔은,,, 어쩐지 있군요.
LINE이나 Slack 제휴 등도 가능합니다만, Developer Account의 취득, 설정 등, 다소 시간이 걸립니다. (그래도 간단하지만)
그런 때에 간이적으로 데모를 할 수 있는 툴(어플리케이션)을 갖고 싶다고 생각해, 만들기로 했습니다.

IBMCloud 관리 화면에서 서비스 자격 증명
  -> 목록에서 Conversation 서비스 선택
    -> 자격 증명 표시를 누르면 표시되는 UserName,Password
앱으로 입력하여 연결할 수 있습니다.
LINE이나 다른 Chat 서비스 연계와는 달리 Developer Account의 취득이나 관리 포털에서의 설정은 불필요합니다.

사실 Xamarin에 대한 질문을 반환하는 AI 채팅 봇을 만들고 Xamarin.Forms 클라이언트에서 데모를 수행하고 싶었지만, 시간이 맞지 않았기 때문에 다른 기회에.

만든 것



우선 동영상을 참조하세요.



Conversation의 튜토리얼로서 준비되어 있는, 자동차의 AI 채팅 봇에 연결해 보았습니다.

"play music"을 입력하면 음악 장르는 무엇입니까? 라고 되돌아갑니다.
Jazz를 입력하면 Jazz 음악을 시작할 수 있습니다.
「Thanks」라고 입력하면, 익숙하지 않은 것인가 「무슨 말하고 있는지 모르겠다」라고 말해집니다w(기억하게 하고 있을 뿐)
이런 식으로 봇의 데모를 할 수 있는 앱입니다.

프레임워크, 라이브러리


  • Xamarin.Forms (.NET Standard2.0)
  • Watson Developer Cloud .NET Standard SDK
  • Prism.Forms
  • ReactiveProperty

  • 만드는 방법



    Watson Developer Cloud가 .NET Standard 1.6 ~을 지원하므로,
    Xamarin.Forms에서 PCL을 .NET Standard로 변경했습니다. 모처럼이므로 2.0 대응했습니다.

    그런 다음 WatsonDeveloerCloud Conversation API를 래핑한 Model 클래스를 만들고 ViewModel을 통해 화면을 업데이트합니다.

    출처 도 공개하고 있습니다.

    아직 UI도 짜증나지 않고 로그인 기능도 없지만 자격증명을 자신의 UserName,Password로 변경하여 실제로 사용해 볼 수 있습니다.

    가까이, 로그인 기능이나 UI의 쇄신을 실시한 뒤, 스토어에 릴리스 할 수 있으면 좋다고 생각하고 있습니다.
    기술적 내용이 얇은 것 같아요, 이상이됩니다!
    덧붙여 소속하는 회사의 어드벤드 캘린더에 Xamarin Profier로 메모리 누수 분석 를 썼습니다.

    내일은 JXUG 주최 타부치씨의 「무엇이 Native로 무엇이 Embedding인가?라는 초보자용의 이야기를 씁니다.」입니다.
    계속 초보자·학생씨 환영! Xamarin 그 1 Advent Calendar 2017 를 즐길 수 있습니다.

    좋은 웹페이지 즐겨찾기