Требуется собрать ключевые слова из пользовательского ввода, заданного в окне чата, и выполнить веб-вызов API для получения ссылки на файл.
У меня есть четыре различные категории, в которые можно классифицировать запрос ввода пользователя.:
- Операционная группа --Технологии --География --Темы
Я настроил намерение LUIS и перечислил эти четыре категории в качестве прав.Однако теперь проблема заключается в том, что список сущностей не может быть предопределен, поскольку может быть любое количество ключевых слов для поиска, которые можно передать в веб-API.Теперь я в замешательстве, если есть какое-либо иное решение этой проблемы, например удаление стоп-слов и передача списка ключевых слов Web API.
Код:
[LuisIntent("Credentials")]
public async Task Credentials(IDialogContext context, LuisResult result)
{
try
{
if (result.Entities.Count() == 0)
{
if ((result.Query.ToString().ToLower() == "geo" || result.Query.ToString().ToLower() == "operating group" || result.Query.ToString().ToLower() == "technology" || result.Query.ToString().ToLower() == "Themes"))
{
}
else
{
await context.Forward(new QnABotFeedbackDialog(updateQna, result.Query, rotationTemStorage, qnaInvalidMessageCount), AfterCredentialDialog, context.Activity, CancellationToken.None);
}
}
else if (result.Entities.Count() > 0)
{
string efilterType = string.Empty;
if (result.Entities.Count() > 0)
{
foreach (var i in result.Entities)
{
if (efilterType == string.Empty)
{
efilterType = i.Entity;
}
else
{
efilterType = efilterType + "," + i.Entity;
}
}
}
await CredentialsPersonalisation(context, efilterType);
}
}
catch (Exception ex)
{
await context.PostAsync(ex.Message);
}
}