Dialogflow es 如何提示输入带有“的实体”;是”;或;否";对话流程中的问题?

Dialogflow es 如何提示输入带有“的实体”;是”;或;否";对话流程中的问题?,dialogflow-es,Dialogflow Es,我在Dialogflow中有一个实体“employeeType”,其值为“联邦雇员”和“私人雇员” 如果未获得实体数据,我想问用户一个问题“您是联邦雇员吗?”用户可以回答“是”或“否” 然而,我没有找到一种方法来解决这个问题,因为这样的问题不会返回预定义的值“联邦雇员”或“私人雇员” 有没有解决方法的想法?您有几个选择。你如何处理这件事取决于你如何安排其他事情 由于您有一个“employeeType”实体,您可以将yes作为联邦雇员实体的同义词,将no作为私人雇员的同义词。然而,这可能会使一些短

我在Dialogflow中有一个实体“employeeType”,其值为“联邦雇员”和“私人雇员”

如果未获得实体数据,我想问用户一个问题“您是联邦雇员吗?”用户可以回答“是”或“否”

然而,我没有找到一种方法来解决这个问题,因为这样的问题不会返回预定义的值“联邦雇员”或“私人雇员”


有没有解决方法的想法?

您有几个选择。你如何处理这件事取决于你如何安排其他事情

由于您有一个“employeeType”实体,您可以将
yes
作为
联邦雇员
实体的同义词,将
no
作为
私人雇员
的同义词。然而,这可能会使一些短语工作异常,您可能应该为其他类似正面和负面的响应添加额外的别名


您也可以使用后续意图(已经设置了“是”和“否”别名)接受这些内容,并在webhook实现中保存希望附加到相应意图的值。

以下是我推荐的方法:

  • 做出一个接受
    employeeType
    实体但不接受的意图 将其标记为所需的
  • 为此打开
    webhook
    ,并且不要放置任何
    履行文本
  • 在webhook中,检查参数
    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
    

    希望能有所帮助。

    先生,我认为使用“是/否”同义词也会产生一些奇怪的对话效果。可能不行。