public ResponseModel SendMessage(MessageRequestModel message) { var _sessionid = _distributedCache.GetString(message.UserId); if (string.IsNullOrWhiteSpace(_sessionid)) { _sessionid = _assistantService.CreateSession(_assistantId).Result.SessionId; _distributedCache.SetString(message.UserId, _sessionid, new DistributedCacheEntryOptions() { SlidingExpiration = new TimeSpan(00, 4, 00) }); } var messageObj = new IBM.Watson.Assistant.v2.Model.MessageInput() { Text = message.Text }; MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill { UserDefined = new Dictionary <string, object>() }; if (message.ContextVariables != null) { foreach (var item in message.ContextVariables) { skill.UserDefined.Add(item.Key, item.Value); } } skills.Add("main skill", skill); var MessageContext = new IBM.Watson.Assistant.v2.Model.MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = message.UserId, Timezone = "GMT3" } }, Skills = skills }; var result = _assistantService.Message(_assistantId, _sessionid, messageObj, MessageContext); var response = Newtonsoft.Json.JsonConvert.DeserializeObject <ResponseModel>(result.Response); return(response); }
public Response SendMessage(string message, string userId) { var _sessionid = _distributedCache.GetString(userId); if (string.IsNullOrWhiteSpace(_sessionid)) { _sessionid = _assistantService.CreateSession(_assistantId).Result.SessionId; _distributedCache.SetString(userId, _sessionid, new DistributedCacheEntryOptions() { SlidingExpiration = new TimeSpan(00, 10, 00) }); } //var sessionid = _assistantService.CreateSession(_assistantId).Result.SessionId; var messageObj = new IBM.Watson.Assistant.v2.Model.MessageInput() { Text = message }; MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill(); skill.UserDefined = new Dictionary <string, object>(); skills.Add("main skill", skill); var MessageContext = new IBM.Watson.Assistant.v2.Model.MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = userId, Timezone = "GMT3" } }, Skills = skills }; var result = _assistantService.Message(_assistantId, _sessionid, messageObj, MessageContext); var response = JsonConvert.DeserializeObject <Response>(result.Response); //_assistantService.DeleteSession(_assistantId, sessionid); return(response); }
public WatsonResponse MessageWithContext(string utterance, string userid) { IamAuthenticator authenticator = new IamAuthenticator( apikey: apikey); AssistantService service = new AssistantService("2019-02-28", authenticator); service.SetServiceUrl(url); MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill(); skill.UserDefined = new Dictionary <string, object>(); skill.UserDefined.Add("unidade", FUNC.unidade); skill.UserDefined.Add("sexo", FUNC.sexo); //Test skills.Add("main skill", skill); var result = service.Message( assistantId: assistantId, sessionId: sessionId, input: new MessageInput() { Text = utterance }, context: new MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = userid } }, Skills = skills } ); WatsonResponse response = JsonConvert.DeserializeObject <WatsonResponse>(result.Response); return(response); //Console.WriteLine(result.Response); }
public void MessageWithContext() { IamAuthenticator authenticator = new IamAuthenticator( apikey: Keys.apikey); AssistantService service = new AssistantService(Keys.versionDate, authenticator); service.SetServiceUrl(Keys.url); MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill(); Dictionary <string, object> userDefinedDictionary = new Dictionary <string, object>(); userDefinedDictionary.Add("account_number", "123456"); skill.UserDefined = userDefinedDictionary; skills.Add("main skill", skill); var result = service.Message( assistantId: Keys.assistantId, sessionId: sessionId, input: new MessageInput() { Text = "Hello" }, context: new MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = "my_user_id" } }, Skills = skills } ); Console.WriteLine(result.Response); }
public void MessageWithContext() { IamAuthenticator authenticator = new IamAuthenticator( apikey: "{apikey}"); AssistantService service = new AssistantService("2019-02-28", authenticator); service.SetServiceUrl("{serviceUrl}"); MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill(); skill.UserDefined.Add("account_number", "123456"); skills.Add("main skill", skill); var result = service.Message( assistantId: "{assistantId}", sessionId: "{sessionId}", input: new MessageInput() { Text = "Hello" }, context: new MessageContext() { Global = new MessageContextGlobal() { System = new MessageContextGlobalSystem() { UserId = "my_user_id" } }, Skills = skills } ); Console.WriteLine(result.Response); }
static void Main(string[] args) { IamConfig config = new IamConfig(Settings.Default.ApiKey); AssistantService service = new AssistantService(Settings.Default.ApiVersion, config); service.SetEndpoint(Settings.Default.ApiUrl); try { var sessionResponse = service.CreateSession(Settings.Default.AssistantId); Log(sessionResponse.Response); var sessionId = sessionResponse.Result.SessionId; string text = "Hello"; string lastType = string.Empty; Dictionary <int, string> options = new Dictionary <int, string>(); do { var messageInput = new MessageInput() { Text = text }; var messageResponse = service.Message(Settings.Default.AssistantId, sessionId, messageInput); Log(messageResponse.Response); var response = JsonConvert.DeserializeObject <Welcome>(messageResponse.Response); if (response.Output.UserDefined?.UiAction?.NotificationDisplay?.DisplayText != null) { DoService("***" + response.Output.UserDefined?.UiAction?.NotificationDisplay?.DisplayText + "***"); } foreach (var generic in response.Output.Generic) { switch (generic.ResponseType) { case "text": Print(generic.Text); break; case "option": Print(generic.Title); options.Clear(); for (int i = 0; i < generic.Options.Length; i++) { var option = generic.Options[i]; Console.WriteLine($"{i + 1}: {option.Label}"); options.Add(i + 1, option.Value.Input.Text); } break; } if (generic.Typing.HasValue && generic.Typing.Value) { Print("..."); Thread.Sleep(Settings.Default.TypingTime); } } if (response.Output.Actions != null) { foreach (var action in response.Output.Actions) { DoService($"---> {action.ResultVariable} = {action.Type}.{action.Name}"); var actionMessageInput = new MessageInput() { Text = "" }; MessageContextSkills skills = new MessageContextSkills(); MessageContextSkill skill = new MessageContextSkill(); skill.UserDefined = new Dictionary <string, object>(); skill.UserDefined.Add(action.ResultVariable, "123456"); skills.Add("main skill", skill); var messageContext = new MessageContext() { Skills = skills }; var actionMessage = service.Message(Settings.Default.AssistantId, sessionId, actionMessageInput, context: messageContext); Log(actionMessage.Response); } } lastType = response.Output.Generic.LastOrDefault()?.ResponseType ?? string.Empty; Console.Write($"{USER_NAME}: "); text = Console.ReadLine(); if (lastType == "option") { // Managing choice selection through its index. if (int.TryParse(text, out int value) && options.ContainsKey(value)) { text = options[value]; } } } while (text != Settings.Default.ExitKeyword); } catch (ServiceResponseException e) { Console.WriteLine("Error: " + e.Message); } catch (Exception e) { Console.WriteLine("Error: " + e.Message); } Console.WriteLine("\n\nPress any key to close."); Console.ReadKey(); }