Зафиксируйте условие и тесты
Создайте отдельную папку с файлом quantity.py и тестами. Функция parse_qty принимает строку с неотрицательным целым числом или возвращает None, если значение не подходит. Сначала выпишите примеры: «0» и «42» дают числа, пустая строка, «-1», «2.3» и None дают None. Отдельно решите, допускаются ли пробелы и знак плюс. Если условия нет, ответы моделей могут по-разному трактовать эти входы и формально укладываться в задачу.
Попросите модель вернуть только функцию, без установки пакетов и изменения тестов. Затем прочитайте код, сохраните его отдельно и запустите тесты. Пустой ответ, синтаксическая ошибка и неправильное значение должны иметь разные отметки в журнале. Если вы попросили агента менять весь репозиторий, число изменённых файлов тоже становится метрикой. Начните с одного файла, чтобы лишние правки были заметны.
Запишите параметры локального прогона
В Ollama имя модели включает метку размера или сборки. Запишите полное имя и версию сервера. Если сравниваете модели, сохраните одинаковый текст задачи, предел ответа и размер контекста. Если сервер позволяет, выключите потоковую передачу для одного прогона. API возвращает готовый текст вместе с длительностями и счётчиками. Общая длительность и длительность генерации отвечают на разные вопросы. Первую может увеличить загрузка модели, вторую сравнивают вместе с количеством полученных токенов.
Для оценки памяти запишите состояние системы до запроса и пиковое значение во время выполнения. Отметьте, учитывает ли ваш инструмент память ускорителя и общую память. На Mac с общей памятью график одного процесса не отражает всей нагрузки. Во время замера закройте лишние локальные задачи, оставьте один прогон и не меняйте настройки между попытками. Если вы ограничили вычислительные потоки ради отзывчивости, укажите это рядом с результатом.
Оцените код и пригодность для следующей задачи
В нашем контрольном прогоне Qwen2.5-Coder 3B в Ollama на одном потоке CPU ответил за 17,1 секунды, из них 8,6 секунды заняла генерация 53 токенов. Функция прошла шесть перечисленных случаев, но вернула −2 для строки «-2». Модель отдельно исключила «-1» из брифа и пропустила общее правило. Поэтому итог по семи случаям — 6 из 7. Это замер одного задания. Пиковую память в нём не замеряли. В журнал внесите долю пройденных случаев, время до готового ответа и время ручной проверки. Если функция проходит четыре случая из шести, посмотрите, какие входы потерялись. Возврат None для неверных строк при падении на None означает неполную обработку типа. Такая модель может помочь с черновиком, но этот результат ещё нельзя принять. Проверяйте код на независимых тестах и сохраняйте исходные результаты до того, как попросите модель исправиться.
Добавьте вторую задачу, которая меняет существующую функцию без изменения её интерфейса. Возьмите один и тот же коммит для каждой модели. После каждого прогона сравните diff, запустите тесты и вернитесь к исходному состоянию в отдельной копии. Так вы выясните, хватает ли модели контекста для вашего проекта и окупает ли помощь время на проверку.
Официальная документация: шаги и условия работы инструмента.