Dialogflow-动态文本响应

时间:2018-11-22 14:29:21

标签: dialogflow

如何在文本响应中设置动态参数? 不是来自用户短语

我有一个案例:

机器人说:“您找到工作了吗?”

用户说:“是”

文本回复:

机器人说:“我可以为您提供空缺{random vacancy}”

2 个答案:

答案 0 :(得分:2)

您不能使用默认的文本响应来执行此操作,实际上,您需要在实现部分中针对该意图启用Webhook调用。我将向您展示我的意图。 enter image description here

这里有Webhook代码:

'use strict';
const http = require('http');


const request2 = require('request');

exports.dialogflowFirebaseFulfillment = (req, res) => {
  console.log('Dialogflow Request body: ' + JSON.stringify(req.body));
  
  let action = req.body.queryResult['intent']['displayName'];
  switch(action){
    case "work":
        // Get the city from a database
        let city="Randomcity";
        // Get the job from a database
        let job="randomjob";
        res.send(JSON.stringify({ 'fulfillmentText': "I can offer you this fantastic job in "+city+" city, doing "+job}));
               
          
    break;
    
    //Add more cases if you have more intents
    }
    
  
    
}

这是结果:

enter image description here

答案 1 :(得分:1)

有两种情况:
1.如果要返回随机参数,则只需在响应中设置所有可能的参数,然后DialogFlow将随机选择一个响应并将其发送给用户。

enter image description here

  1. 如果参数基于某些条件,则需要启用Webhook,并且需要从Webhook返回响应。这是推荐的选项。还有this is how fulfillment works

希望有帮助。