如何解决Botframework V4提示中的额外新行
我用Microsoft Botframework编写了一个Bot。在最新版本中,我在文字提示上添加了新的一行。
我要显示这样的文本:
Wenn Sie Ihre Eingabe so präzise wie möglich formulieren,kann ich Sie am besten verstehen und eine passende Antwort finden.
Diese Eingabe ist nicht sehr präzise:
"Kompetenzen Sollzinsänderung"
Schreiben Sie stattdessen doch lieber:
"Welche Kompetenzen benötige ich für die Änderung eines individuell vereinbarten Sollzinses?"
我从资源文件中加载此文本,然后通过context.PromptAsync将其发送到客户端。客户端是这样渲染的:
Wenn Sie Ihre Eingabe so präzise wie möglich formulieren,kann ich Sie am besten verstehen und eine passende Antwort finden.
Diese Eingabe ist nicht sehr präzise:
"Kompetenzen Sollzinsänderung"
Schreiben Sie stattdessen doch lieber:
"Welche Kompetenzen benötige ich für die Änderung eines individuell vereinbarten Sollzinses?"
我知道Markdown解释器用于呈现文本。有人知道如何格式化资源字符串以获取第一个输出吗?
public class BaseDialog : ComponentDialog{
private readonly IStringLocalizer<BaseDialog> _stringLocalizer;
public BaseDialog(string dialogId,IStringLocalizer<BAseDialog> stringLocalizer) : base(dialogId)
{
_stringLocalizer = stringLocalizer ?? throw new ArgumentNullException(nameof(stringLocalizer));
AddDialog(new TextPrompt(PROMPTDIALOGID));
}
protected override async Task<DialogTurnResult> OnBeginDialogAsync(DialogContext innerDc,object options,CancellationToken cancellationToken = default)
{
var activity = GetActivity().AsMessageActivity();
return await innerDc.PromptAsync(PROMPTDIALOGID,new PromptOptions
{
Prompt = (Activity)activity
},cancellationToken);
}
public virtual IActivity GetActivity()
{
return MessageFactory.Text(Localizer["Default_Response"]);
}
}
HelpDialog.cs
public class HelpDialog : BaseDialog
{
public HelpHandlingDialog(IStringLocalizer<BaseDialog> localizer)
: base(nameof(HelpDialog),localizer)
{
}
public override IActivity GetActivity()
{
return MessageFactory.Text(Localizer["Help_Response"]);
}
}
我们正在使用Directline并通过BotFramework Emulator进行测试,而对于用户,我们正在使用ReactWebchat。在两个客户端中都存在所描述的行为。
解决方法
所以我的一位同事完成了任务并找到了解决问题的方法。
这些是消除多余新行的代码:
BaseDialog.resx Wenn Sie Ihre Eingabe因此,想与您联系,请与Kann ich Sie互惠生并通过安特卫普发现。
Diese Eingabe ist nicht sehr präzise: \\n "Kompetenzen Sollzinsänderung"
Schreiben Sie stattdessen doch lieber:\\n “Welche Kompetenzen benötige ich für die Änderung eines individuell vereinbarten Sollzinses?”
HelpDialog.cs
public class HelpgDialog : BaseDialog
{
public HelpDialog(IStringLocalizer<BaseDialog> localizer)
: base(nameof(HelpDialog),localizer)
{
}
public override IActivity GetActivity()
{
return MessageFactory.Text(Localizer["Help_Response"].Value.Replace("\\n","\n"));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。