From 6268304bd8fdba484514e28e8b80e0742ef710b9 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 7 Oct 2025 16:32:17 +0500 Subject: [PATCH] . --- .../parser/controller/ReportController.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/kz/konturai/parser/controller/ReportController.java b/src/main/java/kz/konturai/parser/controller/ReportController.java index 2b901dd..5c451bc 100644 --- a/src/main/java/kz/konturai/parser/controller/ReportController.java +++ b/src/main/java/kz/konturai/parser/controller/ReportController.java @@ -122,8 +122,33 @@ public class ReportController { .map(tuple -> { DeepResearchResponse researchResponse = (DeepResearchResponse) tuple[0]; FinalReportPayload payload = (FinalReportPayload) tuple[1]; + // --- НОВАЯ ЛОГИКА ЗДЕСЬ --- + StringBuilder finalMarkdown = new StringBuilder(); + + // 1. Добавляем основной синтезированный отчёт от AI + if (payload.getMarkdownContent() != null) { + finalMarkdown.append(payload.getMarkdownContent()); + } + + // 2. Добавляем разделитель и новый раздел для "сырых" данных + finalMarkdown.append("\n\n---\n\n"); + finalMarkdown.append("## Приложение: Исходные тезисы (Learnings)\n\n"); + + // 3. Добавляем сами learnings в виде списка + if (researchResponse.getLearnings() != null + && !researchResponse.getLearnings().isEmpty()) { + for (String learning : researchResponse.getLearnings()) { + finalMarkdown.append("- ").append(learning).append("\n"); + } + } else { + finalMarkdown.append("Исходные тезисы не были найдены.\n"); + } + // --- КОНЕЦ НОВОЙ ЛОГИКИ --- + + // Теперь в PDF передаётся ОБЪЕДИНЕННЫЙ текст byte[] pdfBytes = researchPdfService.generatePdfReport(request.getQuery(), - payload.getMarkdownContent(), researchResponse.getVisitedUrls(), + finalMarkdown.toString(), + researchResponse.getVisitedUrls(), payload.getChartImages()); String filename = "research_report_" + System.currentTimeMillis() + ".pdf"; saveResearchReportToHistory(request, filename, pdfBytes, researchResponse);