- 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.
136 lines
4.9 KiB
Markdown
136 lines
4.9 KiB
Markdown
# Руководство по конвертации тестов из 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. Обновите любые внешние скрипты, которые могут ссылаться на старый формат
|
||
|
||
## Поддержка
|
||
|
||
При возникновении вопросов или проблем обратитесь к разработчикам проекта.
|