ai-benchmark/CONVERSION_GUIDE.md
second_constantine 8ef3a16e3a feat: add MongoDB test generation and update dependencies
- 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.
2026-01-22 20:11:52 +03:00

4.9 KiB
Raw Blame History

Руководство по конвертации тестов из 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. Конвертация существующих тестов

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

Преимущества нового формата

  1. Наглядность: Легче читать и понимать содержимое тестов
  2. Простота редактирования: Можно редактировать тесты в любом текстовом редакторе
  3. Контроль версий: Лучше отслеживаются изменения в тестах в системах контроля версий
  4. Универсальность: Формат более универсальный и понятный

Технические детали

Константа TEST_SEPARATOR

TEST_SEPARATOR = "\n==============\n"

Эта константа используется во всех частях системы для:

  • Генерации TXT файлов
  • Парсинга TXT файлов
  • Валидации тестов

Импорты

Все файлы, использующие TEST_SEPARATOR, импортируют его из:

  • src/constants.py (для скриптов)
  • constants.py (для бенчмарков, так как они запускаются из src/)

Миграция

  1. Запустите скрипт конвертации для всех существующих тестов
  2. Удалите старые JSON файлы (по желанию)
  3. Обновите любые внешние скрипты, которые могут ссылаться на старый формат

Поддержка

При возникновении вопросов или проблем обратитесь к разработчикам проекта.