Botframework 在谈话过程中随时处理实体的正确方法

Botframework 在谈话过程中随时处理实体的正确方法,botframework,azure-language-understanding,Botframework,Azure Language Understanding,我最近开始使用LUIS和bot框架,之前我也有一些API AI/Google home开发的经验 在下面的示例中,我将使用一个示例(来自)演示与用户的逐步交互。首先,它要求提供一个日期,然后是一个数字,然后是储备的名称,依此类推 var bot = new builder.UniversalBot(connector, [ function (session) { session.send("Welcome to the dinner reservation."); builde

我最近开始使用LUIS和bot框架,之前我也有一些API AI/Google home开发的经验

在下面的示例中,我将使用一个示例(来自)演示与用户的逐步交互。首先,它要求提供一个日期,然后是一个数字,然后是储备的名称,依此类推

var bot = new builder.UniversalBot(connector, [
function (session) {
    session.send("Welcome to the dinner reservation.");
    builder.Prompts.time(session, "Please provide a reservation date and time (e.g.: June 6th at 5pm)");
},
function (session, results) {
    session.dialogData.reservationDate = builder.EntityRecognizer.resolveTime([results.response]);
    builder.Prompts.text(session, "How many people are in your party?");
},
function (session, results) {
    session.dialogData.partySize = results.response;
    builder.Prompts.text(session, "Who's name will this reservation be under?");
},
function (session, results) {
    session.dialogData.reservationName = results.response;

    // Process request and display reservation details
    session.send("Reservation confirmed. Reservation details: <br/>Date/Time: %s <br/>Party size: %s <br/>Reservation name: %s",
        session.dialogData.reservationDate, session.dialogData.partySize, session.dialogData.reservationName);
    session.endDialog();
}]);
var bot=new builder.UniversalBot(连接器、[
职能(会议){
发送(“欢迎光临晚餐预订”);
builder.Prompts.time(会话“请提供预订日期和时间(例如:6月6日下午5点)”);
},
功能(会话、结果){
session.dialogData.reservationDate=builder.EntityRecognizer.resolveTime([results.response]);
builder.Prompts.text(会话“您的团队中有多少人?”);
},
功能(会话、结果){
session.dialogData.partySize=results.response;
builder.Prompts.text(会话“此预订将使用谁的姓名?”);
},
功能(会话、结果){
session.dialogData.reservationName=results.response;
//处理请求并显示预订详细信息
session.send(“预订已确认。预订详细信息:
日期/时间:%s
参与方大小:%s
预订名称:%s”, session.dialogData.reservationDate、session.dialogData.partySize、session.dialogData.reservationName); session.endDialog(); }]);
在我的代码中,我有一个类似的多参数对话框,但我希望允许用户在任何响应中同时回答多个信息。例如,在提供预订日期后,用户可以说“Robert预订10人”,因此人数和预订名称同时给出

为了识别这些文本实体,我想我必须调用LUIS并从会话上下文中解析这些实体。我注意到bot对象有一个公认的方法,我认为它可以实现这一点

我的问题是如何组织代码的结构以及路易斯的话语和实体?现在我对一些实体和一些话语样本有一个意图,但如果我发送这个“部分”用户句子,我认为它不会映射到相同的意图,也可能不会用这样的小句子识别实体

我该怎么处理?我是否需要提供这些部分句子的意图样本,这些句子可能只包含一些实体


谢谢

是的,你应该提供你想要识别的所有话语的样本。没有一百万个样本,但只有很少的样本可以训练所有的东西

接下来,你可能要解决的另一个问题是,询问话语中缺失的实体的信息。您可以手动执行此操作,也可以进一步浏览库