Itinai.com it company office background blured photography by 9691e87f f228 4a59 b0d8 fbfbf8ecaad9 3

Как избавиться от плохих подсказок: оптимизация с GEPA и валидацией

Itinai.com it company office background blured photography by 9691e87f f228 4a59 b0d8 fbfbf8ecaad9 3

Зачем нужен генератор случайных задач?

Если вы когда‑нибудь задавали ученикам или студентам простые арифметические задачи, вы знаете, как быстро они начинают повторяться. Случайный генератор make_problems позволяет получать новые вариации задач за секунды, экономя время на подготовку материалов.

Как работает функция make_problems?

Функция принимает два параметра:

  • n — количество задач, которые нужно сгенерировать.
  • seed (по умолчанию 0) — стартовое значение для генератора случайных чисел, обеспечивающее воспроизводимость.

Внутри используется объект random.Random, а не глобальная функция random. Это хорошая практика: вы контролируете генерацию случайных чисел и не влияете на остальной код.

Разбор четырёх типовых шаблонов

Каждая задача выбирается случайно из списка шаблонов:

  • discount — расчёт цены со скидкой.
  • travel — суммарный путь автомобиля.
  • wallet — остаток денег после покупок.
  • chain — простая последовательность арифметических операций.

Для каждого шаблона задаются диапазоны параметров, например, цена единицы товара может быть 40, 60, 80 или 120 рублей, а процент скидки — 10, 20, 25 или 50 %.

Пример работы кода

Ниже показан минимальный пример, который генерирует 12 задач для обучения и 6 задач для проверки:

all_problems = make_problems(18, seed=42)
random.Random(1).shuffle(all_problems)
trainset = all_problems[:12]
valset   = all_problems[12:]
print(f"Dataset: {len(trainset)} train / {len(valset)} val problems")

Такой подход удобно использовать в автоматизированных системах проверки или в Jupyter‑ноутбуках.

Как адаптировать под свои нужды

  • Добавьте новые типы задач, просто расширив ветку elif.
  • Увеличьте диапазоны параметров, чтобы получать более разнообразные задачи.
  • Если нужен вывод в формате JSON, замените out.append({...}) на json.dumps(...).
  • Для интеграции в веб‑приложение используйте Flask/Django и возвращайте trainset как API‑ответ.

Где взять исходный код

Полный код функции и пример использования размещён на GitHub: github.com/your-repo/random-math-generator. Пользуйтесь, модифицируйте и делитесь!

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн