Gettting Started - Overview (1)
16 Dec 2018 | 인공지능 빅스비빅스비 개발을 시작하기 전에 전체적으로 어떻게 동작하는지 간략하게 소개드리려고 합니다. 내용은 공식 Bixby Developer 페이지를 참고했습니다.
무엇을 개발해야 하나요
이전 포스팅에서도 설명 드렸듯이 빅스비는 전통적인 프로그래밍 방식과 다른 개발 방식을 보입니다. 개발자는 빅스비가 사용자의 발화를 이해할 수 있도록 IDE에서 자연어를 학습시켜야 합니다. 또한 빅스비가 실행 그래프 를 구성할 수 있게 모델링을 해주고, 필요하다면 서버와 통신과 같은 추가적인 함수를 작성해야 합니다. 마지막으로 사용자에게 보여줄 Dialog와 Layout을 작성합니다.
다음은 빅스비가 사용자의 발화를 이해하고 그래프를 구성한 예제입니다.
“면이 여섯 개인 두 개의 주사위를 굴렸을 때 나온 숫자의 총 합을 구해줘”
개발자는 그림과 같이 그래프를 구성하기 위해서 아래의 작업을 해줘야 합니다.
- 사용자 발화에서 NumDice(2)와 NumSides(6)를 추출할 수 있도록 자연어를 학습합니다.
- 그래프가 만들어 질 수 있도록 NumDice, NumSides 그리고 RollDice를 모델링을 합니다.
- RollDice로 입력된 두 값을 사용하여 RollResult를 계산하는 함수를 넣습니다.
다음은 RollDice 함수입니다. 서버와의 통신이나 추가로 필요한 함수는 Javascript로 작성합니다.
// RollDice
// Rolls a dice given a number of sides and a number of dice
// Main entry point
function rollDice(numDice, numSides) {
var sum = 0;
var result = [];
for (var i = 0; i < numDice; i++) {
var roll = Math.ceil(Math.random() * numSides);
result.push(roll);
sum += roll;
}
// RollResult
return {
sum: sum, // required Sum
roll: result // required list Roll
}
}
// Exports
module.exports = {
function: rollDice
}
그리고 RollResult가 사용자에게 보여지도록 Dialog와 Layout을 작성하면 아래처럼 결과를 볼 수 있습니다. 아래 그림에서 빅스비가 얘기하는 부분(‘Here’s what I found’)이 Dialog이고 추가 정보를 보여주는 부분이 Layout 입니다.
이번 포스트에서는 설명을 위해서 많은 부분을 생략했는데요, 자연어 학습 및 모델링 하는 부분은 나중에 예제를 프로젝트를 통해서 알아보도록 하겠습니다. 다음 포스트에서는 빅스비 플랫폼이 어떻게 동작하는지 설명드리겠습니다. 감사합니다.
Comments