问题标签 [api-ai]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3053 浏览

api-ai - 在对话流(api.ai)中添加确认实体

我需要添加一个确认实体,以便在 dialogflow (api.ai) 中某个操作的参数中获得“是”或“取消”。假设用户正在购买咖啡,我会询问有关咖啡和数量的详细信息,最后我需要确认,我应该向哪个实体申请?任何引用相同内容的教程也会有所帮助。

0 投票
1 回答
362 浏览

google-home - 有没有办法以编程方式将整个技能上传到 DialogFlow?

我想在代码中生成整个动作 JSON,然后上传它们,而不是通过控制台工作。有一个选项可以将整个包下载为压缩的 JSON,理论上您也可以上传。这可能会提供有关如何创建 JSON 的提示。

但是,这些文件具有用于不同构建块的各种 ID,例如 Intent 或 Entity。所以,当我从 DialogFlow 导出时,我当然会得到这些的 ID。

但是,如果我想创建一个新的谷歌操作,我自己生成这些操作 ID 吗?是否有关于这些 JSON 结构的文档?

0 投票
0 回答
628 浏览

multilingual - 允许用户在 DialogFlow 中访问 MultiLanguage

有没有人有一个对话流机器人的代码示例,用户可以在其中从英语 Facebook 机器人切换到法语机器人?

编辑:理想情况下,机器人最初会使用英语,然后会提示用户选择一种语言作为第一意图。然后会切换到另一种语言。有没有办法做到这一点?我是否必须使用更新的 lang 变量重新启动 dialogflow(api.ai) 主体的实例?或者我可以在json中发送带有“lang”的响应来切换?

0 投票
4 回答
3163 浏览

node.js - 在 DialogFlow 中重置或覆盖上下文的生命周期

我正在尝试使用 npm 包中的 ApiAi 类来管理我的 Google Assistant 代理(在 DialogFlow 中)的上下文actions-on-google

问题是:如何使用 npm 包重置寿命/删除上下文?

我可以轻松设置新上下文的生命周期,并且它有效。

然而:

  1. 如何删除上下文?
  2. 将上下文设置为不同的数字似乎不起作用。也就是说,如果我设置app.setContext('myContext',10)然后,2个意图之后,当生命周期在时8,我app.setContext('myContext',10)再次调用,在下一个意图中,生命周期仍然是7。如果我可以回答 (1) 并删除一个上下文,我会删除它并重新设置它。
0 投票
1 回答
204 浏览

speech-recognition - 为什么voximal不记录我的演讲?

我正在尝试将我们正在创建的机器人与 api.ai 集成。我已经设法配置了几乎所有东西。我可以拨打电话,并听到我在 XML 文件中输入的文本。但是,当我回答时,没有记录输入。

我创建了一个谷歌语音 API 密钥并将其添加到“识别”中,但没有成功,它不需要我的语音输入。

这是我的识别标签: 在此处输入图像描述

这是我的 XML 代码示例:

这是我的日志文件: 在此处输入图像描述

0 投票
1 回答
918 浏览

aws-lambda - 在 AWS Lambda 上运行 ApiAi 节点应用程序

我想在 AWS Lambda 中为我的 Google Assistant 设置我的完整功能。我正在使用actions-on-googlenpm 包。要创建一个ApiAiApp({req,res}我需要一个 http 请求和响应对象。

但是,lambda 回调提供了一组不同的参数:

我如何翻译event, context, callback<REQUEST>and <RESPONSE>

(我不相信我需要这里的上下文)

0 投票
2 回答
2258 浏览

chatbot - 使用 API.AI 的 Web Demo 中的富消息聊天机器人

我正在为我的网站创建一个聊天机器人,我想使用 APIAI 中的 Web 演示在聊天机器人中添加可点击的图像、链接、按钮。我怎样才能做到这一点?

0 投票
1 回答
234 浏览

artificial-intelligence - 如何为 dialogflow webhook 服务器上的每个请求添加中间件/拦截器

如何在使用 Action-on-google 库和使用 dialogflow 应用程序时为 dialogflow webhook 服务器上的每个请求添加中间件/拦截器,目的是我想对密钥是否仍然有效的每个请求进行身份验证,我也想要检查该用户是否已经在管理一个组,然后获取组的所有成员并放入 /userEntity,

现在我是在 Wellcome 意图中这样做的,所以当用户说talk to xyz app在 Wellcome 意图中时,如果用户正在管理一个组,我会检查数据库,然后获取该特定组的所有成员并放入用户实体,

但是当用户直接说出命令时,这个逻辑就talk to my xyz app变成垃圾ask my xyz app john wink is present or not

现在我已经限制了带有上下文组合的直接命令,但这并不好,例如:用户不能说直接命令,除非WELCOME_DONE上下文是出于 Wellcome 意图的上下文

0 投票
1 回答
161 浏览

actions-on-google - askWithCarousel() 返回空响应

这是我正在使用的代码片段:

这是屏幕截图:

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
686 浏览

google-oauth - OAuth 隐式流访问令牌每小时过期一次

我在使用 Google 助理的 OAuth 隐式流程时遇到问题。我设法设置了一个 OAuth 服务器并让它工作。这是流程:

用户被重定向到我的端点,使用 Google 帐户进行身份验证,并使用访问令牌和结果代码=SUCCES 将其发送回助手。

在我的完成中,我通过向以下地址发出 https 请求来获取用户的电子邮件地址:https://www.googleapis.com/plus/v1/people/me?access_token=access_token

然后我在我的数据库中找到匹配的用户并将访问令牌添加到该用户的数据库中。

下次用户登录时,我会检查访问令牌并用他们的名字问候用户。

现在的问题是这是隐式流,根据文档应该有一个永不过期的访问令牌:

注意:Google 要求使用隐式流发布的访问令牌永不过期,因此您不需要像其他 OAuth 2.0 流那样记录访问令牌的授予时间。

但是助手强迫我每小时重新验证一次,这意味着访问令牌确实过期了。

我的问题是:这个流程是正确的还是我错过了什么?我在 OAuth 端点中做错了什么吗?

我的端点基于https://developers.google.com/identity/protocols/OAuth2UserAgent