public async Task <RnnChiChatMessage> ProcessAsync(TextMessage message, string userContext, int replicCount) { using (RabbitMqClient client = new RabbitMqClient("localhost")) { string inputQueue = "RnnTalkService", outputQueue = "RnnTalkService"; switch (message.Language) { case Language.English: inputQueue += "_input_en"; outputQueue += "_output_en"; break; case Language.Russian: inputQueue += "_input_ru"; outputQueue += "_output_ru"; break; default: throw new Exceptions.InvalidMessageException(message.Id, "Invalid Language: " + message.Language.ToString()); } RnnChiChatMessage talkSystemRequest = new RnnChiChatMessage(); talkSystemRequest.Id = message.Id; talkSystemRequest.TextData = message.Text; talkSystemRequest.TalkContext = userContext; talkSystemRequest.TalkReplicCount = replicCount; string responeRnn; responeRnn = await client.PostAsync(JsonConvert.SerializeObject(talkSystemRequest), inputQueue, outputQueue); var talkSystemRespone = JsonConvert.DeserializeObject <RnnChiChatMessage>(responeRnn); return(talkSystemRespone); } }
public async System.Threading.Tasks.Task <ServiceMessage> InvorkAsync(ServiceMessage message) { TextMessage textMessage = new TextMessage { Id = message.Id, Language = EnumsConvertor.StringToLanguage(message.Language), Text = message.Text }; string userApiAiContext = "", userRnnContext = ""; textMessage = _dialogueFlow.Process(textMessage, ref userApiAiContext, out string intentName); if (intentName == "input.unknown") { RnnChiChatMessage chiChatMessage = await _rnnChiChat.ProcessAsync(textMessage, userRnnContext, 0); message.Text = chiChatMessage.TextData; } return(message); }