# Руководство по конвертации тестов из JSON в TXT формат ## Обзор изменений В рамках улучшения наглядности тестовых данных все тесты были конвертированы из JSON формата в TXT формат с использованием разделителя. ## Новый формат TXT файлов ### Структура файла Каждый TXT файл содержит два раздела, разделенных константой: ``` prompt ============== expected ``` Где: - `prompt` - текст запроса для модели - `expected` - ожидаемый ответ от модели - `==============` - разделитель (константа `TEST_SEPARATOR`) ### Пример **test1.txt:** ``` Translate the following English text to Russian: 'Hello, how are you?' ============== Привет, как дела? ``` ## Измененные файлы ### 1. Скрипты генерации тестов **Файл:** `scripts/generate_tests.py` **Изменения:** - Теперь генерирует TXT файлы вместо JSON - Использует константу `TEST_SEPARATOR` для разделения prompt и expected - Валидация теперь проверяет TXT файлы на наличие разделителя ### 2. Бенчмарки **Файлы:** - `src/benchmarks/translation.py` - `src/benchmarks/summarization.py` - `src/benchmarks/codegen.py` **Изменения:** - Все бенчмарки теперь читают TXT файлы вместо JSON - Используют константу `TEST_SEPARATOR` для парсинга файлов - Логика загрузки тестов обновлена для работы с TXT форматом ### 3. Базовый класс бенчмарка **Файл:** `src/benchmarks/base.py` **Изменения:** - Добавлена константа `TEST_SEPARATOR` - Обновлены импорты для поддержки нового формата ### 4. Скрипт конвертации **Файл:** `scripts/convert_json_to_txt.py` (новый) **Назначение:** - Конвертирует существующие JSON тесты в новый TXT формат - Сохраняет все тесты с тем же именем, но расширением .txt - Использует константу `TEST_SEPARATOR` для разделения данных ## Как использовать ### 1. Конвертация существующих тестов ```bash python scripts/convert_json_to_txt.py tests/translation python scripts/convert_json_to_txt.py tests/summarization python scripts/convert_json_to_txt.py tests/codegen ``` ### 2. Генерация новых тестов ```bash python scripts/generate_tests.py --count 5 --category translation --model second_constantine/t-lite-it-1.0:7b --ollama-url http://localhost:11434 ``` ### 3. Валидация тестов ```bash python scripts/generate_tests.py --validate tests/translation ``` ### 4. Запуск бенчмарков ```bash python src/main.py -m second_constantine/t-lite-it-1.0:7b -u http://localhost:11434 -b translation ``` ## Преимущества нового формата 1. **Наглядность**: Легче читать и понимать содержимое тестов 2. **Простота редактирования**: Можно редактировать тесты в любом текстовом редакторе 3. **Контроль версий**: Лучше отслеживаются изменения в тестах в системах контроля версий 4. **Универсальность**: Формат более универсальный и понятный ## Технические детали ### Константа TEST_SEPARATOR ```python TEST_SEPARATOR = "\n==============\n" ``` Эта константа используется во всех частях системы для: - Генерации TXT файлов - Парсинга TXT файлов - Валидации тестов ### Импорты Все файлы, использующие `TEST_SEPARATOR`, импортируют его из: - `src/constants.py` (для скриптов) - `constants.py` (для бенчмарков, так как они запускаются из src/) ## Миграция 1. Запустите скрипт конвертации для всех существующих тестов 2. Удалите старые JSON файлы (по желанию) 3. Обновите любые внешние скрипты, которые могут ссылаться на старый формат ## Поддержка При возникновении вопросов или проблем обратитесь к разработчикам проекта.