- Added pymongo==3.13.0 to requirements.txt for MongoDB connectivity - Implemented generate_summarization_from_mongo.py script to generate summarization tests from MongoDB - Updated run.sh to support 'gen-mongo' command for MongoDB test generation - Enhanced scripts/README.md with documentation for new MongoDB functionality - Improved help text in run.sh to clarify available commands and usage examples ``` This commit adds MongoDB integration for test generation and updates the documentation and scripts accordingly.
4.9 KiB
4.9 KiB
Руководство по конвертации тестов из 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.pysrc/benchmarks/summarization.pysrc/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. Конвертация существующих тестов
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. Генерация новых тестов
python scripts/generate_tests.py --count 5 --category translation --model second_constantine/t-lite-it-1.0:7b --ollama-url http://localhost:11434
3. Валидация тестов
python scripts/generate_tests.py --validate tests/translation
4. Запуск бенчмарков
python src/main.py -m second_constantine/t-lite-it-1.0:7b -u http://localhost:11434 -b translation
Преимущества нового формата
- Наглядность: Легче читать и понимать содержимое тестов
- Простота редактирования: Можно редактировать тесты в любом текстовом редакторе
- Контроль версий: Лучше отслеживаются изменения в тестах в системах контроля версий
- Универсальность: Формат более универсальный и понятный
Технические детали
Константа TEST_SEPARATOR
TEST_SEPARATOR = "\n==============\n"
Эта константа используется во всех частях системы для:
- Генерации TXT файлов
- Парсинга TXT файлов
- Валидации тестов
Импорты
Все файлы, использующие TEST_SEPARATOR, импортируют его из:
src/constants.py(для скриптов)constants.py(для бенчмарков, так как они запускаются из src/)
Миграция
- Запустите скрипт конвертации для всех существующих тестов
- Удалите старые JSON файлы (по желанию)
- Обновите любые внешние скрипты, которые могут ссылаться на старый формат
Поддержка
При возникновении вопросов или проблем обратитесь к разработчикам проекта.