tariel.ge › Полезное: бесплатные книги › Агент ИИ на своём компьютереБесплатно · автор Тариел Бежанидзе
← Агент ИИ ЛИСТ 22Реальная работаРЕВ. 1
Глава 22 · Реальная работа

Рецепты: код, сайты, скрипты, автоматизация

Рецепты для кода: разобраться в чужом проекте, починить ошибку, написать тесты, автоматизировать рутину. И граница, за которой локальной модели уже не хватает.

С чего начинать всегда

перед любой работой с кодом
git init          # если проекта ещё нет под контролем версий
git add .
git commit -m "до агента"

Дальше любую неудачную правку отменяет git reset --hard, а в Aider — ещё проще, командой /undo.

Разобраться в незнакомом проекте

только чтение, ничего не менять
Не меняй ничего. Прочитай структуру проекта и объясни:
1. Что делает эта программа в целом
2. С чего начинается выполнение
3. Какие основные модули и за что отвечает каждый
4. Где хранятся настройки
5. Что нужно, чтобы её запустить

Отвечай коротко, по пунктам, без пересказа кода построчно.
Лучшее применение слабой модели

Объяснять существующий код заметно легче, чем писать новый. Даже модель на 7–8B здесь полезна, а рисков нет вообще — она ничего не меняет. Если только начинаете, начните с этого рецепта.

Починить ошибку

давайте ошибку целиком
При запуске python main.py --config test.yml падает с ошибкой:

[сюда вставьте ВЕСЬ текст ошибки, включая трассировку]

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

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

Написать тесты

назовите случаи сами
Напиши тесты pytest для функции parse_date в utils.py.
Покрой случаи: обычная дата, дата с временем, пустая строка,
None, неверный формат, дата из будущего.
Тесты положи в tests/test_utils.py. Саму функцию не меняй.

Перечисление случаев — половина работы. «Напиши тесты» даёт три банальных теста; список случаев даёт то, что нужно.

Рефакторинг — маленькими шагами

одна цель за раз
Функция process_data в main.py слишком длинная.
Разбей её на три: чтение данных, обработка, запись результата.
Поведение должно остаться ровно тем же.
Внешний интерфейс функции не меняй — её вызывают из других мест.
Ничего другого не трогай.
Чего не просить у локальной модели

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

Разовый скрипт

всё в одном запросе
Напиши скрипт на Python: читает logs/*.log, находит строки
со словом ERROR, группирует по типу ошибки, выводит таблицу
«тип — количество — первое и последнее вхождение».

Требования: только стандартная библиотека, работает на Python 3.10+,
обрабатывает отсутствие папки и пустые файлы без падения,
путь к папке — аргумент командной строки.

Сначала покажи код, не запускай.

Понять чужую команду перед выполнением

безопасная привычка
Объясни по частям, что делает эта команда, и скажи,
есть ли в ней что-то необратимое. Не выполняй её.

[сюда — команда, найденная в интернете]
Отличное применение агента

Разбор незнакомых команд перед запуском — задача, где агент полезен и безопасен одновременно. Заодно это прямая профилактика того, о чём глава 20: вы перестаёте выполнять вслепую то, что нашли в сети.

Документация и комментарии

не трогая логику
Добавь docstring к каждой публичной функции в api.py:
что делает, какие параметры, что возвращает, какие исключения кидает.
Стиль Google. Код НЕ меняй — только добавляй документацию.
README
Напиши README.md для этого проекта: назначение, установка,
запуск, основные настройки, пример использования.
Бери информацию только из кода и существующих файлов.
Если чего-то нет — напиши «требует уточнения», не выдумывай.

Где локальной модели перестаёт хватать

Задача7–8B14B32B
Объяснить существующий кодДаДаДа
Разобрать незнакомую командуДаДаДа
Мелкая правка в одном файлеИногдаДаДа
Разовый скрипт по описаниюИногдаДаДа
Тесты по списку случаевПлохоДаДа
Починить ошибку по трассировкеПлохоОбычно даДа
Рефакторинг одной функцииНетИногдаДа
Правка, затрагивающая несколько файловНетПлохоОбычно да
Новая функция с нуля в большом проектеНетНетИногда
Если ваша задача в нижней части таблицы

Не мучайте локальную модель — это не вопрос формулировки. Возьмите бесплатный облачный вариант из главы 23 именно для таких задач, а локальную оставьте для всего остального. Совмещать никто не запрещает.

Привычки, которые сильно улучшают результат

Что дальше

Что делать, когда локальной модели объективно не хватает — и как остаться при этом в бесплатном.

Глава22 — Рецепты: код, сайты, скрипты, автоматизация
БлокРеальная работа
Далее23 — Когда локальной модели не хватает: бесплатные облака
Ревизия1
↑ Оглавление Предыдущая глава← 21 · Рецепты: файлы, документы, таблицы, бэкапы Следующая глава23 · Когда локальной модели не хватает: бесплатные облака →

Бесплатная книга · tariel.ge · команды и версии проверяйте в официальной документации проектов

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.