120 lines
4.2 KiB
Markdown
120 lines
4.2 KiB
Markdown
# Резюме реализации AI-агента для генерации PDF-отчётов
|
||
|
||
## Выполненные задачи
|
||
|
||
### ✅ 1. Создание DTO классов
|
||
|
||
- `DeepResearchRequest.java` - для запросов к deep-research API
|
||
- `DeepResearchResponse.java` - для ответов от deep-research API
|
||
- `ResearchReportRequest.java` - для валидации входящих запросов
|
||
|
||
### ✅ 2. Реализация HTTP клиента
|
||
|
||
- `DeepResearchService.java` - сервис для взаимодействия с deep-research API
|
||
- Поддержка синхронных и асинхронных вызовов
|
||
- Обработка ошибок и таймаутов
|
||
|
||
### ✅ 3. Генерация PDF отчётов
|
||
|
||
- `ResearchPdfService.java` - сервис для создания PDF с профессиональным оформлением
|
||
- Титульная страница с названием исследования
|
||
- Автоматически генерируемое содержание
|
||
- Структурированный основной текст
|
||
- Список источников из visitedUrls
|
||
|
||
### ✅ 4. Модификация ReportController
|
||
|
||
- Добавлен новый эндпоинт `POST /api/parser/report`
|
||
- Валидация входных параметров
|
||
- Обработка ошибок (400, 500, 504)
|
||
- Сохранение отчётов в историю и MinIO
|
||
|
||
### ✅ 5. Обновление конфигурации
|
||
|
||
- Добавлены настройки deep-research API в `application.properties`
|
||
- Добавлена зависимость Jackson в `pom.xml`
|
||
- Настроены таймауты и URL для внешнего API
|
||
|
||
## API Спецификация
|
||
|
||
### Эндпоинт
|
||
|
||
```
|
||
POST /api/parser/report
|
||
```
|
||
|
||
### Параметры запроса
|
||
|
||
```json
|
||
{
|
||
"query": "string (обязательный)",
|
||
"lang": "string (по умолчанию: ru)",
|
||
"depth": "integer 1-5 (по умолчанию: 3)",
|
||
"breadth": "integer 2-10 (по умолчанию: 5)",
|
||
"report_type": "string (по умолчанию: report)"
|
||
}
|
||
```
|
||
|
||
### Ответы
|
||
|
||
- **200 OK**: PDF файл с отчётом
|
||
- **400 Bad Request**: Некорректные параметры
|
||
- **500 Internal Server Error**: Внутренняя ошибка
|
||
- **504 Gateway Timeout**: Таймаут внешнего API
|
||
|
||
## Структура PDF-отчёта
|
||
|
||
1. **Титульная страница**
|
||
|
||
- Название исследования
|
||
- Дата создания
|
||
- Подзаголовок
|
||
|
||
2. **Содержание**
|
||
|
||
- Автоматически генерируемое оглавление
|
||
|
||
3. **Основная часть**
|
||
|
||
- Введение
|
||
- Текст отчёта от deep-research API
|
||
- Заключение
|
||
|
||
4. **Источники**
|
||
- Список URL из visitedUrls
|
||
|
||
## Конфигурация
|
||
|
||
```properties
|
||
# Deep Research API Configuration
|
||
deep-research.api.url=http://185.35.223.45:3051
|
||
deep-research.api.timeout=300000
|
||
```
|
||
|
||
## Тестирование
|
||
|
||
Создан тестовый скрипт `test_research_api.sh` для проверки функциональности.
|
||
|
||
## Документация
|
||
|
||
Создано подробное руководство `RESEARCH_API_GUIDE.md` с примерами использования.
|
||
|
||
## Соответствие техническому заданию
|
||
|
||
✅ Все требования из ТЗ выполнены:
|
||
|
||
- Модифицирован эндпоинт `/api/parser/report`
|
||
- Реализована интеграция с deep-research API
|
||
- Добавлена генерация PDF с требуемой структурой
|
||
- Настроена обработка ошибок
|
||
- Добавлена валидация параметров
|
||
- Реализовано сохранение в историю отчётов
|
||
|
||
## Готовность к использованию
|
||
|
||
Система готова к тестированию и использованию. Для запуска необходимо:
|
||
|
||
1. Убедиться, что deep-research API доступен
|
||
2. Запустить приложение
|
||
3. Отправить POST запрос на `/api/parser/report`
|