gpt4 book ai didi

node.js - 如何在 Alexa Skill Kit (ASK) 中流式传输响应

转载 作者:搜寻专家 更新时间:2023-11-01 00:40:58 25 4
gpt4 key购买 nike

我正在尝试构建一个 ASK(Alexa Skill Kit)应用程序,以便在收到消息时基本上读出它们。

到目前为止,我尝试测试的代码是:

function handleObserveFlowIntentRequest(intent, session, response) {
var callback = function (message) {
response.tell({
speech: message,
type: AlexaSkill.speechOutputType.PLAIN_TEXT
});
};
callback("One Observe Flow");
callback("Two Observe Flow");
}

我只能从输出 "One Observe Flow" 的第一个回调中获得响应

最终我想基本上做这样的事情:

function handleObserveFlowIntentRequest(intent, session, response) {
var callback = function (message) {
response.tell({
speech: message,
type: AlexaSkill.speechOutputType.PLAIN_TEXT
});
};
var jsonStream = new EventSource(::myApiUrl::);
jsonStream.onmessage = function (e) {
callback(e.data.message);
}
}

最佳答案

目前您尝试做的事情在 ASK 平台上是不可能的。

如果没有先得到提示,Alexa 是不可能说些什么的。 Alexa 是对话式的,无法打断用户。

虽然基于 node.js 的异步特性,您想要做的事情看起来可能在代码中是可能的,但亚马逊会根据给定的 Intent 同步调用您的技能,而您只是提供响应。 ASK 不提供一种机制让您将某些内容推送给 Alexa 让它说。

这意味着您必须在 Alexa 真正说出任何内容之前形成完整的回应。重申一下,这是因为亚马逊正在使用 Intent 调用您的技能并期待响应。使用 response.tell 返回该响应后,您无法让 Alexa 说出任何其他内容,直到您收到来自亚马逊的另一个 Intent 请求。

关于node.js - 如何在 Alexa Skill Kit (ASK) 中流式传输响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com