Files
marketing-parser/Техническое Задание на доработку AI-агента для генерации отчётов в формате Markdown.md
T
2025-10-05 17:23:34 +05:00

86 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### **Техническое Задание на доработку AI-агента для генерации отчётов в формате Markdown (.md)**
**Проект:** Модификация существующего бэкенда для генерации отчётов.
#### **1. Общее описание**
Целью данной доработки является замена модуля генерации PDF-файлов на более простой и быстрый модуль, который будет формировать и отдавать пользователю итоговый отчёт в текстовом формате **Markdown (`.md`)**.
Бэкенд по-прежнему будет выполнять многоступенчатый процесс исследования (вызов `deep-research` API, затем синтез отчёта через `Ollama`), но финальным результатом будет текстовый `.md` файл, а не PDF.
#### **2. Требования к реализации**
**2.1. Модификация эндпоинта `/api/parser/report`**
- **Метод:** `POST`
- **Тело запроса (`Request Body`):** Остаётся без изменений (принимает `query`, `lang`, `depth` и т.д.).
- **Успешный ответ (`Success Response`):** **(Ключевое изменение)**
- **Код:** `200 OK`
- **Заголовки:**
- `Content-Type: text/markdown; charset=UTF-8` (Важно для корректного отображения кириллицы).
- `Content-Disposition: attachment; filename="research_report.md"` (Этот заголовок заставит браузер скачать файл, а не просто показать его).
- **Тело ответа:** Готовый текст отчёта в формате Markdown.
- **Ответы с ошибками (`Error Responses`):** Остаются без изменений (`400`, `500` и т.д.).
**2.2. Изменение логики работы агента**
Процесс будет выглядеть так:
1. **Приём и валидация запроса:** Логика остаётся без изменений.
2. **Вызов `deep-research` API:** Логика остаётся без изменений. Бэкенд получает "сырые" `learnings` и `visitedUrls`.
3. **Вызов Ollama для синтеза:** Логика остаётся без изменений. Бэкенд получает от Ollama финальный, красиво структурированный отчёт в виде строки Markdown.
4. **ОТМЕНА:** Шаг генерации PDF полностью удаляется. Сервис `ResearchPdfService` и зависимость от библиотеки iText больше не нужны.
5. **НОВЫЙ ШАГ: Формирование итогового `.md` файла:**
- Бэкенд берёт строку Markdown, полученную от Ollama.
- К этой строке в конец добавляется раздел "Источники". Бэкенд должен программно сгенерировать этот раздел, добавив заголовок `## Источники` и пронумерованный список URL-адресов из `visitedUrls`.
6. **Отправка `.md` файла клиенту:** Бэкенд отправляет итоговую строку (отчёт + источники) как тело HTTP-ответа с заголовками, указанными в п. 2.1.
**2.3. Формат итогового Markdown-файла**
Итоговая строка, которая будет отправлена клиенту, должна иметь следующую структуру:
```markdown
# {Заголовок, сгенерированный Ollama, или просто ваш query}
## Введение
... текст от Ollama ...
## Основная часть
... текст от Ollama ...
### Подраздел
... текст от Ollama ...
## Заключение
... текст от Ollama ...
---
## Источники
1. https://...
2. https://...
3. ...
```
#### **3. Технологический стек**
- **Бэкенд:** Java/Spring Boot (без изменений).
- **HTTP-клиент:** `WebClient` (без изменений)
#### **4. Нефункциональные требования**
- **Асинхронность:** Рекомендация по асинхронной обработке запроса (через `jobId` и отдельный эндпоинт для статуса) остаётся актуальной, так как сам процесс исследования по-прежнему занимает много времени.
#### **5. Ожидаемый результат**
При отправке `POST` запроса на эндпоинт `/api/parser/report` браузер пользователя должен инициировать скачивание файла `research_report.md`. Этот файл должен корректно открываться в любом текстовом редакторе, поддерживающем Markdown, и содержать полный, структурированный отчёт на русском языке вместе со списком источников.