Dialogflow에서 Developer entities의 우선 순위 편의성 이해

Dialogflow에서는 Developer entities라는 entities의 복합체를 만들 수 있습니다.
이 Developer entities는 우선 순위를 가지므로 매우 유용합니다.
그 편리성에 대해 예를 들어 소개합니다.

즉 이런 일



여기는 이세계의 Nippon.
TOKYO都 TOKYO市 TOKYO町にTOKYO駅 가 있다고 합니다.

그리고,
SHIBUYA都 SHIBUYA市 SHIBUYA町 에 역이 없습니다.

그런 이세계의 Nippon에는, VUI로 유저에게 놀 수 있는 장소를 제안할 수 있는 앱이 유행하고 있었습니다.
アプリ「どこで遊びますか?」
ユーザ「TOKYO」
アプリ「...TOKYO都ですか?TOKYO市ですか?TOKYO町ですか?TOKYO駅ですか?」
ユーザ「消えろぶっとばされんうちにな」

이렇게 하지 않도록 앱 측에서 미리 우선 순위를 정해 둡시다.
그 때 Developer entities가 편리합니다.

Developer entities를 만드는 방법



우선 Entities 등록




역의 Entities입니다. SHIBUYA에는 역이 없으므로 TOKYO 역만됩니다.

마을의 Entities입니다. 시부야가 나왔다.


마찬가지로 도시와 도시의 Entities입니다.

여기의 포인트는 駅も町も市も都もすべてTOKYO、SHIBUYAと呼ばれることがある 입니다. 지명은 대체로 그런 것입니다.

Entities를 Developer entities에 등록




Entities를 만드는 단계와 마찬가지로 CREATE ENTITY를 누릅니다.
Entity name 를 입력하고 Define synonyms 를 선택 해제합니다.
그리고 Enter value의 란에 Entities명을 입력해 갑니다. 입력 방법은 @Entities名:Entities名입니다.

이런 느낌입니다.
이렇게 함으로써 우선 순위를 가진 Developer entities를 만들 수 있었습니다.Enter value 위에서 순서대로 우선 순위가 올라갑니다.駅 > 町 > 市 > 都 같은 느낌입니다.

Developer entities를 Intents에 등록





이런 식으로 방금 만든 Developer entities (place)를 Intents에 등록합시다.
이것으로 완성입니다.

사용해보기



바로 사용해 봅시다.

TOKYO라고 했을 경우에는 역으로 인식되고 있습니다.

SHIBUYA라고 말했을 경우에는 마을이 되었습니다.
예상대로 움직임입니다.
그리고는 받은 곳의 프로그램으로 고뇽합시다.
app.intent('place', (conv) => {
    if(conv.parameters['place'].eki){
        // 駅の場合
    }else if(conv.parameters['place'].cho){
        // 町の場合
    }
})

고뇨고뇨하는 간단한 예도 실어 둡니다.



Developer entities를 사용하지 않고 구현하는 방법에는 여러 가지가 있지만 사용하면 Intents가 최소화됩니다.

자신으로서는 Intents의 관리가 힘들기 때문에, 자신은 이 방법을 애용하고 있습니다.
Dialogflow 사용의 여러분의 도움이 되었으면 좋겠습니다.

좋은 웹페이지 즐겨찾기