У меня есть BOT, который использует QnA Maker и LUIS для ответа на часто задаваемые вопросы и запросы, и я пытаюсь внедрить прямую линию для другого BOT. Обычно, когда мой BOT не знает ответ, он отправляет пользовательское сообщение другому BOT, чтобы проверить, знает ли он ответ, и выводит результат. Прямая линия работает нормально, когда я перебираю код с помощью отладчика (GET-запрос отвечает отправленным мною сообщением и ответом из BOT). Однако, когда я просто запускаю код обычно, ответ содержит только сообщение, которое я отправил, а не ответ от другого BOT. Я думаю, что запрос GET заканчивается слишком быстро, чтобы BOT отвечал, когда код запускается вне отладчика, и я понятия не имею, как исправить или расширить запрос. Есть идеи?
Вот соответствующий код:
public class EdwardComponent
{
public static async Task<string> TalkToEdward(string userInput, string conversationID, string streamURL)
{
var DirectLineURL = ConfigurationManager.AppSettings["DirectLineURL"];
var BearerToken = ConfigurationManager.AppSettings["BearerToken"];
var DirectLineURLConversationID = ConfigurationManager.AppSettings["DirectLineURLConversationID"];
DirectLineURLConversationID = DirectLineURLConversationID.Replace("abc123", conversationID);
var postclient = new RestClient(DirectLineURLConversationID);
var postrequest = new RestRequest(Method.POST);
postrequest.AddHeader("Authorization", BearerToken);
postrequest.AddHeader("Content-Type", "application/json");
postrequest.RequestFormat = DataFormat.Json;
var idv = new { id = "user1" };
postrequest.AddBody(new { type = "message", from = idv, text = userInput });
var cancellationTokenSource = new CancellationTokenSource();
var postresponse = postclient.ExecuteAsPost(postrequest, "POST");
var getrequest = new RestRequest(Method.GET);
getrequest.AddHeader("Authorization", BearerToken);
var getresponse = await postclient.ExecuteGetTaskAsync(getrequest);
string content = getresponse.Content.ToString();
return content;
}
}
}
Вот правильный сериализованный ответ от отладки:
Действие 0 - это отправленное сообщение, Действие 1 - ответ от BOT
Вот ответ при запуске вне отладчика:
Только действие 0 возвращено