Каждый вид уведомления формируется своим методом, итого имеем множество методов. Их стало слишком много, пришло время разделить эту кодовую базу на несколько классов.
Первый метод я вынес в отдельный класс вручную.
Далее сформировал инструкцию для AI: "вынеси такой-то метод в отдельный класс, оринетируйся на мой пример..."
Использовал утилиту Aider (https://aider.chat/), в которую зашиты протестированные system и user prompts, также эта утилита умеет отправлять в качестве контекста содержимое файлов исходного кода.
Как выглядел процесс:
- добавление файлов в контекст запроса происходит командой
/add и этот процесс очень медленный, чуть ли не минуту на каждый файл (я добавил два файла = 2 минуты)- далее отправляю основной prompt - нужно подождать ещё около минуты, пока не начнёт генерироваться ответ
- ответ приходит строка за строкой, медленно, наблюдаю в консоли
- как только передача ответа завершилась в дело вступает утилита Aider, которая должна создать новый файл на диске (новый класс) и скорректировать старый код, подставив вызов нового класса. Новый класс был создан без части кода и с обновлением текущего файла не вышло.
Что произошло: ответ от GPT содержал кривой diff, который Aider не смог наложить на существующий исходник. В этом случае в Aider предусмотрена автоматизация: он отправляет новый запрос в OpenAI с просьбой вернуть корректный diff. И опять длительное ожидание.
Это не первая попытка использовать Aider. И каждый раз прихожу к выводу, что это слишком медленно и неудобно.
В следующий раз опишу, как эту же задачу я решал с помощью Aider + локально запущенной модели DeepSeek Coder (https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-GGUF) и с помощью GitHub Copilot Chat в PhpStorm.




