如何在简单意图DialogFlow中添加两个数字?

时间:2018-06-26 09:47:58

标签: actions-on-google dialogflow

我正在尝试使用DialogFlow将两个数字相加。

问题:加5和6
我的回答:结果是5 + 6

enter image description here

但是我得到这个答复。

回答逻辑:结果为$ number + $ number1

2 个答案:

答案 0 :(得分:0)

  

https://discuss.api.ai/t/start-conversation-with-user-programatically-from-the-server-side-api-ais-side-on-a-notification/1876/2

     

这是一个API,用于为用户创建自然语言理解模型   对话界面。如果您具有自定义业务逻辑或   然后平台特定的消息格式要求

为此,您需要打开实现,然后在该部分中使用action and parameters获取在queryResult.parameters.<nameofparam>中识别的参数,并像

那样执行任务
let num1 = parseInt(queryResult.parameters.number);
let num2 = parseInt(queryResult.parameters.number1);
let responseText =  {
    "fulfillmentText": "",
    "fulfillmentMessages": [],
    "source": "example.com",
    "payload": {},
    "outputContexts": [],
    "followupEventInput": {}
};
responseText.fulfillmentText = "" + num1 + num2;
res.status(200).send(JSON.stringify(responseText));

答案 1 :(得分:0)

如果需要执行某些操作,则需要利用实现-Webhook概念。我使用Django框架捕获请求,并将响应作为jsonresponse发送回。

下面是这段代码:

@csrf_exempt
def webhook(request):
  # build a request object
  req = json.loads(request.body)
  # get action from json (i.e) arithmetic operation that we need to perform
  action = req.get('queryResult').get('action')
  #get the numbers from the json
  num = req.get('queryResult').get('parameters')
  n1 = int(num.get('number'))
  n2 = int(num.get('number1'))
  if action == 'addition':
  # return a fulfillment message
      fulfillmentText = {'fulfillmentText': n1+n2}
return JsonResponse(fulfillmentText, safe=False)

如果您想了解更多信息,请花一些时间阅读my blog,其中包含完整的代码片段以及实现步骤。