Атрибут LuisIntent неправильно распознан - PullRequest
0 голосов
/ 08 сентября 2018

Я работаю через курс Начало работы со сборкой ботов на Microsoft Bot Framework и использую некоторый код из курса.

Когда я набираю «Привет» в эмуляторе бота, Луис понимает, что это Приветствие, но Бот ловит его как «Нет» и говорит: «Извините, я не знаю, что вы имеете в виду»

[Serializable]
public class LUISDialog : LuisDialog<BugReport>
{
 private readonly BuildFormDelegate<BugReport> NewBugReport;

 public LUISDialog(BuildFormDelegate<BugReport> newBugReport)
 {
    this.NewBugReport = newBugReport;
 }

[LuisIntent("Greeting")]
public async Task Greeting(IDialogContext context, LuisResult result)
{
    context.Call(new GreetingDialog(), Callback);
}
[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
    await context.PostAsync("I'm sorry I don't know what you mean."); 
    context.Wait(MessageReceived);
}

Я не настроил никаких высказываний для намерения None.

Ниже показано, что результатом является приветствие в отладчике:

in the debugger

Экспортированный файл .json выглядит следующим образом

    {
  "luis_schema_version": "3.0.0",
  "versionId": "0.1",
  "name": "sbdbotapp",
  "desc": "",
  "culture": "en-us",
  "intents": [
    {
      "name": "GreetingIntent"
    },
    {
      "name": "NewBugReportIntent"
    },
    {
      "name": "None"
    },
    {
      "name": "QueryBugType"
    }
  ],
  "entities": [
    {
      "name": "BugType",
      "roles": []
    }
  ],
  "composites": [],
  "closedLists": [],
  "patternAnyEntities": [],
  "regex_entities": [],
  "prebuiltEntities": [
    {
      "name": "email",
      "roles": []
    }
  ],
  "model_features": [],
  "regex_features": [],
  "patterns": [],
  "utterances": [
    {
      "text": "bug report",
      "intent": "NewBugReportIntent",
      "entities": []
    },
    {
      "text": "can you check whether foo is a bugtype?",
      "intent": "QueryBugType",
      "entities": [
        {
          "entity": "BugType",
          "startPos": 22,
          "endPos": 24
        }
      ]
    },
    {
      "text": "create bug",
      "intent": "NewBugReportIntent",
      "entities": []
    },
    {
      "text": "good afternoon",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "good evening",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "good morning",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "hello",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "hey",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "hi",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "hi there",
      "intent": "GreetingIntent",
      "entities": []
    },
    {
      "text": "i have a problem",
      "intent": "NewBugReportIntent",
      "entities": []
    },
    {
      "text": "is security a bug type?",
      "intent": "QueryBugType",
      "entities": [
        {
          "entity": "BugType",
          "startPos": 3,
          "endPos": 10
        }
      ]
    },
    {
      "text": "something doesnt work",
      "intent": "NewBugReportIntent",
      "entities": []
    },
    {
      "text": "yo",
      "intent": "GreetingIntent",
      "entities": []
    }
  ]
}

[Update]

Из справки DFBerry и пересмотра курса я вижу, что курс использует SDK, где в качестве учебного пособия по документированию используется бот веб-приложения.

1 Ответ

0 голосов
/ 19 сентября 2018

это потому, что имя вашего намерения - "reetingIntent ", а в вашем коде оно помечено как" приветствие ". Измените ваш код на "reetingIntent ", и он должен работать.

...