티스토리 뷰
라우터를 구성하기 전에 Play가 우선이 되어야한다.
아마존, SKT, 네이버 등 각 기업으 Voice App 빌더에서는 기본적으로 사용자의 발화를 구분하고
발화에서 필요한 data를 추출해 백 엔드 서버로 요청해주는 구조를 가지고 있다.
따라서 서버에서 사용자가 어떤 발화를 했냐에 따라 해줘야 하는 것들이 다른데
SKT Play에서는 특정 발화(Intent)를 트리거로 하는 Action에서 서버와 연동해 다양한 동작들을 처리하 수 있다.
SKT Play 빌더를 만드는 것에 대한 자세한 내용은 NUGU 공모전에서 2번이나 만나서 같이 놀았던(ㅋㅋ) '루나스트라토스' 개발자님이 정리를 잘해놓으셨다. (github.com/lunaStratos/sk_Nugu_chatbot/tree/master/nugu_lotto)
누구 플레이 빌더를 다루는 방법에 대해서는
빌더의 UI가 굉장히 직관적이기 때문에 NUGU Play 빌더에서 직접 해보는게 가장 도움이 될 것같다.
라스트브레드의 경우 사용자의 발화를 구분하여 각각 다른 이름이 Action으로 진입한다.
예를들면
"10만원 배팅해줘" ,'5만원 배팅할래' -> betting_start Action
"게임 시작해줘", "매칭 참가해줘" -> game_start Action
과 같이 NUGU Play에서 발화를 구분해주고 우리는 해당 발화에 대한 액션을 구성해주면된다.
라스트브레드에서 사용자가 할 수 있는 발화의 종류는
게임 시작(매칭), 금액 배팅, 랭킹 조회, 도움말 등이 있고 발화들은 각 Action의 트리거로 매핑이 되어있다.
사용자가 '10만원 배팅해줘' 라고 말한다면 Play에서는 betting_inetent로 구분해준다.
betting_intent는 구성한 Play에 따라 매핑 된 betting_action으로 연결되며 우리는 betting_action에서 발화를 처리하고 원하는 응답을 내보낼 수 있다.
위 사진 처럼 액션에서 Backend proxy를 호출를 ON으로 해놓으면 우리가 직접 서버를 구성해서 응답을 가져올 수 있는데 Play는 정해진 포맷으로 서버로 정보를 요청하고 우리는 서버에서 적절한 발화나 필요한 데이터를 정해진 포맷으로 구성해서 응답해주면 된다.
공식 도큐멘트에서 정보를 주고 받는 JSON포멧을 확인할 수 있다.
Play에서 보내주는 요청은 아래와 같이 뒤에 Action명이 붙어서 서버로 요청이 온다.
"예를 들어 외부 서버 연결 정보의 Web URL에 http://backend_proxy.nugu.com를 설정하고, Action 이름을 "playMusic"으로 설정했다면 해당 Action을 처리하는 REST API URL은 http://backend_proxy.nugu.com/playMusic이 됩니다."
따라서 URL 뒤에 붙어있는 actionName으로 서버에서 각각의 action을 구분하여 처리가 가능하다.
라스트브레드 서버에서는 nodejs의 대표적인 프레임워크인 express를 활용해 웹서버를 구축했다.
express를 통해 요청에 따라 원하는 함수로 연결 시켜줄 수 있다.(=라우팅)
'프로젝트 > Voice AI' 카테고리의 다른 글
SKT NUGU Play <오늘의 퀴즈> 개편 사항 (0) | 2020.12.14 |
---|---|
2. SKT NUGU Play 개발- 우분투 서버에 Node.js설치하기 (0) | 2020.11.03 |
1. SKT NUGU Play 개발 - Lastbread:생존 구현하기 오라클 무료서버 생성, 초기세팅 (0) | 2020.10.24 |
0.라스트브레드 : 생존 - AI스피커 멀티플레이 구현 (0) | 2020.10.22 |