1-4. Training

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

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

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

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

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

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

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

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

Was this helpful?