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

## Поддержка

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