Я занимаюсь разработкой чат-бота с использованием среды MS bot (v4) и использую прямой канал для бота. Часто я получаю эту проблему, всякий раз, когда мы задаем какой-то вопрос в боте, он отвечает через 2-3 секунды. но статус заданного вопроса останется отправленным в течение 20 секунд, а затем будет отображаться как Не удалось отправить. Повторите попытку при повторной попытке также повторяет то же самое.
Когда я пытался сделать то же самое в веб-чате, это вызывает ту же проблему.
Пожалуйста, объясните мне, почему это происходит и как решить эту проблему.
Некоторая дополнительная информация для расследования моей проблемы:
1) Используете ли вы какое-либо промежуточное программное обеспечение?
No, I'm not using any middleware
2) Где находится ваш бот?
BOT hosted in Azure only,
3) Пожалуйста, включите окружающий код, где бот отправляет «Привет!».
private async Task ProcessSampleQnAAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
mPrevUserMssg = input;
_logger.LogInformation("ProcessSampleQnAAsync");
var metadata = new Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();
metadata.Name = product;
metadata.Value = release;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.ScoreThreshold = 0.3F;
var results =await _botServices.SampleQnA.GetAnswersAsync(turnContext, qnaOptions);
if (results.Any())
{
if (checkval == null)
{
await turnContext.SendActivityAsync(MessageFactory.Text(results.First().Answer), cancellationToken);
await endmessageSuggestedActionsAsync(turnContext, cancellationToken);
}
else
{
await turnContext.SendActivityAsync(MessageFactory.Text("Please try with a different phrase"), cancellationToken);
}
}
else
{
metadata.Name = "editorial";
metadata.Value = "chitchat";
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.ScoreThreshold = 0.3F;
var chitchatresults = await _botServices.SampleQnA.GetAnswersAsync(turnContext, qnaOptions);
if (chitchatresults.Any())
{
var response = chitchatresults.First().Answer;
var answers = response.Split('|');
if (answers.Count() > 1)
{
Random rnd = new Random();
int index = rnd.Next(answers.Count());
response = answers[index];
}
await turnContext.SendActivityAsync(MessageFactory.Text(response), cancellationToken);
await endmessageSuggestedActionsAsync(turnContext, cancellationToken);
}
else {
if (unaswered == 0)
{
await turnContext.SendActivityAsync(MessageFactory.Text("Sorry, I've no answer"), cancellationToken);
unaswered = 1;
}
else
{
await turnContext.SendActivityAsync(MessageFactory.Text("Sorry, I am still unable to find answer."), cancellationToken);
unaswered = 0;
}
}
}
4) Какой у вас appId или имя бота (я поищу вещи на резервной копии).
c48119d1-8078-4804-bc20-9dead31ea0f7
5) Какую версию веб-чата вы используете?
Я использую последнюю версию веб-чата / прямого канала для ботов на моем сайте