多个 assistant.ask 或 assistant.tell 语句,无需用户输入



我需要澄清,因为我被困住了。

当我给出多个 assistant.ask 语句时,它只显示一个,然后等待用户的响应。

有没有办法向用户发送多个语句?

假设用户询问天气。

我回答说。"好,让我抬头看看,帮你查一下。">

现在,我进行 API 调用以查找异步天气。

然后,一旦我得到响应,我想向用户发送响应"这是该位置的天气......">

因此,在两个响应之间,没有用户输入。有什么办法可以做到这一点吗?

您尚未指明是否正在使用 API。AI 或直接操作 API,但听起来您正在使用操作 API。从你的描述中,听起来你正在线性编写函数 - 就好像你期望assistant.ask()停止程序并等待用户的回复一样。这不是assistant.ask()或一般操作的工作方式。

将Google Home想象成一个网络浏览器,您的操作将在某处的网络服务器上运行。assistant.ask()相当于向浏览器发送回消息并关闭连接(但不关闭麦克风)。没有可以执行的其他处理,因此在ask()之后具有语句没有意义。

assistant.ask()答复本身是异步处理的。程序逻辑不会暂停并等待回复 - 回复由对程序的单独调用处理。

如果直接使用操作 API,则需要跟踪您在对话中的位置(状态 - 或者到目前为止提出了哪些问题以及您得到了哪些答案),并相应地执行不同的代码路径。

您可能对 API 更感兴趣。AI,它允许您以更具交互性的方式构建对话,并仅指示哪些命令需要向您的 Webhook 发送信息。使用 API。AI,您的编程逻辑不需要跟踪您在对话中的位置 - 您可以通过 API 构建状态机和对话路径。.AI。

现在无法通过操作发送未经提示的内容。因此,在查找信息之前回答"当然,让我为您查找"是不合适的。

最新更新