Search
Write a publication
Pull to refresh

Comments 13

Для простых задач / приложений или прототипов - cursor отлично справляется. А вот дальше начинаются нюансы с переписыванием кода, когда часть уже работающего кода теряется, часть переписывается иначе с потерей совместимости с другими блоками кода в этом же приложении.

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

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

Есть большое количество сложностей, по хорошему нужно проектировать приложение начиная с архитектуры с расчетом на ограниченный контекст ИИ с максимально независимыми блоками / модулями и покрывать все тестами (ну т.е. проблемы те же, что у людей).

Согласен на счет проблем с отказом работать, но это часто случается когда контекст уже переполнен. Еще важный момент который я не упомянул в посте – это то что Курсор хорошо работает почему-то только с моделью claude-3.5-sonnet. При переключении на любую модель OpenAI, он отказывается работать с файлами на прямую и работает в режиме чата.

отказывается работать с файлами на прямую

4o работает в качестве агента и умеет работать с файлами/командами, но получается это не всегда, вы правы, sonnet 3.5 стабильнее. Недавно завезли o3-mini - она тоже работает с агентами, другие думающие модели такой возможности лишены (o1, недавний R1).

Sonnet у меня часто отказывается работать с файлами, если они лежат вне текущего проекта, когда даю задачу сходить в другую папку и что-то посмотреть. Иногда пытается сказать, что нет доступа, иногда генерирует команды для консоли (cd / ls / cat), но если настоять - то идет и смотрит безо всяких проблем)

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

Если у вас нейронка начинает "забывать" старый код и начинает "выдумывать заново" то что уже работало и так, то с большой долей вероятности вы используете ChatGPT. Именно по этой причине я перешел с ChatGPT на Claude Sonnet 3.5. Она намного более стабильно "держит" код. И не искажает его "выдумыванием заново", а только может выбросить что-то что посчитает не нужным. Это решается уточнением этих моментов в промте, наверное это часть обучения, чтобы "быть полезной" и иногда эту сторону приходится обуздывать.

У ChatGPT эта проблема начинает усиливаться с увеличением контекста, чего лишен Claude.

Просто попробуйте и сравните. За это многие разработчики и отдают ему предпочтение.

Да нет, все обозначенные примеры писал sonnet 3.5, 4o себя изначально показывала хуже, поэтому быстро с неё ушел. Пока размер приложения небольшой - все более или менее хорошо, но как только нужные части перестают помещаться в контекст - начинаются сложности.

Сейчас тестирую o3-mini, но значимого объема данных пока нет, чтобы сделать выводы. Deepseek R1, который подвезли на днях, увы, не умеет работать в качестве агента

А если проекты на работе уже в готовом виде, есть варики, чтоб всю кодовую базу перегнать в промпт, который потом можно расширять?

И ещё такой момент, в статье tapnote описан как сложный проект. Хотя на деле это дефолтная задачка с рядовых айти курсов с 22-летними преподами. Такого маянеза в сети валом - у каждого второго жителя Хайдарабада в гите лежит на трёх ЯП. На работе же обычно асинхронность, конкурентность, возможность горизонтально масштабировать проект, чтоб не задедлочило ничего. В качестве данных по шине уже гоняется какой-то json или protobuf и сервис должен работать с ним. Ну и до кучи к примеру ещё использовать корпоративный npm пакет с обёртками на все и вся, чтоб архитектура была +- одинаковая у сервисов. Не будет ли в таком случае промпт тяжелее всей сгенеренной бизнес логики? То что поделки уровня трейни она выдаёт, я из статьи понял, но не понятно где она споткнется и чего ей не по силам. И что будет, если вы попросите портировать tapnote этот на что-то менее популярное чем react native, например на weex?

Если что не хейт, просто интересно можно ли таким способом работать 10% от рабочего дня, а остальное время валяться убитым в кофешопе в Тае 😁

есть варики, чтоб всю кодовую базу перегнать в промпт, который потом можно расширять?

Варики есть, уже работает, но немного иначе, ближе к образу мышления / действий человека. У моделей (как и у человека, впрочем) ограничен контекст, поэтому большой проект в принципе в промпт не влезет.

Есть RAG - весь проект используется как база знаний, а данные в промпт уже вытаскиваются только релевантные запросу. Например, вы просите в промпте починить ошибку в импорте - cursor идет смотреть файлы проекта, которые с этим запросом связаны, все подходящее что находит - собирает в качестве контекста и передает модели, модель генерирует только изменения в нужных файлах, cursor эти изменения из ответа модели парсит и сразу применяет к имеющемуся файлу.

Кроме поиска работы с файловой системой (а доступ есть не только к файлам проекта, а в принципе ко всей системе) есть еще агенты, которые запускают команды в консоли, например. Т.е. кейс "запускай тесты и исправляй ошибки" - очень даже рабочий, будет в цикле править код и запускать тесты, пока они не пройдут.

Правда модели все еще слегка туповаты и не всегда видят очевидные и простые решения и как следствие могут нагородить таких костылей, что потом не разберешься (например, у меня периодически лезет править исходники библиотек в vendor). Я бы рекомендовал ревью изменений проводить в обязательном порядке и следить за ходом мыслей в чатике, чтобы вовремя направлять в нужное русло. Это как парное программирование с джуном.

Спасибо за интерес к топику. Пример проекта из поста действительно может показаться тривиальной задачей, особенно если смотреть поверхностно. Однако суть демонстрации не в самом приложении, а в том, как создать подобное приложение на основе автоматизированной базы и правильных инструментов. Это принципиально другой уровень сложности и абстракций.

Про "перегнать всю кодовую базу" в нейронку – это частая фантазия, и я, честно, не понимаю, откуда она берется. Типичный корпоративный мидл, особенно если речь про корпорацию, где разработка идет, так скажем, "на потоке", часто не очень понимает, откуда берутся переменные окружения, а чтобы встроить тесты в пайплайн, обращается к отдельной команде или человеку, выделенному специально для этого. В таких условиях дай бог сеньор-другой или архитектор имеет в голове полный контекст проекта, и то без деталей реализации. Нейронка здесь – это как тот мидл, который и так не знает ничего за пределами своего скоупа, часто ограниченного не только определенным участком проекта, но и "фронтендом" или "бекендом", только специально загнанная в эти рамки в целях здравого смысла. Так что и задачи для нейронки будут ставить (и уже ставят) в условиях ограниченной видимости (ограниченного контекста), где асинхронность, масштабируемость, конкурентность, встроенность в архитектуру и другие нюансы – это условия выполнения конкретной задачи, а не волшебного промпта на весь проект с запросом "сделай нормально".

Даже в маленьких проектах, как в примере, лучше держать фокус контекста в пределах пары тысяч строк и обновлять через каждые 1-2 задачи. Для этого я использую специальный инструмент, тоже описанный, кстати, в посте, регулирующий объем контекста в зависимости от задачи, которую я ставлю.

Так что повторю, теоретизация о том, чтобы засунуть в контекст всю кодовую базу – это какое-то непонимание процессов разработки, как минимум. И вообще, когда в корпоративной среде будет возможно использовать локальные нейронки уровня o1-o3, тогда и можно будет порассуждать про корпоративное применение :) Пока что никакие в здравом уме безопасники не дадут разработчикам пихать части кодовой базы в сторонние API. А вот для indie-проектов – самое то!

Пока что никакие в здравом уме безопасники не дадут разработчикам пихать части кодовой базы в сторонние API

Если бы этот тезис был верным - не имели бы успеха всякие Business/Enterprise планы у всех инструментов, вы слишком скептически настроены насчет применимости для корпоратов.

Оборонка / госы / банки / большие корпорации - все, что должно быть надежно заперто за семью печатями - да, разворачивают self-hosted модели или разрабатывают свои локальные решения. К тому же одна нейронка сравнимая с o1 недавно появилась в opensource)

У всех – это каких? На последнем моем корпоративном проекте были заблокированны доступы даже к чатам, не говоря уже о том, чтобы встраивать что-то сторонее внутрь. Поэтому я упомянул безопасников в здравом уме, а так да – везде по разному. Корпорация корпорации рознь – где стартап, где галера, а где серьезная продуктовая компания.

Опенсорсные модели пока только на бенчмарках и сравнимые, по факту – не видел ничего рядом стоящего даже с Соннетом 3.5 по уровню выдачи; если не прав – рад буду почитать про сравнимый опыт, может упустил что-то. О встроенности опенсорсных моделей в корпоративные системы разработки на уровне, о котором я говорю, тоже пока ничего не слышал.

У всех – это каких?

Cursor, windsurf, copilot и тп - у каждого популярного ai инструмента есть не только тариф для бизнеса, но и enterprise / saas решения, ориентированные на крупные компании.

по факту – не видел ничего рядом стоящего даже с Соннетом 3.5 по уровню выдачи

Можете посмотреть lmarena по кодингу - там R1 делит первое место со всеми топовыми проприетарными моделями. Не топлю за R1, но это не бенчмарк, результат пользовательских оценок. Другое дело что по агентской схеме ни R1, ни o1 работать не могут, а недавняя o3-mini по личному опыту все еще уступает sonnet 3.5 именно в агентском режиме в cursor (т.к. эти модели хуже следуют инструкциям и как будто больше проблем с структурированным выводом).

У сбера и яндекса есть свои базовые модели, я не говорю что каждая средня компания вкладывает в это средства, но то, что к использованию ИИ придут очень многие - на мой взгляд очевиден. Бизнес же про деньги, если использование ИИ будет давать очевидные преимущества - этим быстро начнут пользоваться. Пока мы находимся в точке, когда преимущества ИИ в кодинге бизнесу не очевидны.

Sign up to leave a comment.

Articles