Files
marketing-parser/fix.md
T
2025-12-10 19:05:55 +05:00

3.4 KiB
Raw Blame History

Я внимательно изучил поле 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.

Что произойдет после этого исправления:

  1. Backend сгенерирует Markdown с JSON-блоками.
  2. Этот Markdown сохранится в базу данных как fullAnalysis.
  3. Фронтенд получит JSON, где внутри поля report.fullAnalysis будут блоки кода ```json:seasonality....
  4. Твой кастомный рендерер на фронтенде (о котором я писал выше) увидит эти блоки и нарисует графики.