我使用BotFramework和Luis.ai创建了一个机器人。我的想法是创建一个bot be-languages(英语和法语)。为此,我在luis.ai中创建了2个应用程序(每种语言一个)。在我的代码中,我创建了2个luis对话框。
我希望当用户开始与我的机器人(和他的facebook是法语)对话时..当他点击“Démarrer”机器人开始使用FrenchLuis.cs
当用户说:嗨或你好(例如)...英文版的机器人响应。
当用户点击“开始使用”机器人开始使用EnglishLuis.cs时,用户开始与我的机器人(以及他的facebook是英文版)对话
在这一刻,我的机器人可以在英文版的facebook中开始对话......但是当用户输入:Démarrer时,机器人无法识别那是frenchluis.ai
在这一刻,我的法语版facebook的机器人出现了一些错误:($“哎呀!我们的系统存在一些问题”);
我在stackoverflow中创建了另一张票,但我仍有问题。
以下是链接:How to switch between two luis.ai dialog with different languages
我在代码中做的一些更改是在RootDialog.cs中:
namespace FirstBotApplication.Dialogs
{
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
[Serializable]
public class RootDialog : IDialog<object>
{
public async Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
}
public virtual async Task MessageReceivedAsync(IDialogContext context,
IAwaitable<IMessageActivity> result)
{
var message = await result;
if (message.Text.ToLower().Contains("Get Started") ||
message.Text.ToLower().Contains("hello") ||
message.Text.ToLower().Contains("hi"))
{
await context.Forward(new AllTheBot(),
this.ResumeAfterOptionDialog, message); context.Done(true);
}
else if (message.Text.ToLower().Contains("Démarrer") ||
message.Text.ToLower().Contains("salut") ||
message.Text.ToLower().Contains("french") ||
message.Text.ToLower().Contains("francais") ||
message.Text.ToLower().Contains("french"))
{
await context.Forward(new FrenchLuis(), this.ResumeAfterOptionDialog, message); context.Done(true);
}
else
{
await context.PostAsync($"Ooops! There are some problems with our system");
}
}
private async Task ResumeAfterOptionDialog(IDialogContext context,
IAwaitable<object> result)
{
await context.PostAsync($"Resume!");
}
}
}
当我用法语开始用Facebook开始对话时,Image1链接:
答案 0 :(得分:0)
我刚试过以下代码:
else if (message.Text.ToLower().Contains("démarrer") ||
message.Text.ToLower().Contains("salut") ||
message.Text.ToLower().Contains("french") ||
message.Text.ToLower().Contains("francais") ||
message.Text.ToLower().Contains("french"))
我能够进入我伪造的FrenchLuis.cs并实现你想要的流程。但是,要继续帮助您,我需要查看FrenchLuis.cs类的内容。你能发这个吗?