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です。SHIBUYAが出てきました。
同様に市と都の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使いのみなさんのお役に立てば幸いです。
Author And Source
この問題について(DialogflowにおけるDeveloper entitiesの優先順位の利便性について), 我々は、より多くの情報をここで見つけました https://qiita.com/covayashi/items/05f8e3e6a6a43bcf2be3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .