首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在谷歌助理应用程序中发送多条语句?

如何在谷歌助理应用程序中发送多条语句?
EN

Stack Overflow用户
提问于 2017-08-05 15:20:08
回答 2查看 844关注 0票数 1

我正在创建一个谷歌助理应用程序来告诉引号,我目前正在使用Api.aiApiAi NodeJs网络钩子。我希望我的反应应该是这样的:

代码语言:javascript
运行
复制
Innovation is the only way to win.
By Steve Jobs
Want one more?

注意,这三行都是不同的行。我知道,如果我只使用api.ai的ux没有web钩子(使用多个简单的响应),这是可能的,但我不知道如何与web钩子相结合。

我试过:

代码语言:javascript
运行
复制
assistant.ask("Innovation is the only way to win.");
assistant.ask("By Steve Jobs");
assistant.ask("Want one more?");

但它似乎只说了第一句话。我还试着用以下文字取代它:

代码语言:javascript
运行
复制
assistant.tell("Innovation is the only way to win.");
assistant.tell("By Steve Jobs");
assistant.ask("Want one more?");

但它在第一条语句之后就退出了。该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-05 18:58:17

ask()tell()都接受它们的参数并返回一个响应。唯一的区别是ask()使对话继续进行,期望用户回话,而tell()则表示对话已经结束。如果从web服务器的角度来考虑这一点,ask()tell()都会发回相当于一个页面的页面,然后关闭连接,但是ask()在页面上包含了一个表单,而tell()没有。

它们都可以接受一个RichResponse对象,该对象可能包括一个或两个字符串或SimpleResponse对象,这些对象将作为聊天气泡呈现。然而,你不能做三次,至少根据文档的说法是这样的。因此,听起来您最好的选择是包含一个带有引号和属性的SimpleResponse,另一个包含提示另一个。

这听起来也像一种情况,您希望音频不同于显示的文本。在本例中,您希望构建SimpleResponse,以便它同时具有speech字段和displayText字段。

这可能是这样的(我还没有测试代码):

代码语言:javascript
运行
复制
var simpleResponse = {
  speech: 'Steve Jobs said "Innovation is the only way to win."',
  displayText: '"Innovation is the only way to win." -- Steve Jobs'
};
var richResponse = assistant.buildRichResponse();
richResponse.addSimpleResponse(simpleResponse);
richResponse.addSimpleResponse('Do you want another?');
assistant.ask( richResponse );

这也会让你做一些事情,比如在这两条信息的中间添加卡片,比如,包含相关人物的图片。要做到这一点,您可以使用一个richResponse.addBasicCard()对象调用BasicCard方法。这甚至可能比在第二行中包含引号属性更直观。

至于设计--请记住,您正在为各种各样的设备设计。当您有不同的显示模式(有时是不存在的)时,尝试关注行格式是有问题的设计。不要把注意力集中在对话会是什么样子,相反,你应该关注对话感觉有多像你的用户和另一个人之间的对话。记住,声音是这种对话的主要手段,用视觉来补充这种对话,而不是支配它。

票数 5
EN

Stack Overflow用户

发布于 2017-08-05 16:26:49

根据我从文档中可以收集到的信息,.tell.ask都关闭了麦克风。尝试将所有语句放入一个字符串中。据我所知,.ask实际上并不影响演讲的语气,它只是告诉助手等待输入。

代码语言:javascript
运行
复制
assistant.ask("Innovation is the only way to win. By Steve Jobs. Want one more?");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45523479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档