private async Task <List <DataBlock> > GetInputList( InputType inputType, string inputSource, IBlipAIClient client, IContentManagerApiClient contentClient, string reportOutput, List <Intention> intentions, bool doContentCheck, bool rawContent) { switch (inputType) { case InputType.Phrase: return(new List <DataBlock> { DataBlock.GetInstance(1, InputWithTags.FromText(inputSource), client, contentClient, reportOutput, doContentCheck, rawContent, intentions) }); case InputType.File: var inputListAsString = await _fileService.GetInputsToAnalyseAsync(inputSource); return(inputListAsString .Select((input, i) => DataBlock.GetInstance(i + 1, input, client, contentClient, reportOutput, doContentCheck, rawContent, intentions)) .ToList()); case InputType.Bot: var botSource = inputSource.Replace(BOT_KEY_PREFIX, "").Trim(); var localClient = _blipClientFactory.GetInstanceForAI(botSource); _logger.LogDebug("\tCarregando intenções do bot fonte..."); var allIntents = await localClient.GetAllIntentsAsync(); var questionListAsString = new List <string>(); foreach (var intent in allIntents) { questionListAsString.AddRange(intent.Questions.Select(q => q.Text)); } _logger.LogDebug("\tIntenções carregadas!"); return(questionListAsString .Select((input, i) => DataBlock.GetInstance(i + 1, InputWithTags.FromText(input), client, contentClient, reportOutput, doContentCheck, rawContent, intentions)) .ToList()); default: throw new ArgumentException($"Unexpected value {inputType}.", "inputType"); } }
public static DataBlock GetInstance(int id, InputWithTags input, IBlipAIClient aiClient, IContentManagerApiClient contentClient, string reportOutput, bool doCheck, bool rawContent, List <Intention> intents) { var instance = GetInstance(id, input, aiClient, contentClient, reportOutput); instance.DoContentCheck = doCheck; instance.ShouldWriteRawContent = rawContent; instance.AllIntents = intents; return(instance); }
public static DataBlock GetInstance(int id, InputWithTags input, IBlipAIClient aiClient, IContentManagerApiClient contentClient, string reportOutput) { return(new DataBlock { Id = id, Input = input, AIClient = aiClient, ReportOutputFile = reportOutput, ContentClient = contentClient }); }