对话(Dialog )是用来分组一组相关意图,动作或者快速回复的。通常来说,这是使用OSCOVA做bot开发第一步。
对话的创建我们上一节已经说过了,当创建好之后需要添加到bot中
bot.Dialogs.Add(new AppDialog());
域(Domains),简单说是用来给对话分组的,你可以指定用户的对话属于那个域下面。
看这个例子:
[Dialog(Domain = "tech-support")]
public class TechSupportDepartmentDialog : Dialog { [Trait(Type = "#login")] public void LoginIntent(Context context, Result result) { //Do something } }
[Dialog(Domain = "dev-ops")]
public class DevOpsDepartmentDialog : Dialog { [Trait(Type = "#login")] public void LoginIntent(Context context, Result result) { //Do something } }
var bot = new OscovaBot();
bot.Dialogs.Add(new TechSupportDepartmentDialog());
bot.Dialogs.Add(new DevOpsDepartmentDialog());
bot.Trainser.StartTraining();
var techUser = bot.CreateUser(); techUser.Domains.Add("tech-support"); var devUser = bot.CreateUser(); devUser.Domains.Add("dev-ops");
你应该明白了,所属于不同域的用户都有他们自己的登录意图(LoginIntent
)