/* * 1. use LUIS API to convert string to data object * 2. parser and build response stastus for receiver */ public string InvokeAPI(string keyword) { using (WebClient client = new WebClient()) { string encoding = HttpUtility.UrlEncode(keyword); string queryString = $"{API_URL}{encoding}"; client.Encoding = Encoding.UTF8; string response = client.DownloadString(queryString); LuisResultData jsonResult = JsonConvert.DeserializeObject <LuisResultData>(response); return(BuildQueryResult(keyword, jsonResult)); } }
private string BuildQueryResult(string query, LuisResultData lineData) { var topIntent = lineData.TopScoringIntent; var entities = lineData.Entities; StringBuilder builder = new StringBuilder(); builder.AppendLine($"query: {query}"); builder.AppendLine($"intent: {topIntent.Intent}, score: {topIntent.Score}"); foreach (var item in entities) { builder.AppendLine($"entity: {item.entity}, index: {item.StartIndex},{item.EndIndex}, type: {item.Type}, score: {item.Score}"); } return(builder.ToString()); }