# Скрипты для генерации тестов

Эта директория содержит скрипты для генерации тестовых данных для AI бенчмарка.

## Доступные скрипты

### 1. `generate_tests.py`

Скрипт для генерации тестовых данных через LLM (Ollama).

**Функциональность:**
- Генерация тестов для переводов (translation)
- Генерация тестов для пересказов (summarization)
- Генерация тестов для генерации кода (codegen)
- Валидация generated тестов

**Использование:**
```bash
python scripts/generate_tests.py --count 2 --category translation --model second_constantine/t-lite-it-1.0:7b --ollama-url http://10.0.0.4:11434
```

**Параметры:**
- `--count`: Количество тестов для генерации (по умолчанию: 1)
- `--category`: Категория тестов (translation, summarization, codegen, или all) (по умолчанию: all)
- `--model`: Название модели для генерации тестов (обязательный параметр)
- `--ollama-url`: URL подключения к Ollama серверу (обязательный параметр)
- `--validate`: Валидировать тесты в указанной директории

### 2. `generate_summarization_from_mongo.py`

Скрипт для генерации тестов пересказов из MongoDB.

**Функциональность:**
- Извлекает текст статьи из коллекции `rssNotification` (поле `.meta.topicContent`)
- Генерирует тестовые данные в формате TXT для бенчмарка AI
- Валидирует generated тесты
- Поддерживает обработку как одной записи, так и нескольких записей из файла

**Использование:**
```bash
# Для обработки одной записи
python scripts/generate_summarization_from_mongo.py --record-id 507f1f77bcf86cd799439011

# Для обработки нескольких записей из файла
python scripts/generate_summarization_from_mongo.py --id-file ids.txt
```

**Параметры:**
- `--record-id`: ID записи в MongoDB (для обработки одной записи)
- `--id-file`: Файл с ID записей (по одной на строку, для обработки нескольких записей)
  * Примечание: Укажите либо `--record-id`, либо `--id-file`, но не оба одновременно

**Требования:**
- Доступ к MongoDB кластеру (10.0.0.3, 10.0.0.4, 10.0.0.5)
- Установленный пакет `pymongo` (автоматически устанавливается при первом запуске)

**Формат generated тестов:**
```
Summarize the following text in 1-2 sentences: 'Текст статьи из MongoDB'
Ожидаемый пересказ (если доступен)
```

**Примечание:** Тесты генерируются в формате TXT с разделителем `==============`. Поле "expected" может быть пустым, если генерация пересказа не удалась.

**Обработка файла с ID:**
- Скрипт читает ID из файла построчно
- Обрабатывает каждую запись по очереди
- Выводит прогресс и статистику по обработке
- Продолжает обработку остальных записей даже при ошибках отдельных записей
- Выводит подробные логи об ошибках для каждой неудачной записи

## Установка зависимостей

Для работы скриптов требуются следующие зависимости:

```bash
pip install pymongo
```

Все зависимости указаны в файле `requirements.txt` в корне проекта.
