3.4 KiB
3.4 KiB
Я внимательно изучил поле fullAnalysis в присланном JSON. Там всё ещё обычный текст и списки, а не Markdown-блоки с JSON.
Вот пример того, что мы видим сейчас (в fullAnalysis):
## VIII. Воронка спроса
Воронка продаж показывает следующие этапы:
- Охват: 1000
- Вовлечённость: 300 (30%)
...
А должны были увидеть (согласно плану):
## VIII. Воронка спроса
```json:conversionFunnel
[
{ "stage": "Охват", "value": 1000, "conversion": 0 },
...
]
```
---
### Почему так произошло?
Проблема в архитектуре метода `processAnalysis` в вашем Java-коде.
1. Вы изменили метод `buildMarkdownFromReport`, и он, скорее всего, работает правильно и генерирует строку с JSON-блоками.
2. **НО** эта строка (`markdownContent`) используется **только для генерации PDF**.
3. В базу данных и во фронтенд (в поле `reportData`) сохраняется старая версия текста, сгенерированная AI (Промпт №2), которая не знает о нашей новой логике встраивания графиков.
### Как исправить?
Нам нужно сказать Cursor'у, чтобы он **перезаписал** поле `fullAnalysis` внутри `reportData` тем Markdown-контентом, который генерирует метод `buildMarkdownFromReport`.
**Промпт для Cursor (отправь это, чтобы починить):**
```text
Я не вижу изменений в JSON-ответе для фронтенда. Проблема в методе `processAnalysis` класса `MarketingAnalysisService`.
Сейчас переменная `markdownContent` (результат метода `buildMarkdownFromReport`) используется только для генерации PDF.
А в `analysis.setReportData(reportData)` попадает старый текст, сгенерированный AI.
Пожалуйста, сделай следующее изменение в методе `processAnalysis`:
1. После вызова:
String markdownContent = buildMarkdownFromReport(reportData, request);
2. Добавь строку, которая обновляет reportData:
reportData.put("fullAnalysis", markdownContent);
Это нужно, чтобы фронтенд получал именно сформированный Markdown с JSON-блоками (charts), а не просто текст от AI.
Что произойдет после этого исправления:
- Backend сгенерирует Markdown с JSON-блоками.
- Этот Markdown сохранится в базу данных как
fullAnalysis. - Фронтенд получит JSON, где внутри поля
report.fullAnalysisбудут блоки кода```json:seasonality.... - Твой кастомный рендерер на фронтенде (о котором я писал выше) увидит эти блоки и нарисует графики.