gpt4 book ai didi

c# - Bot Framework : Enable PromptDialog. Cortana 说出的文本

转载 作者:行者123 更新时间:2023-11-30 23:02:02 24 4
gpt4 key购买 nike

我需要让 Cortana 阅读我的所有提示,到目前为止,我设法让它说出简单的短语,如下例所示:

[LuisIntent("Thanks")]
public async Task Thanks(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{

await context.SayAsync(text: Phrases.YOURE_WELCOME, speak: Phrases.YOURE_WELCOME);
context.Wait(this.MessageReceived);

}

但我无法在 PromptDialogs.Text 上执行此操作我有这个代码:

private async Task OnCustomerSet(IDialogContext context, IAwaitable<string> result)
{

string name = await result;
PromptDialog.Text(context, OnNIFSet, Phrases.ASK_CUSTOMER_NIF);

}

如何让 Cortana 也说出此提示?

谢谢。

最佳答案

更新:我已提交 pull request将其添加到 C# SDK 中,并且在下一个版本中它将成为 bot.builder 包的一部分。当前版本是 3.15.2.2(在撰写本文时),因此任何高于该版本的版本都应该包含它。它将位于 SDK 中,因此您不必使用此答案中的方法。

在深入研究之后,我找到了一个无需更改 SDK 即可工作的解决方案,并且我已经确认这已经在 Node 中开箱即用。我仍然会在拉取请求中添加更改,但这现在应该对您有帮助。

您可以创建一个从 PromptDialog 继承的类,并为 PromptDialog.text 创建一个构造函数,如下所示:

public class PromptDialogTextSpeak:PromptDialog
{
public static void Text(IDialogContext context, ResumeAfter<string> resume, IPromptOptions<string> promptOptions)
{
var child = new PromptString(promptOptions);
context.Call<string>(child, resume);
}
}

我可以通过一个简单的提示来使其工作,例如:

 var text = "this is a prompt";
PromptOptions<string> qwerty = new PromptOptions<string>(text, speak: text);
PromptDialogTextSpeak.Text(context, AfterPrompt, qwerty);

关于c# - Bot Framework : Enable PromptDialog. Cortana 说出的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50679779/

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