private void GetModelsResponse(RESTConnector.Request req, RESTConnector.Response resp) { TranslationModels models = new TranslationModels(); if (resp.Success) { try { fsData data = null; fsResult r = fsJsonParser.Parse(Encoding.UTF8.GetString(resp.Data), out data); if (!r.Succeeded) { throw new WatsonException(r.FormattedMessages); } object obj = models; r = sm_Serializer.TryDeserialize(data, obj.GetType(), ref obj); if (!r.Succeeded) { throw new WatsonException(r.FormattedMessages); } } catch (Exception e) { Log.Error("NLC", "GetModels Exception: {0}", e.ToString()); resp.Success = false; } } if (((GetModelsReq)req).Callback != null) { ((GetModelsReq)req).Callback(resp.Success ? models : null); } }
public IEnumerator TestListModels() { Log.Debug("LanguageTranslatorServiceV3IntegrationTests", "Attempting to ListModels..."); TranslationModels listModelsResponse = null; service.ListModels( callback: (DetailedResponse <TranslationModels> response, IBMError error) => { Log.Debug("LanguageTranslatorServiceV3IntegrationTests", "ListModels result: {0}", response.Response); listModelsResponse = response.Result; Assert.IsNotNull(listModelsResponse); Assert.IsNotNull(listModelsResponse.Models); Assert.IsTrue(listModelsResponse.Models.Count > 0); Assert.IsNull(error); }, source: "en", target: "fr", defaultModels: true ); while (listModelsResponse == null) { yield return(null); } }
/// <summary> /// List models. Lists available translation models. /// </summary> /// <param name="source">Specify a language code to filter results by source language. (optional)</param> /// <param name="target">Specify a language code to filter results by target language. (optional)</param> /// <param name="defaultModels">If the default parameter isn't specified, the service will return all models (default and non-default) for each language pair. To return only default models, set this to `true`. To return only non-default models, set this to `false`. (optional)</param> /// <returns><see cref="TranslationModels" />TranslationModels</returns> public TranslationModels ListModels(string source = null, string target = null, bool?defaultModels = null) { TranslationModels result = null; try { var request = this.Client.WithAuthentication(this.UserName, this.Password) .GetAsync($"{this.Endpoint}/v2/models"); if (!string.IsNullOrEmpty(source)) { request.WithArgument("source", source); } if (!string.IsNullOrEmpty(target)) { request.WithArgument("target", target); } if (defaultModels != null) { request.WithArgument("default", defaultModels); } result = request.As <TranslationModels>().Result; } catch (AggregateException ae) { throw ae.Flatten(); } return(result); }
public IEnumerator TestListModels() { conn = Substitute.For <RESTConnector>(); service.Connector = conn; var translationModelsResponse = new DetailedResponse <TranslationModels>() { Result = new TranslationModels() { Models = new List <TranslationModel>() { new TranslationModel() { ModelId = "ar-en", Source = "ar", Target = "en", BaseModelId = "", Domain = "news", Customizable = true, DefaultModel = true, Owner = "", Name = "" } } } }; conn.Send( Arg.Do <RESTConnector.Request>( req => { if (((RequestObject <TranslationModels>)req).Callback != null) { Assert.IsTrue(conn.URL == "https://gateway.watsonplatform.net/language-translator/api/v3/models"); ((RequestObject <TranslationModels>)req).Callback(translationModelsResponse, null); } } )); TranslationModels listModelsResponse = null; service.ListModels( callback: (DetailedResponse <TranslationModels> response, IBMError error) => { Log.Debug("LanguageTranslatorServiceV3UnitTests", "ListModels result: {0}", response.Result.Models[0].ModelId); listModelsResponse = response.Result; Assert.IsNotNull(listModelsResponse); Assert.IsTrue(listModelsResponse.Models.Count > 0); Assert.IsNull(error); }, source: "en", target: "fr" ); while (listModelsResponse == null) { yield return(null); } }
/// <summary> /// List models. /// /// Lists available translation models. /// </summary> /// <param name="source">Specify a language code to filter results by source language. (optional)</param> /// <param name="target">Specify a language code to filter results by target language. (optional)</param> /// <param name="defaultModels">If the default parameter isn't specified, the service will return all models /// (default and non-default) for each language pair. To return only default models, set this to `true`. To /// return only non-default models, set this to `false`. There is exactly one default model per language pair, /// the IBM provided base model. (optional)</param> /// <param name="customData">Custom data object to pass data including custom request headers.</param> /// <returns><see cref="TranslationModels" />TranslationModels</returns> public TranslationModels ListModels(string source = null, string target = null, bool?defaultModels = null, Dictionary <string, object> customData = null) { if (string.IsNullOrEmpty(VersionDate)) { throw new ArgumentNullException("versionDate cannot be null."); } TranslationModels result = null; try { IClient client = this.Client; if (_tokenManager != null) { client = this.Client.WithAuthentication(_tokenManager.GetToken()); } if (_tokenManager == null) { client = this.Client.WithAuthentication(this.UserName, this.Password); } var restRequest = client.GetAsync($"{this.Endpoint}/v3/models"); restRequest.WithArgument("version", VersionDate); if (!string.IsNullOrEmpty(source)) { restRequest.WithArgument("source", source); } if (!string.IsNullOrEmpty(target)) { restRequest.WithArgument("target", target); } if (defaultModels != null) { restRequest.WithArgument("default", defaultModels); } if (customData != null) { restRequest.WithCustomData(customData); } restRequest.WithHeader("X-IBMCloud-SDK-Analytics", "service_name=language_translator;service_version=v3;operation_id=ListModels"); result = restRequest.As <TranslationModels>().Result; if (result == null) { result = new TranslationModels(); } result.CustomData = restRequest.CustomData; } catch (AggregateException ae) { throw ae.Flatten(); } return(result); }
private void OnGetModels(TranslationModels models) { Test(models != null); if (models != null) { foreach (var model in models.models) { Log.Status("TestTranslate", "ModelID: {0}, Source: {1}, Target: {2}, Domain: {3}", model.model_id, model.source, model.target, model.domain); } } m_GetModelsTested = true; }
private void OnGetModels(TranslationModels models) { Log.Status("TranslatorWidget", "OnGetModels, Count: {0}", models.models.Length); if (models != null && models.models.Length > 0) { m_LanguageToTranslate.Clear(); List <string> listLanguages = new List <string>(); //From - To language list to use in translation //Adding initial language as detected! listLanguages.Add(m_DetectLanguageID); m_LanguageToTranslate.Add(m_DetectLanguageID, new List <string>()); foreach (var model in models.models) { if (string.Equals(model.domain, m_DefaultDomainToUse)) { if (m_LanguageToTranslate.ContainsKey(model.source)) { if (!m_LanguageToTranslate[model.source].Contains(model.target)) { m_LanguageToTranslate[model.source].Add(model.target); } } else { m_LanguageToTranslate.Add(model.source, new List <string>()); m_LanguageToTranslate[model.source].Add(model.target); } if (!listLanguages.Contains(model.source)) { listLanguages.Add(model.source); } if (!listLanguages.Contains(model.target)) { listLanguages.Add(model.target); } if (!m_LanguageToTranslate[m_DetectLanguageID].Contains(model.target)) { m_LanguageToTranslate[m_DetectLanguageID].Add(model.target); } } } m_Languages = listLanguages.ToArray(); ResetSourceLanguageDropDown(); ResetVoiceForTargetLanguage(); } }
/// <summary> /// List models. Lists available translation models. /// </summary> /// <param name="source">Specify a language code to filter results by source language. (optional)</param> /// <param name="target">Specify a language code to filter results by target language. (optional)</param> /// <param name="defaultModels">If the default parameter isn't specified, the service will return all models (default and non-default) for each language pair. To return only default models, set this to `true`. To return only non-default models, set this to `false`. (optional)</param> /// <param name="customData">Custom data object to pass data including custom request headers.</param> /// <returns><see cref="TranslationModels" />TranslationModels</returns> public TranslationModels ListModels(string source = null, string target = null, bool?defaultModels = null, Dictionary <string, object> customData = null) { TranslationModels result = null; try { IClient client; if (_tokenManager == null) { client = this.Client.WithAuthentication(this.UserName, this.Password); } else { client = this.Client.WithAuthentication(_tokenManager.GetToken()); } var restRequest = client.GetAsync($"{this.Endpoint}/v2/models"); if (!string.IsNullOrEmpty(source)) { restRequest.WithArgument("source", source); } if (!string.IsNullOrEmpty(target)) { restRequest.WithArgument("target", target); } if (defaultModels != null) { restRequest.WithArgument("default", defaultModels); } if (customData != null) { restRequest.WithCustomData(customData); } result = restRequest.As <TranslationModels>().Result; if (result == null) { result = new TranslationModels(); } result.CustomData = restRequest.CustomData; } catch (AggregateException ae) { throw ae.Flatten(); } return(result); }
public void ListModels_Success() { IClient client = this.CreateClient(); IRequest request = Substitute.For <IRequest>(); client.GetAsync(Arg.Any <string>()) .Returns(request); TranslationModels response = new TranslationModels() { Models = new List <TranslationModel>() { new TranslationModel() { ModelId = "ar-en", Source = "ar", Target = "en", BaseModelId = "", Domain = "news", Customizable = true, DefaultModel = true, Owner = "", Status = TranslationModel.StatusEnum.AVAILABLE, Name = "" } } }; request.WithArgument(Arg.Any <string>(), Arg.Any <string>()) .Returns(request); request.As <TranslationModels>() .Returns(Task.FromResult(response)); LanguageTranslatorService service = new LanguageTranslatorService(client); service.VersionDate = "versionDate"; var translationModels = service.ListModels("ar", "en"); Assert.IsNotNull(translationModels); client.Received().GetAsync(Arg.Any <string>()); Assert.IsTrue(translationModels.Models.Count > 0); }
private IEnumerator ExampleListModels() { TranslationModels listModelsResponse = null; service.ListModels( callback: (DetailedResponse <TranslationModels> response, IBMError error) => { Log.Debug("LanguageTranslatorServiceV3", "ListModels result: {0}", response.Response); listModelsResponse = response.Result; }, source: "en", target: "fr" ); while (listModelsResponse == null) { yield return(null); } }
public TranslationModels ListModels(bool isDefault = true, string source = null, string target = null) { TranslationModels result = null; try { result = this.Client.WithAuthentication(this.UserName, this.Password) .GetAsync($"{this.Endpoint}{PATH_LIST_MODELS}") .WithArgument("source", source) .WithArgument("target", target) .WithArgument("default", isDefault.ToString()) .As <TranslationModels>() .Result; } catch (AggregateException ae) { throw ae.Flatten(); } return(result); }
private void OnGetModels(TranslationModels models, Dictionary <string, object> customData) { Log.Debug("ExampleLanguageTranslator.OnGetModels()", "Language Translator - Get models response: {0}", customData["json"].ToString()); _getModelsTested = true; }
private void OnGetModels(TranslationModels models, string customData) { Log.Debug("TestLanguageTranslator", "Language Translator - Get models response: {0}", customData); Test(models != null); _getModelsTested = true; }