private string AnalysisResponseToString(ReportDataLine reportDataLine, bool writeRawContent) { var intention = reportDataLine.Intent; var entities = reportDataLine.Entities; var rawContent = writeRawContent ? reportDataLine.AnalysisResponse.Intentions.ToJson() : string.Empty; return($"{reportDataLine.Id}\t{reportDataLine.Input.Input}\t{intention}\t{reportDataLine.Confidence:N2}\t{entities}\t\"{reportDataLine.Answer}\"\t{rawContent}"); }
private async Task BuildResult(DataBlock dataBlock) { lock (_locker) { _count++; if (_count % 100 == 0) { _logger.LogDebug($"{_count}/{_total}"); } } try { var input = dataBlock.Input; var analysis = dataBlock.NLPAnalysisResponse; var content = dataBlock.ContentFromProvider; if (analysis == null) { return; } var resultData = new ReportDataLine { Id = dataBlock.Id, Input = input, Intent = analysis.Intentions?[0].Id, Confidence = analysis.Intentions?[0].Score, Entities = analysis.Entities?.ToList().ToReportString(), AnalysisResponse = dataBlock.NLPAnalysisResponse }; if (content != null) { resultData.Answer = ExtractAnswer(content); } var report = new Report { ReportDataLines = new List <ReportDataLine> { resultData }, FullReportFileName = dataBlock.ReportOutputFile, WriteRawContent = dataBlock.ShouldWriteRawContent }; await _fileService.WriteAnalyseReportAsync(report, true); _logger.LogTrace($"\"{resultData.Input}\"\t{resultData.Intent}:{resultData.Confidence:P}\t{resultData.Entities}\t{CropText(resultData.Answer, 50)}"); } catch (Exception ex) { _logger.LogError(ex, $"Unexpected error BuildResult for {dataBlock}"); throw ex; } }