我在Dialogflow中有一个实体“ employeeType”,其值为“联邦雇员”和“私人雇员”。
如果未获取实体数据,我想问一个问题“您是联邦雇员吗?”用户可以对此回答“是”或“否”。
但是我找不到解决方法,因为这样的问题不会返回预定义的值“联邦雇员”或“私人雇员”。
是否有解决此问题的想法?
答案 0 :(得分:2)
您有几种选择。如何处理此问题取决于您如何构造其他事物。
由于您拥有“ employeeType”实体,因此可以将yes
用作Federal employee
的同义词,并将no
用作Private employee
的同义词。但是,这可能会使某些短语奇怪地起作用,您可能应该为其他类似正面和负面的响应添加其他别名。
您还可以使用“后续意图”来接受它们,这些意图已经设置为“是”和“否”,并且在webhook实现中将要附加到相应意图的值保存。
答案 1 :(得分:1)
这是我推荐的方法:
employeeType
实体的意图,但不接受
标记为required
webhook
,并不要
fulfillment text
employeeType
是否包含值
还是空的employeeType
具有价值,则只需返回一个履行文本,然后
继续您的流程employeeType
为空,则设置输出上下文emp-followup
并输入履行文字“您是联邦雇员吗?” emp-followup
的意图,并将实现文本放入
那些继续你的流程示例代码:
req = request.get_json()
params = req.get('queryResult').get('parameters')
if params['employeeType']:
res = json.dumps({
"fulfillmentText": "great! welcome sir."
})
else:
res = json.dumps({
"outputContexts": [
{
"name": "{}/contexts/emp-followup".format(req['session']),
"lifespanCount": 2,
},
],
"fulfillmentText": "are you a federal employee"
})
return res
希望有帮助。