Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }