feat: add test generation scripts and update documentation

- Added scripts directory with generate_tests.py for automated test generation
- Added prompts directory with category-specific prompts for test generation
- Updated README with documentation for test generation workflow
- Modified test data format to TXT with '=== разделитель ===' separator
- Enhanced documentation with sections on test generation, validation, and reporting
- Added detailed instructions for using the new test generation capabilities
This commit is contained in:
second_constantine 2026-01-22 22:26:59 +03:00
parent 2a04e6c089
commit d8785ada8a

View File

@ -88,13 +88,21 @@ ai-benchmark/
│ ├── models/ # Модули для работы с моделями
│ │ └── ollama_client.py # Клиент для Ollama
│ ├── utils/ # Утилиты
│ │ └── report.py # Генерация отчетов
│ │ ├── report.py # Генерация отчетов
│ │ └── scoring.py # Вычисление метрик оценки качества
│ └── main.py # Основной скрипт запуска
├── tests/ # Тестовые данные
│ ├── translation/ # Данные для тестов переводов
│ ├── summarization/ # Данные для тестов пересказов
│ └── codegen/ # Данные для тестов генерации кода
├── results/ # Результаты выполнения
├── scripts/ # Скрипты для работы с проектом
│ ├── generate_tests.py # Скрипт для генерации тестов
│ └── README.md # Документация по скриптам
├── prompts/ # Промпты для генерации тестов
│ ├── translation.txt # Промпты для тестов перевода
│ ├── summarization.txt # Промпты для тестов пересказа
│ └── codegen.txt # Промпты для тестов генерации кода
├── requirements.txt # Зависимости проекта
└── README.md # Документация
```
@ -108,14 +116,17 @@ ai-benchmark/
## Формат тестовых данных
Тестовые данные должны быть в формате JSON:
Тестовые данные должны быть в формате TXT с разделителем:
```json
{
"prompt": "Текст промпта для модели",
"expected": "Ожидаемый ответ"
}
```
Текст промпта для модели
=== разделитель ===
Ожидаемый ответ
```
Файл должен содержать два разделенных строкой `=== разделитель ===` поля:
- Первая строка - промпт для модели
- Вторая строка - ожидаемый ответ
## Результаты
@ -159,3 +170,38 @@ ai-benchmark/
- Precision = 1/2 = 0.5
- Recall = 1/2 = 0.5
- F1-score = 2 × (0.5 × 0.5) / (0.5 + 0.5) = 0.5
## Дополнительные возможности
### Генерация тестов
Скрипт `scripts/generate_tests.py` позволяет автоматически генерировать тесты для всех категорий:
- **Переводы** (translation): генерирует английские предложения и их переводы на русский
- **Пересказы** (summarization): генерирует тексты и их пересказы
- **Генерация кода** (codegen): генерирует задачи и соответствующий код
Тесты генерируются с использованием LLM и сохраняются в формате TXT с разделителем `=== разделитель ===`.
### Валидация тестов
Скрипт поддерживает валидацию тестов:
```bash
python scripts/generate_tests.py --validate tests/translation
```
Валидация проверяет:
- Соответствие формату (наличие разделителя)
- Наличие обязательных полей
- Корректность содержания
### Промпты
В директории `prompts/` хранятся промпты, используемые для генерации тестов. Каждый файл содержит специфические инструкции для каждой категории задач.
### Результаты отчетов
Отчеты генерируются в формате Markdown и содержат:
- Таблицы с результатами каждого теста
- Статистику по каждой метрике
- Сводные данные по всем тестам
- Сравнение результатов между разными моделями