gpt4 book ai didi

javascript - Microsoft BotFramework - 建议的卡片

转载 作者:搜寻专家 更新时间:2023-10-31 23:40:37 25 4
gpt4 key购买 nike

所以我正在尝试使用建议的卡片为 WebChat 机器人提供更好的按钮输入,除非有人有任何其他建议?目前已使 builder.prompts 正常工作。

但我的问题是,使用以下示例:

var msg = new builder.Message(session)
.text("Thank you for expressing interest in our premium golf shirt! What color of shirt would you like?")
.suggestedActions(
builder.SuggestedActions.create(
session, [
builder.CardAction.imBack(session, "productId=1&color=green", "Green"),
builder.CardAction.imBack(session, "productId=1&color=blue", "Blue"),
builder.CardAction.imBack(session, "productId=1&color=red", "Red")
]
));
session.send(msg);

我实际上如何获得响应?它自动将用户值写入聊天(我试图避免)尝试使用 response.entity 等但没有返回它。

文档说“当用户点击建议的操作之一时,机器人将收到一条来自用户的消息,其中包含相应操作的。”

谢谢。

最佳答案

一些事情。

首先,imBack 基本上代表 IM 返回,或即时消息返回。它将发送对对话的响应。您需要 postBack,这将隐藏响应,但请记住,对于某些 channel ,postBack 将映射到 imBack,因此您将拥有做一些调查。对于机器人模拟器,postBack 将隐藏响应。

第二件事,如果您在机器人运行时观察您的控制台,您会看到机器人将尝试路由到 imBack 中的那个方法。您需要通过对话或意图来捕捉这一点。这是一个可能效率低下的小例子:

intents.matches(/^suggest/i, [(session) => {
var msg = new builder.Message(session)
.text("Thank you for expressing interest in our premium golf shirt! What color of shirt would you like?")
.suggestedActions(
builder.SuggestedActions.create(
session, [
builder.CardAction.postBack(session, "productId=1&color=green", "Green"),
builder.CardAction.postBack(session, "productId=1&color=blue", "Blue"),
builder.CardAction.postBack(session, "productId=1&color=red", "Red")
]
));
session.send(msg);
}]);

intents.matches(/^productId/i, [
(session, args, next) => {
console.log(args);
}
]);

在上面使用意图对话框的示例中,我可以从第二个 intent.matches 的参数中的 matched 数组访问 value 方法调用。

还有其他方法可以做到这一点,但这是一个简单的例子。

关于javascript - Microsoft BotFramework - 建议的卡片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875959/

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