Разработка с AI в декабре 2024. Выбор IDE (1/2)
С чего начать разработку с помощью ИИ в декабре 2024?
Скоро длинные выходные и кто-то наверняка будет что-то пилить в перерывах между отдыхом. Так что сделайте себе подарок и потратьте время на освоение новых подходов :)
Попробую дать срез текущего состояния и того, что сам использую каждый день.
Эта инфа будет полезной в основном для разработчиков, но люди связанных профессий (QA, менеджеры, аналитики) тоже могут попробовать себя.
Про что я могу рассказать: выбор IDE, LLM, практики работы, текущие ограничения, и к чему присматриваться дальше.
Начнем с IDE
Мой выбор: Cursor - это VSCode-based IDE, которая предоставляет удобные возможности по работе с разными ИИ-моделями для написания кода.
Какие задачи решает
* передача контекста для LLM - не нужно заниматься копипастингом между браузером, где открыт ChatGPT/Claude и IDE. Cursor сам ищет и включает нужные файлы в контекст LLM, или дает возможность явно указать, какие файлы нужно включать;
* просмотр и автоматическое применение изменений в самой IDE - вы получаете красивый diff от LLM, который можете принять или отклонить, полностью или частично;
* правильный промптинг под капотом - судя по всему, там куча эвристик и довольно нетривиальный промптинг используется, руками такое самому писать и отлаживать накладно;
* отличное ИИ-автодополнение - если вы предпочитаете писать код руками, то инлайновые подсказки Cursor, пожалуй, сейчас лучшие среди всех подобных инструментов;
* запуск внешних тулов - к примеру, может сам запускать линтер, проверять написанный код и сам его править. Может запускать тесты, консольные команды и сам проект, анализируя output и исправляя найденные ошибки;
* декомпозиция задач - если у вас довольно объемная задача, то она будет декомпозирована и выполнена по шагам;
* возможность принимать ссылки на документацию - если что-то нетривиальное нужно сделать или по какой-то недавно вышедшей либе у LLM пока что нет доков, то можно просто скинуть ссылку - Cursor сам ее распарсит и включит в контекст.
Вариативность режимов работы (в порядке всё большей автономности ИИ в плане написания кода):
* ручное написание кода - всё как обычно в VSCode, только с умным автодополнением;
* режим чата - просто чатимся о текущем открытом файле (+ можно указать какие-то другие), просим что-то небольшое поправить, после исправлений принимаем (или нет) предложенные изменения. Практически как браузер с ChatGPT, но уже в разы удобнее за счет интеграции в IDE;
* режим Composer Normal - принимает на вход описания изменений, которые могут затрагивать сразу много файлов в проекте, к примеру, добавление/изменение фичи или рефакторинг. Cам старается находить все места в проекте, которые нужно изменить (использует поиск или простенький RAG). Но если весь проект влезает в контекст LLM, то лучше сразу все файлы в него включить на старте;
* режим Composer Agent - в основе как Composer Normal, но с агентскими возможностями, такими как запуск внешних инструментов, более надежная декомпозиция задач и выполнение их по шагам. Не требует включения файлов руками, ищет их сам в структуре проекта и при этом стабильнее, чем в Composer Normal.
Что по ценам?
Для начала попробуйте бесплатный аккаунт.
А дальше - $20 в месяц за 500 запросов к моделям ChatGPT (4, 4o) и Claude 3.5 Sonnet, и при желании этот лимит пропорционально увеличивается.
Мне на текущий момент хватает примерно 1000 запросов в месяц.
Claude Opus и ChatGPT o1-like модели оплачиваются отдельно, т.к. они довольно дорогие.
Список моделей постоянно меняется и пополняется, на сайте не успевают обновлять, лучше смотреть в самом Cursor :)
Стоит отметить, что если посчитать экономику, то, если использовать модели напрямую, а не через Cursor, то выйдет намного дороже.
Думаю, тут дело в сочетании нескольких факторов:
* использование денег инвесторов для снижения стоимости;
* прямые контракты со скидками с вендорами (OpenAI, Anthropic);
* активное использование своих моделей под капотом, которые, кстати, неплохо работают (тот же автокомплит, к примеру).
С чего начать разработку с помощью ИИ в декабре 2024?
Скоро длинные выходные и кто-то наверняка будет что-то пилить в перерывах между отдыхом. Так что сделайте себе подарок и потратьте время на освоение новых подходов :)
Попробую дать срез текущего состояния и того, что сам использую каждый день.
Эта инфа будет полезной в основном для разработчиков, но люди связанных профессий (QA, менеджеры, аналитики) тоже могут попробовать себя.
Про что я могу рассказать: выбор IDE, LLM, практики работы, текущие ограничения, и к чему присматриваться дальше.
Начнем с IDE
Мой выбор: Cursor - это VSCode-based IDE, которая предоставляет удобные возможности по работе с разными ИИ-моделями для написания кода.
Какие задачи решает
* передача контекста для LLM - не нужно заниматься копипастингом между браузером, где открыт ChatGPT/Claude и IDE. Cursor сам ищет и включает нужные файлы в контекст LLM, или дает возможность явно указать, какие файлы нужно включать;
* просмотр и автоматическое применение изменений в самой IDE - вы получаете красивый diff от LLM, который можете принять или отклонить, полностью или частично;
* правильный промптинг под капотом - судя по всему, там куча эвристик и довольно нетривиальный промптинг используется, руками такое самому писать и отлаживать накладно;
* отличное ИИ-автодополнение - если вы предпочитаете писать код руками, то инлайновые подсказки Cursor, пожалуй, сейчас лучшие среди всех подобных инструментов;
* запуск внешних тулов - к примеру, может сам запускать линтер, проверять написанный код и сам его править. Может запускать тесты, консольные команды и сам проект, анализируя output и исправляя найденные ошибки;
* декомпозиция задач - если у вас довольно объемная задача, то она будет декомпозирована и выполнена по шагам;
* возможность принимать ссылки на документацию - если что-то нетривиальное нужно сделать или по какой-то недавно вышедшей либе у LLM пока что нет доков, то можно просто скинуть ссылку - Cursor сам ее распарсит и включит в контекст.
Вариативность режимов работы (в порядке всё большей автономности ИИ в плане написания кода):
* ручное написание кода - всё как обычно в VSCode, только с умным автодополнением;
* режим чата - просто чатимся о текущем открытом файле (+ можно указать какие-то другие), просим что-то небольшое поправить, после исправлений принимаем (или нет) предложенные изменения. Практически как браузер с ChatGPT, но уже в разы удобнее за счет интеграции в IDE;
* режим Composer Normal - принимает на вход описания изменений, которые могут затрагивать сразу много файлов в проекте, к примеру, добавление/изменение фичи или рефакторинг. Cам старается находить все места в проекте, которые нужно изменить (использует поиск или простенький RAG). Но если весь проект влезает в контекст LLM, то лучше сразу все файлы в него включить на старте;
* режим Composer Agent - в основе как Composer Normal, но с агентскими возможностями, такими как запуск внешних инструментов, более надежная декомпозиция задач и выполнение их по шагам. Не требует включения файлов руками, ищет их сам в структуре проекта и при этом стабильнее, чем в Composer Normal.
Что по ценам?
Для начала попробуйте бесплатный аккаунт.
А дальше - $20 в месяц за 500 запросов к моделям ChatGPT (4, 4o) и Claude 3.5 Sonnet, и при желании этот лимит пропорционально увеличивается.
Мне на текущий момент хватает примерно 1000 запросов в месяц.
Claude Opus и ChatGPT o1-like модели оплачиваются отдельно, т.к. они довольно дорогие.
Список моделей постоянно меняется и пополняется, на сайте не успевают обновлять, лучше смотреть в самом Cursor :)
Стоит отметить, что если посчитать экономику, то, если использовать модели напрямую, а не через Cursor, то выйдет намного дороже.
Думаю, тут дело в сочетании нескольких факторов:
* использование денег инвесторов для снижения стоимости;
* прямые контракты со скидками с вендорами (OpenAI, Anthropic);
* активное использование своих моделей под капотом, которые, кстати, неплохо работают (тот же автокомплит, к примеру).