2017-12-02 5 views
1

Where is the data context in Dialog Flow (API.ai)私はユーザー固有のデータを保持する方法を尋ねました。たとえば、ユーザーが都市のリストを要求し、webhookサービスがランダムに3つを選択します。後でこのリストの都市を参照する場合は、何らかの形でそれを格納する必要があります。問題の答えは、文脈の中で前後に移転することができるということでした。ダイアログフローでユーザーエンティティを使用するタイミング

ここでは、ドキュメントのユーザーエンティティについて読みました。これは私にとっては未知の概念でした。私の質問は今です:我々はまた、そのような流れのためのユーザーエンティティを使用することができますか?例:

  1. ユーザーは3都市を要求します。
  2. Webhookが呼び出され、3つのランダムな都市が選択されます。この時点で、webhookサービスは、REST APIを介して進行中のセッション用のユーザーエンティティ@user-citiesも作成します。私たちはキーのSQL識別子とシノニムの可能な都市名を持つことさえできます。
  3. 後の目的では、パラメータとして@user-citiesを参照します。以前の都市リストに基づいて有効な都市がwebhookサービスに提供されると、識別子が提供されます。 Webhookサービスは、この識別子を使用して都市に関する追加情報を提供することができます。

例の流れ:

User: Please provide me some interesting cities. 
Agent: What about New York, Berlin and Barcelona? 
User: Please tell me more about Barcelona! 
Agent: Sure, Barcelona is ... 

私はまだこれを試していなかったが、これはユーザエンティティの良いapplicaitonある場合、私は疑問に思って?フォローアップの質問は次のようなものです:ユーザーエンティティはいつ使用しますか?

答えて

2

これはうまくいくはずですが...それは本当にユーザーエンティティの良いアプリケーションではありません。最大の問題は、 "this"や "that"や "that first"のような用語のエイリアスを作成するためのAPI呼び出しを今作成していることです。また、古いエイリアスを削除したり、新しいエイリアスを設定したりするなど、エンティティ定義を絶えず変更しています。

ユーザーエンティティは、他のユーザーと異なるユーザーについて知っていることに最も適しています。都市を例として使用するには、ユーザーのエンティティを使用して、ユーザーが好きな都市やそれらの都市のニックネームを保存することができます。ユーザーがログインすると、@user_citiesと設定し、都市のニックネームを利用できるようになります。

更新 もう一度、都市フレームワークを使用します。

特定の都市の機能とエイリアスが選択されると、それをユーザーエンティティで変更することができます。したがって、ユーザーが「シドニー」を選択した場合は、オペラハウスまたはビーチのエントリを含む@featureユーザーエンティティを作成することができますが、クロックタワーについては何も作成されません。 「ロンドン」の場合、塔や橋についてはエンティティを追加できますが、ビーチは追加できません。

焦点は、あなたが会話についてを覚えて、あなたがに欲しいものを対ユーザからを聞きたいものです。

+0

詳細な返信をありがとうございました。したがって、ユーザーエンティティはユーザー固有のプロパティのためのものですが、進行中のセッションでは、それらを多かれ少なかれ_static_とみなす必要がありますか?したがって、実際にはユーザーに依存し、起こっている会話には依存しません。それは良い理解ですか? –

+1

比較的。セッションが進行するにつれてユーザーエンティティを置き換えたい場合があります。私の更新を参照してください – Prisoner

+1

これは今や理にかなっています! –

関連する問題