gpt4 book ai didi

javascript - BotFramework V4 Nodejs 中的自适应卡(用户输入表单)在用户提交后重新提示

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:37 25 4
gpt4 key购买 nike

async feed_first(stepContext) 
{
let company_card = MessageFactory.attachment(
CardFactory.adaptiveCard(testfeedback)
);

return await stepContext.prompt("textPrompt", {
prompt: company_card
});
}


async feed_second(stepContext) {
console.log("enter feedback second");
console.log(stepContext.context.activity.value);
}

{
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "Container",
"items": [
{
"type": "Input.ChoiceSet",
"placeholder": "Placeholder text",
"choices": [
{
"title": " 1",
"value": " 1"
},
{
"title": " 2",
"value": " 2"
}
],
"style": "expanded",
"id": "cho"
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
}

因此,对于此代码,会显示卡片,但在机器人模拟器上,当单击提交按钮时,没有任何反应。控制台显示“正在运行带有消息事件的对话框”,并再次提示同一张卡。机器人不会流向 waterfall 对话框的第二步(feed_second)。我希望代码做的是在控制台上显示“第二次输入反馈”,然后在控制台上再次显示stepContext.context.activity.value的id为“cho”的所选选项。旁注 - 我在声明 WaterfallDialog 时添加了“feed_first”和“feed_second”,所以这不是问题

最佳答案

如果您想使用带有文本提示的自适应卡输入,您将需要访问事件的值并以某种方式将其序列化到事件的文本中,如 this example 中所示。 。此信息位于 my Adaptive Cards blog post 的对话框部分,您应该阅读。

在 JavaScript 中,您可以将值序列化为文本,如下所示:

/**
*
* @param {TurnContext} turnContext
*/
async sendValueToDialogAsync(turnContext)
{
// Serialize value
var json = JSON.stringify(turnContext.activity.value);
// Assign the serialized value to the turn context's activity
turnContext.activity.text = json;
// Create a dialog context
var dc = await this.dialogs.createContext(turnContext);
// Continue the dialog with the modified activity
await dc.continueDialog();
}

在您的情况下,如果您只需要一个输入的结果,那么您可以只使用该属性而不是序列化任何内容:

turnContext.activity.text = turnContext.activity.value.cho;

关于javascript - BotFramework V4 Nodejs 中的自适应卡(用户输入表单)在用户提交后重新提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59835642/

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