Articles of api ai

从API.ai履行请求获取代理信息

有没有一种方法可以从履行请求中获取API.ai代理信息? 我正在尝试捕获可以从代理传递的Node.js代码中的任何唯一参数。 这将用于使用单个代码库来处理多个代理的逻辑。 对于亚马逊Alexa我可以从会话中获得技能应用程序ID。 API.ai中有类似的东西吗?

Api.ai Facebook Messenger集成卡和传送带

希望你们做得很好! 我需要一个帮助,让我的聊天机器人api.ai脸书轮播。 我无法迭代json数组来获取使用Nodejs的多个卡。 你可以请指导我完成这是一段代码。 function(results){ var cardResponses = []; for(var i=0;i<results.length;i++){ var richResponses = { 'facebook': { 'attachment': { 'type': 'template', 'payload': { 'template_type': 'generic', 'elements': [ { 'title': results[i].ItemAttributes.Title, 'image_url': results[i].MediumImage.URL, 'subtitle': "INR 250", 'buttons': [ { 'type': 'web_url', 'url': results[i].DetailPageURL, 'title': 'Shop Now ' } ] } ] } } } } cardResponses.push(richResponses); […]

Facebook Messenger的机器人在4-5秒后没有返回响应

我在Api.ai上创build了一个chatbot,并与facebook messenger进行了整合。 如果响应时间less于4秒,我得到响应,但4-5秒后没有响应。 这是我从我的webhook得到的json,但它不显示任何数据在信使。 {“speech”:“Welcome”,“displayText”:“Welcome”,“data”:{“facebook”:[{“text”:“有趣! 这里是“}]}} 下面是示例200的响应代码的屏幕显示。 View post on imgur.com 帮助我摆脱这个问题。 谢谢

获取代理响应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 […]

如何使用nodejs sdk将事件发送到api.ai

我从过去几个月开始与Api.ai聊天机器人 我想连接它与nodejs客户端,我成功地发送text queries从nodejs到api.ai并得到回应(如文档: https : //github.com/api-ai/apiai-nodejs-client中所述 ), 但我仍然无法使用nodejs sdk发送Events因为doc中没有可用的文档: https : //github.com/api-ai/apiai-nodejs-client 请向我介绍任何有用的示例代码或文章

api.ai用不同的input循环相同的意图

我正在使用API​​.AI来实现助手应用程序,但是现在我发现很难在收集不同用户input的同一个意图上循环(纠正我,如果我的expression是错误的,将详细解释它。)问题是,我有一个元素列表,每次我想给一个人分配一个确切的元素(通过使用input的Assistant.getArgument()收集),但是,我希望它每次向用户说'你想分配谁元素X到?' (X是指列表中元素的名称)。 我目前的实现是,创build一个单独的函数,使其提出问题,然后使用while循环在其他函数中收集input/赋值,在while调用ask函数结束时,但它不起作用API.AI在响应中不可用。 任何想法如何做到这一点? 让我知道,如果有什么不清楚。 这里只是一个简短的代码片段,用于显示问题是什么以及我想实现什么。 我想在API.AI中要求4次,获取用户input,并将它们全部存储到输出string中。 var output = ''; function do_sth(assistant){ let get_name_input = assistant.getArgument('name'); output = output + get_name_input + '.'; } function test_repeat(assistant){ for(let i = 0; i < 4; i++){ assistant.ask('What is the name?'); do_sth(assistant); } }

如何使用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开发除语音input外的技巧?

我对Google智能助手新手有一个关于使用Google Home的Google助手的查询, 如何使Google Home无需语音input即可发言? 这是否可以通过除语音之外的其他方式进行input,并以语音格式从Google Home输出?

使用api.ai和heroku(node.js)的Facebook Messenger Messenger聊天室中的OAuthexception

我已经分享了我的代码和下面popup的错误。 基本上,我跟着教程http://www.girliemac.com/blog/2017/01/06/facebook-apiai-bot-nodejs/和另一个。 我的chatbot适用于smalltalk,但不适合天气api的东西。 我试图让聊天机器人给我关于不同城市天气的答案。 我完全按照教程。 Error: { message: '(#100) No matching user found', type: 'OAuthException', code: 100, error_subcode: 2018001, fbtrace_id: 'DeubaTWU6Gg' } Error: { message: '(#100) No matching user found', type: 'OAuthException', code: 100, error_subcode: 2018001, fbtrace_id: 'FSiMes3IwHv' } //代码来自index.js只是天气api的东西 app.post('/ai', (req, res) => { //console.log('*** Webhook for api.ai query ***'); //console.log(req.body.result); if (req.body.result.action === […]

如何在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", […]