没有用户输入的多个 assistant.ask 或 assistant.tell 语句
Multiple assistant.ask or assistant.tell statement without user input
因为我被卡住了,所以我需要澄清。
当我给出多个assistant.ask语句时,它只显示一个然后等待用户的响应。
有没有办法向用户发送多个语句?
假设用户询问天气。
我回复说。 "Sure, let me look up and find it out for you."
现在,我进行 API 调用以查找异步天气。
然后一旦我得到响应,我想将响应发送给用户"Here is the weather for the location...."
因此,在两次响应之间,没有用户输入。有什么办法吗?
您没有说明您是直接使用 API.AI 还是 Actions API,但听起来您正在使用 Actions API。根据您的描述,听起来您正在线性编写函数 - 就好像您希望 assistant.ask()
停止程序并等待用户的回复。这不是 assistant.ask()
或一般操作的工作方式。
将 Google 主页想象成一个网络浏览器,您的操作将 运行 在某处的网络服务器上。 assistant.ask()
相当于向浏览器发回消息并关闭连接(但不关闭麦克风)。没有可以完成的额外处理,因此在 ask()
之后有语句没有意义。
assistant.ask()
回复本身是异步处理的。程序逻辑不会暂停并等待回复 - 回复由对您的程序的单独调用处理。
如果您直接使用操作 API,则需要跟踪您在对话中所处的位置(状态 - 或到目前为止已提出的问题以及您的回答)已经得到)并适当地执行不同的代码路径。
您可能对 API.AI 更感兴趣,它可以让您以更具交互性的方式构建对话,并仅指示哪些命令需要向您的 webhook 发送信息。使用 API.AI,您的编程逻辑不需要跟踪您在对话中的位置 - 您通过 API.AI.
构建状态机和对话路径
目前无法通过操作自动发送内容。所以"Sure, let me look that up for you"在查资料之前的回复是不合适的
因为我被卡住了,所以我需要澄清。
当我给出多个assistant.ask语句时,它只显示一个然后等待用户的响应。
有没有办法向用户发送多个语句?
假设用户询问天气。
我回复说。 "Sure, let me look up and find it out for you."
现在,我进行 API 调用以查找异步天气。
然后一旦我得到响应,我想将响应发送给用户"Here is the weather for the location...."
因此,在两次响应之间,没有用户输入。有什么办法吗?
您没有说明您是直接使用 API.AI 还是 Actions API,但听起来您正在使用 Actions API。根据您的描述,听起来您正在线性编写函数 - 就好像您希望 assistant.ask()
停止程序并等待用户的回复。这不是 assistant.ask()
或一般操作的工作方式。
将 Google 主页想象成一个网络浏览器,您的操作将 运行 在某处的网络服务器上。 assistant.ask()
相当于向浏览器发回消息并关闭连接(但不关闭麦克风)。没有可以完成的额外处理,因此在 ask()
之后有语句没有意义。
assistant.ask()
回复本身是异步处理的。程序逻辑不会暂停并等待回复 - 回复由对您的程序的单独调用处理。
如果您直接使用操作 API,则需要跟踪您在对话中所处的位置(状态 - 或到目前为止已提出的问题以及您的回答)已经得到)并适当地执行不同的代码路径。
您可能对 API.AI 更感兴趣,它可以让您以更具交互性的方式构建对话,并仅指示哪些命令需要向您的 webhook 发送信息。使用 API.AI,您的编程逻辑不需要跟踪您在对话中的位置 - 您通过 API.AI.
构建状态机和对话路径目前无法通过操作自动发送内容。所以"Sure, let me look that up for you"在查资料之前的回复是不合适的