From d8785ada8ab4759ad5f292a92525ad7ac092959e Mon Sep 17 00:00:00 2001 From: second_constantine Date: Thu, 22 Jan 2026 22:26:59 +0300 Subject: [PATCH] feat: add test generation scripts and update documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ca5e13c..0b63d7f 100644 --- a/README.md +++ b/README.md @@ -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 и содержат: +- Таблицы с результатами каждого теста +- Статистику по каждой метрике +- Сводные данные по всем тестам +- Сравнение результатов между разными моделями