1-4. Training

사용자들이 자동판매기 캡슐을 사용할 수 있도록 트레이닝을 해봅시다!

자동판매기 캡슐의 트레이닝를 해보자!

자동판매기 캡슐은 사용자가 ‘차가운 커피 뽑아줘’라고 말을 하였을 때, 음료에 대한 정보를 보여주는 캡슐입니다. 트레이닝을 통하여 사용자가 자동판매기 캡슐에 접근하고 사용할 수 있도록 해봅시다.

트레이닝은 캡슐이 잘 동작할 수 있도록 사용자가 할 수 있는 말들을 훈련시키는 것 입니다. 사용자들이 캡슐의 서비스에 기대할 만한 발화의 패턴을 훈련시키는 것이 중요합니다.

먼저, Bixby Studio 왼쪽의 네비게이션바를 보면 위의 이미지와 같은 화면을 보실 수 있습니다.

resources 폴더 하위에 ko-KR 폴더가 위치해 있습니다. ko-KR안에 있는 training이라는 파일을 보실 수 있습니다. 이 파일에서 트레이닝을 진행하게 됩니다.

트레이닝 파일을 열어보시면 위와 같은 화면을 보실 수 있습니다. 이제부터 트레이닝 데이터를 하나 추가하면서, 트레이닝 방법과 테스팅에 대하여 설명드리도록 하겠습니다.

여기서 예제는 ‘콜라 줘’의 트레이닝 데이터를 추가하였지만, ‘차가운 커피 줘’를 트레이닝에 추가하여 보세요. 아래의 설명을 따라가시면 충분히 추가하실 수 있습니다. * '차가운' 태깅에는 음료수 상태를 나타내는 concept을 활용하여 봅시다.

1. 트레이닝

트레이닝 파일의 맨위 ‘Adding New Training’ 하단 바에 ‘콜라 줘’를 입력하시고 엔터 혹은 ‘Add’ 버튼을 누르시면 아래와 같은 창을 보실 수 있습니다.

현재 화면에서 여러 가지 요소를 보실 수 있지만, 빨간 박스 부분을 중점적으로 살펴보도록 하겠습니다.

우선 GOAL이라는 부분에 들어갈 내용은 이 트레이닝 데이터가 실행해야 할 action 또는 사용자에게 보여주어야 하는 결과 concept을 지정합니다. 여기에서는 자동판매기 캡슐의 action인 ‘OrderDrink’를 적도록 하겠습니다.

NL 박스에 들어갈 말은 사용자가 캡슐의 서비스를 사용하기 위하여 할 수 있는 말들을 적는 곳입니다. 위 이미지를 보시면 '콜라' 부분에 파란색으로 태깅이 된 것을 보실 수 있습니다. 태깅을 하는 법은 해당 단어를 드래그하시면 됩니다. 태깅은 발화로부터 어떤 단어나 어구가 action을 실행할 때 필요한 부분이라는 것 지정해두는 것입니다. OrderDrink action의 input 데이터인 name required 지정했기 때문에, action을 실행하기 위해서는 "콜라"라는 단어에 DrinkName concept을 태깅해주셔야 합니다.

action (OrderDrink) {    
    ...    
    input (name) {      
        type (DrinkName)      
        min (Required) max (One)    
    }    
    ...

하단의 화살표를 클릭하게 되면 그래프가 나오게 됩니다. 이 그래프는 발화에 대응하는 action이 어떤 input concept을 가지고 실행될지와 어떤 output을 가지는 지에 대한 정보를 알려줍니다. 정상적으로 그래프가 그려졌다면 save를 누르셔서 데이터를 저장해주시면 됩니다.

화살표를 눌렀을 때 그래프가 그려지지 않는다면, 해당 트레이닝 작성에 문제가 있는 것 입니다.

2. 테스팅

트레이닝 파일의 오른쪽 상단에 ‘Compile NL Model’을 누르시면 트레이닝 데이터를 실제로 적용해 보실 수 있습니다. 트레이닝 데이터를 적용하시면 시뮬레이터에서 실제 사용자가 말하는 것과 같이 테스트를 해보실 수 있습니다. 화면 상에서 아래 빨간 박스를 누르시면 해당 트레이 데이터를 기반으로 캡슐을 테스트 해보실 수 있습니다.

버튼을 누르시면 시뮬레이터 창이 뜨면서 추가했던 트레이닝이 실행된 것을 보실 수 있습니다. 시뮬레이터 창의 왼쪽을 보시면 위의 이미지와 같이 생긴 것을 보실 수 있습니다. 여기서 compile 부분은 기존 training 창의 ‘Compile NL Model’ 버튼과 동일한 역할을 합니다. 또한 위쪽에 디버깅 버튼을 누르시면 디버깅 창을 불러올 수 있습니다.

디버깅 창에서는 실행했던 발화를 바탕으로 action이 어떻게 실행되었는지, 데이터가 어떻게 흘러가는지 등을 확인하실 수 있습니다. 디버깅 기능을 활용하시면 캡슐 동작에 문제가 발생하였을 경우, 문제점을 찾기가 수월해 집니다. 특히, Javascript 코드에서 console.log를 통한 로그도 디버깅 창에서 확인하 수 있습니다.

// OrderDrink.js
module.exports.function = function orderDrink (status, name) {  
    const console = require("console");  
    console.log(name);  
    ...

Last updated