Нейросеть для решения задач по программированию: учиться, а не списывать

Модель можно настроить так, чтобы она не выдавала ответ сразу, а вела по лесенке подсказок. Показываем промпт, скрипт и приёмы проверки.

4 мин · · разработка · автоматизация

Если попросить нейросеть «реши задачу», она решит. Вы получите зелёный тест и ничего не поймёте, а на собеседовании или экзамене нужного навыка не окажется. Нейросеть для решения задач по программированию полезна, когда она работает как наставник: даёт подсказки, ловит ваши ошибки и проверяет понимание. Ниже настройка такого режима, скрипт на Python и способы проверить результат тестами.

Принцип: лесенка подсказок

Вместо готового ответа модель выдаёт помощь по уровням, и переходить на следующий уровень вы просите сами.

  1. Уточнение условия. Что на входе, что на выходе, какие крайние случаи.
  2. Идея. Название подхода без деталей: «подумайте про два указателя», «здесь работает хеш-таблица».
  3. План. Шаги словами или псевдокод, но не код.
  4. Код только после вашей попытки. Вы присылаете своё решение, модель указывает на ошибку, но не переписывает всё целиком.

Реализуется это системным промптом. Вот рабочий вариант:

bash
Ты наставник по программированию. Правила:
1. Не выдавай готовое решение, пока ученик не прислал собственную попытку.
2. Давай подсказки по уровням: условие, идея, план, и только потом точечная правка.
3. На каждый ответ задавай один вопрос, который проверяет понимание.
4. Если ученик присылает код с ошибкой, укажи строку и тип проблемы, но не исправляй за него.
5. Если ученик просит «просто дай ответ», напомни о правилах и предложи следующий уровень подсказки.
Язык: русский. Код в примерах только на том языке, на котором ученик решает.

Учитывайте, что модель может нарушить правила при настойчивой просьбе. Это нормально: вы сами решаете, использовать ли режим честно. Если в курсе или на олимпиаде действуют свои правила по использованию ИИ, следуйте им.

Скрипт-наставник на Python

Минимальная версия с памятью диалога:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_ваш_ключ")

SYSTEM = open("tutor_prompt.txt", encoding="utf-8").read()
history = [{"role": "system", "content": SYSTEM}]

print("Вставьте условие задачи, затем общайтесь. Пустая строка — выход.")
while True:
    user = input("> ").strip()
    if not user:
        break
    history.append({"role": "user", "content": user})
    r = client.chat.completions.create(
        model="claude-sonnet-5-5",
        messages=history,
        max_tokens=800,
    )
    answer = r.choices[0].message.content
    history.append({"role": "assistant", "content": answer})
    print(answer, "\n")

Многострочный код удобнее вставлять через файл или чат в браузере. Если вам нужен просто интерфейс без кода, тот же системный промпт работает в чате на zukko.pro. Параметры запроса описаны в документации по chat completions.

Как проверять свои решения

Главная мысль: проверять должна не модель, а тесты.

Свои тесты в первую очередь

Перед тем как показывать решение, напишите три-четыре теста: обычный случай, пустой ввод, минимум и максимум, повторяющиеся элементы. Модель можно попросить придумать крайние случаи («назови пять входов, на которых типичное решение ломается»), но ожидаемый результат вычисляйте сами.

Перебор против быстрого решения

Для олимпиадных задач работает приём стресс-теста. Вы пишете медленное, но очевидно верное решение (перебор), и быстрое. Затем гоняете обе на случайных данных:

bash
import random

def brute(a):          # медленно, но понятно
    ...

def fast(a):           # то, что вы придумали
    ...

for _ in range(1000):
    a = [random.randint(-5, 5) for _ in range(random.randint(1, 8))]
    assert brute(a) == fast(a), a

Если assert упал, у вас есть конкретный маленький пример, на котором решение ломается. Его и несите модели: «вот вход и два ответа, где моя логика неверна?».

Разбор ошибок без исправления

Для трейсбека есть отдельный шаблон:

bash
Вот ошибка и мой код. Не исправляй. Объясни:
1) что означает сообщение простыми словами,
2) в какой строке и почему возникает,
3) как мне самому найти причину, если бы я не знал ответа.

Третий пункт важнее остальных: вы учитесь отладке, а не копированию.

Что просить у модели, а что нет

Хорошо подходит:

  • объяснить условие другими словами;
  • сравнить два подхода по сложности и памяти;
  • найти в вашем решении крайний случай, который вы не учли;
  • после решения предложить, как сделать код читабельнее;
  • дать похожую задачу чуть сложнее.

Плохо подходит:

  • «напиши решение целиком» до вашей попытки;
  • оценивать вердикт «пройдёт ли по времени» без запуска: проверяйте профилированием и тестами;
  • считать точные значения в уме, для этого есть интерпретатор.

Сколько стоит такой тренажёр

Цены на 18 октября 2026. Допустим, сессия из 20 реплик: в среднем 3000 токенов на входе (история растёт) и 400 на выходе.

Всего: 20 × 3000 = 60 000 входных и 20 × 400 = 8000 выходных токенов.

claude-sonnet-5-5 (0.4 / 2): 60 000 × 0.4 / 1 000 000 = $0.024 8000 × 2 / 1 000 000 = $0.016 Итого $0.04 за сессию.

deepseek-v4.1-flash (0.013 / 0.038): 60 000 × 0.013 / 1 000 000 = $0.00078 8000 × 0.038 / 1 000 000 ≈ $0.0003 Итого около $0.001 за сессию.

Это допущение, у вашей сессии цифры будут другими: смотрите поле usage. Для подсказок и разбора алгоритмов бюджетная модель может хватить, но для разбора сложной динамики сравните две модели на своих задачах. Актуальные цены лежат в GET https://api.zukko.pro/v1/models.

Подключить ключ можно за пару минут: создайте его в кабинете. Если нужен готовый список промптов для разработчика, он есть в статье про промпты для программиста, а сравнение моделей для Python в статье про выбор модели для Python.

Частые вопросы

Не будет ли это списыванием?

Зависит от того, как вы пользуетесь. Если вы просите готовый код и сдаёте его, это списывание. Если вы сначала пытаетесь, а модель только указывает на ошибку, это ближе к занятию с репетитором. Правила вашего курса или олимпиады важнее любого совета.

Какая модель лучше для обучения?

Мы не утверждаем, что одна пишет код лучше другой. Ориентируйтесь на цену и индекс силы (claude-sonnet-5-5 48, deepseek-v4.1-flash 39) и проверьте на пяти знакомых задачах, где вы знаете правильный ход решения.

Как заставить модель не выдавать решение?

Системный промпт с правилами и ответ на настойчивые просьбы по тому же шаблону. Если модель всё равно выдала решение, начните разговор заново и напомните правило в первой реплике.

Сколько это стоит в месяц?

При 20 сессиях по оценке выше это порядка $0.80 на claude-sonnet-5-5 и около $0.02 на deepseek-v4.1-flash. Реальные суммы смотрите в разделе «Использование» кабинета.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.