public async Task SessionTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var firstService = new AIDataService(config); var secondService = new AIDataService(config); { var weatherRequest = new AIRequest("weather"); var weatherResponse = await MakeRequestAsync(firstService, weatherRequest); Assert.IsNotNull(weatherResponse); } { var checkSecondRequest = new AIRequest("check weather"); var checkSecondResponse = await MakeRequestAsync(secondService, checkSecondRequest); Assert.IsTrue(string.IsNullOrEmpty(checkSecondResponse.Result.Action)); } { var checkFirstRequest = new AIRequest("check weather"); var checkFirstResponse = await MakeRequestAsync(firstService, checkFirstRequest); Assert.IsNotNull(checkFirstResponse.Result.Action); Assert.IsTrue(checkFirstResponse.Result.Action.Equals("checked", StringComparison.CurrentCultureIgnoreCase)); } }
private AIDataService CreateDataService() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); return(dataService); }
public async Task WrongEntitiesTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("hi nori"); var myDwarfs = new Entity("not_dwarfs"); myDwarfs.AddEntry(new EntityEntry("Ori", new[] { "ori", "Nori" })); myDwarfs.AddEntry(new EntityEntry("bifur", new[] { "Bofur", "Bombur" })); var extraEntities = new List <Entity> { myDwarfs }; aiRequest.Entities = extraEntities; try { var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(false, "Request should throws bad_request exception"); } catch (AIServiceException e) { Assert.IsTrue(true); } }
public async Task DifferentAgentsTest() { var query = "I want pizza"; { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest(query); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response.Result); Assert.AreEqual("pizza", response.Result.Action); } { var config = new AIConfiguration("968235e8e4954cf0bb0dc07736725ecd", SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest(query); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response.Result); Assert.IsTrue(string.IsNullOrEmpty(response.Result.Action)); } }
public async Task DifferentAgentsTest() { var query = "I want pizza"; { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest(query); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response.Result); Assert.AreEqual("pizza", response.Result.Action); } { var config = new AIConfiguration(SUBSCRIPTION_KEY, "968235e8e4954cf0bb0dc07736725ecd", SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest(query); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response.Result); Assert.IsTrue(string.IsNullOrEmpty(response.Result.Action)); } }
public void SessionTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var firstService = new AIDataService(config); var secondService = new AIDataService(config); { var weatherRequest = new AIRequest("weather"); var weatherResponse = MakeRequest(firstService, weatherRequest); Assert.IsNotNull(weatherResponse); } { var checkSecondRequest = new AIRequest("check weather"); var checkSecondResponse = MakeRequest(secondService, checkSecondRequest); Assert.IsEmpty(checkSecondResponse.Result.Action); } { var checkFirstRequest = new AIRequest("check weather"); var checkFirstResponse = MakeRequest(firstService, checkFirstRequest); Assert.IsNotNull(checkFirstResponse.Result.Action); Assert.IsTrue(checkFirstResponse.Result.Action.Equals("checked", StringComparison.InvariantCultureIgnoreCase)); } }
private AIResponse MakeRequest(AIDataService service, AIRequest request) { var aiResponse = service.Request(request); Assert.IsNotNull(aiResponse); Assert.IsFalse(aiResponse.IsError); Assert.IsFalse(string.IsNullOrEmpty(aiResponse.Id)); Assert.IsNotNull(aiResponse.Result); return(aiResponse); }
private async Task <AIResponse> MakeRequestAsync(AIDataService service, AIRequest request) { var aiResponse = await service.RequestAsync(request); Assert.IsNotNull(aiResponse); Assert.IsFalse(aiResponse.IsError); Assert.IsFalse(string.IsNullOrEmpty(aiResponse.Id)); Assert.IsNotNull(aiResponse.Result); return(aiResponse); }
public static string getDialogflow(Request request) { var config = new AIConfiguration(accessToken, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest(request.Message); var aiResponse = dataService.Request(aiRequest); var dialogflowresult = aiResponse.Result.Fulfillment.Speech; return(dialogflowresult); }
public async Task TestTextRequest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest("Hello"); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response); Assert.AreEqual("greeting", response.Result.Action); Assert.AreEqual("Hi! How are you?", response.Result.Fulfillment.Speech); }
public async Task TestTextRequest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest("Hello"); var response = await dataService.RequestAsync(request); Assert.IsNotNull(response); Assert.AreEqual("greeting", response.Result.Action); Assert.AreEqual("Hi! How are you?", response.Result.Fulfillment.Speech); }
public async Task ContextsTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("weather"); await dataService.ResetContextsAsync(); var aiResponse = await MakeRequestAsync(dataService, aiRequest); var action = aiResponse.Result.Action; Assert.AreEqual("showWeather", action); Assert.IsTrue(aiResponse.Result.Contexts.Any(c => c.Name == "weather")); }
public void TimeParameterTest() { var config = new AIConfiguration("23e7d37f6dd24e4eb7dbbd7491f832cf", // special agent with domains SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("set alarm to ten pm"); var response = MakeRequest(dataService, aiRequest); Assert.AreEqual("domains", response.Result.Source); Assert.AreEqual("clock.alarm_set", response.Result.Action); var stringParameter = response.Result.GetStringParameter("time"); Assert.IsNotNull(stringParameter); }
public void ComplexParameterTest() { var config = new AIConfiguration("23e7d37f6dd24e4eb7dbbd7491f832cf", // special agent with domains SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("Turn off TV at 7pm"); var response = MakeRequest(dataService, aiRequest); Assert.AreEqual("domains", response.Result.Source); Assert.AreEqual("smarthome.appliances_off", response.Result.Action); var actionCondition = response.Result.GetJsonParameter("action_condition"); var timeToken = actionCondition.SelectToken("time"); Assert.IsNotNull(timeToken); }
public async Task ParametersTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest("what is your name"); var response = await MakeRequestAsync(dataService, request); Assert.IsNotNull(response.Result.Parameters); Assert.IsTrue(response.Result.Parameters.Count > 0); Assert.IsTrue(response.Result.Parameters.ContainsKey("my_name")); Assert.IsTrue(response.Result.Parameters.ContainsValue("Sam")); Assert.IsNotNull(response.Result.Contexts); Assert.IsTrue(response.Result.Contexts.Length > 0); var context = response.Result.Contexts[0]; Assert.IsNotNull(context.Parameters); Assert.IsTrue(context.Parameters.ContainsKey("my_name")); Assert.IsTrue(context.Parameters.ContainsValue("Sam")); }
public async Task EntitiesTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("hi nori"); var myDwarfs = new Entity("dwarfs"); myDwarfs.AddEntry(new EntityEntry("Ori", new[] { "ori", "Nori" })); myDwarfs.AddEntry(new EntityEntry("bifur", new[] { "Bofur", "Bombur" })); var extraEntities = new List <Entity> { myDwarfs }; aiRequest.Entities = extraEntities; var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(!string.IsNullOrEmpty(aiResponse.Result.ResolvedQuery)); Assert.AreEqual("say_hi", aiResponse.Result.Action); Assert.AreEqual("hi Bilbo, I am Ori", aiResponse.Result.Fulfillment.Speech); }
public void DifferentAgentsTest() { var query = "I want pizza"; { var dataService = CreateDataService(); var request = new AIRequest(query); var response = dataService.Request(request); Assert.IsNotNull(response.Result); Assert.AreEqual("pizza", response.Result.Action); } { var config = new AIConfiguration(SUBSCRIPTION_KEY, "968235e8e4954cf0bb0dc07736725ecd", SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest(query); var response = dataService.Request(request); Assert.IsNotNull(response.Result); Assert.IsTrue(string.IsNullOrEmpty(response.Result.Action)); } }
public async Task ResetContextsTest() { var config = new AIConfiguration(ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); await dataService.ResetContextsAsync(); { var aiRequest = new AIRequest("what is your name"); var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(aiResponse.Result.Contexts.Any(c => c.Name == "name_question")); var resetSucceed = await dataService.ResetContextsAsync(); Assert.IsTrue(resetSucceed); } { var aiRequest = new AIRequest("hello"); var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsFalse(aiResponse.Result.Contexts.Any(c => c.Name == "name_question")); } }
protected AIService(AIConfiguration config) { this.config = config; dataService = new AIDataService(config); }
private async Task<AIResponse> MakeRequestAsync(AIDataService service, AIRequest request) { var aiResponse = await service.RequestAsync(request); Assert.IsNotNull(aiResponse); Assert.IsFalse(aiResponse.IsError); Assert.IsFalse(string.IsNullOrEmpty(aiResponse.Id)); Assert.IsNotNull(aiResponse.Result); return aiResponse; }
public async Task WrongEntitiesTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("hi nori"); var myDwarfs = new Entity("not_dwarfs"); myDwarfs.AddEntry(new EntityEntry("Ori", new[] { "ori", "Nori" })); myDwarfs.AddEntry(new EntityEntry("bifur", new[] { "Bofur", "Bombur" })); var extraEntities = new List<Entity> { myDwarfs }; aiRequest.Entities = extraEntities; try { var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(false, "Request should throws bad_request exception"); } catch (AIServiceException e) { Assert.IsTrue(true); } }
public async Task ResetContextsTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); await dataService.ResetContextsAsync(); { var aiRequest = new AIRequest("what is your name"); var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(aiResponse.Result.Contexts.Any(c => c.Name == "name_question")); var resetSucceed = await dataService.ResetContextsAsync(); Assert.IsTrue(resetSucceed); } { var aiRequest = new AIRequest("hello"); var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsFalse(aiResponse.Result.Contexts.Any(c => c.Name == "name_question")); } }
public async Task ContextsTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("weather"); await dataService.ResetContextsAsync(); var aiResponse = await MakeRequestAsync(dataService, aiRequest); var action = aiResponse.Result.Action; Assert.AreEqual("showWeather", action); Assert.IsTrue(aiResponse.Result.Contexts.Any(c => c.Name == "weather")); }
public async Task EntitiesTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var aiRequest = new AIRequest("hi nori"); var myDwarfs = new Entity("dwarfs"); myDwarfs.AddEntry(new EntityEntry("Ori", new[] { "ori", "Nori" })); myDwarfs.AddEntry(new EntityEntry("bifur", new[] { "Bofur", "Bombur" })); var extraEntities = new List<Entity> { myDwarfs }; aiRequest.Entities = extraEntities; var aiResponse = await MakeRequestAsync(dataService, aiRequest); Assert.IsTrue(!string.IsNullOrEmpty(aiResponse.Result.ResolvedQuery)); Assert.AreEqual("say_hi", aiResponse.Result.Action); Assert.AreEqual("hi Bilbo, I am Ori", aiResponse.Result.Fulfillment.Speech); }
private void Init(string accessToken = "Paste your default 'Client access token' from api.ai settings here") { messagesFromBot = new List <string>(); config = new AIConfiguration(accessToken, SupportedLanguage.English); dataService = new AIDataService(config); }
public async Task ParametersTest() { var config = new AIConfiguration(SUBSCRIPTION_KEY, ACCESS_TOKEN, SupportedLanguage.English); var dataService = new AIDataService(config); var request = new AIRequest("what is your name"); var response = await MakeRequestAsync(dataService, request); Assert.IsNotNull(response.Result.Parameters); Assert.IsTrue(response.Result.Parameters.Count > 0); Assert.IsTrue(response.Result.Parameters.ContainsKey("my_name")); Assert.IsTrue(response.Result.Parameters.ContainsValue("Sam")); Assert.IsNotNull(response.Result.Contexts); Assert.IsTrue(response.Result.Contexts.Length > 0); var context = response.Result.Contexts[0]; Assert.IsNotNull(context.Parameters); Assert.IsTrue(context.Parameters.ContainsKey("my_name")); Assert.IsTrue(context.Parameters.ContainsValue("Sam")); }