Tag: dialogflow

获取代理响应DialogFlow

所以我做了一个对话框的基本代理和一个简单的网页,让用户插入一个问题。 我也做了一个非常简单的节点服务器,用户可以提出问题。 现在,我想以编程方式将此问题提交给我的代理,并根据问题获得代理响应。 我该怎么做呢? 这是网页 <!DOCTYPE html> <html> <body> <form action="http://127.0.0.1:80/question" method='get'> Question: <br> <input type="text" name="questionValue"> <br> <input type="submit" value="send"> </form> </body> </html> 这是服务器 var express = require('express'); var app = express(); //handle get req on /question app.get('/question', function (req, res) { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); //process var q = req.query.questionValue; //write response […]

如何使用node.js MySQL从MySql DB获取结果并将它们发送回API.ai

我有问题检索并从MySql数据库发送结果到API.ai. 具体问题是如何等待结果可用,然后将Json对象中的结果发送回API.ai 这是我的: 在webhook或服务中,在接收到Json请求之后,我调用一个方法: if (action === 'get.data') { // Call the callDBJokes method callDB().then((output) => { // Return the results to API.AI res.setHeader('Content-Type', 'application/json'); res.send(JSON.stringify(output)); }).catch((error) => { // If there is an error let the user know res.setHeader('Content-Type', 'application/json'); res.send(JSON.stringify(error)); }); } 它调用执行数据库调用的方法callDB(): function callDB() { return new Promise((resolve, reject) => { try […]

如何在Google Home中使用NodeJS设置会话variables(DialogFlow)

我正在为Google Home编写我的第一个NodeJS应用程序(使用DialogFlow – 以前的API.ai)。 我正在查看此页面上的文档: https : //developers.google.com/actions/reference/v1/dialogflow-webook 但我没有看到设置会话variables的方法。 我目前的testing程序设置这样的演讲: speechText = "I'm not sure that character exists!"; callback(null, {"speech": speechText}); 在DialogFlow中,运行后的JSON看起来像这样,看起来也许“上下文”是会话状态会去的地方? { "id": "3a66f4d1-830e-48fb-b72d-12711ecb1937", "timestamp": "2017-11-24T23:03:20.513Z", "lang": "en", "result": { "source": "agent", "resolvedQuery": "test word", "action": "MyAction", "actionIncomplete": false, "parameters": { "WordNumber": "400" }, "contexts": [], "metadata": { "intentId": "a306b829-7c7a-46fb-ae1d-2feb1c309124", "webhookUsed": "true", "webhookForSlotFillingUsed": "false", […]

如果select不是紧接着传送带,select意图不会被触发

当我们展示旋转木马时,我正面临着听用户select的问题。 我们使用askWithCarousel和dialogFlow,并使用actions_intent_option事件监听轮播项目的点击。 当向用户显示旋转木马时,如果麦克风从用户那里得到一个随机的input(与我们的旋转木马项目的同义词不匹配),助手开始听用户input,然后用户点击任何旋转木马项目或说任何的同义词, actions_intent_option事件不会被解雇。 如果这个交互紧接着显示轮播,它就可以正常工作。 否则,它将采用轮播标题作为用户input并解决不同的意图。 因为这个,无法得到传送带物品的ID。 有没有办法禁用麦克风或发出actions_intent_option即使当用户稍后点击旋转木马项目。 请帮助这个stream程。

将参数发送到dialogflow sdk v2上的webhook

我试图发送一些参数到dialogflow(api.ai),如用户名,电子邮件等,但我无法弄清楚。 问题是我无法使用Dialogflow v2 Nodejs SDK获取/设置任何特定数据(例如用户名,电子邮件等)。 我试图使用queryParams.payload (v1: originalRequest ),但它不起作用。 此外,我试图用数据触发自定义事件 ,但我无法获得响应的任何事件数据。 有人知道如何发送一些特定的会话对话dialogFlow数据? 有效负载的例子 const projectId = 'test-bot-test-1111'; const sessionId = user.uuid; const languageCode = 'en-GB'; const sessionClient = new dialogFlow.SessionsClient(); const sessionPath = sessionClient.sessionPath(projectId, sessionId); const request = { session: sessionPath, queryInput: { text: { text: query, languageCode } }, queryParams: { payload: { data: […]