Как стать автором
Обновить

Комментарии 17

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

  • большой проект не влезет в контекст

  • после каждого изменения нужно переобучать модель получается под весь проект

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

большой проект не влезет в контекст

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

после каждого изменения нужно переобучать модель получается под весь проект

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

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

Если код написан нормальный, для людей, не гигантские методы на 20 страниц, с невнятными названиями, то chatgpt довольно хорошо разбирается, что отдельные методы делают.

интересно что он неплохо понимает назначение файла только исходя из его названия и пути (папок) в проекте. и способен на достаточно многое даже без описаний файлов. хоть и намного менее стабилен (чаще уходит в неверном направлении).

ну для этого этот проект и сделан:
- чтобы проект "влез" в контекст. 1Мб исходников влезает. и 10Мб тоже влезет.
- если файл был изменен то при перезапуске утилиты его описание перегенерится. и модель не нужно переобучать. более того это не возможно. возможно дообучение (fine-tuning) но это делается совсем с другой целью.
- код не нужно чтобы она его понимала. она его понимает.
как вы предлагаете сделать это специализированный инструмент? обучить "специальную" сеть? а чем она будет лучше gpt-4-turbo? мы не знает точную архитектуру gpt-4 но с большой вероятностью внутри есть как раз такая отдельная сеть заточенная под программирование. и у нее большое контекстное окно 128к токенов.
чем ваша предлагаемая сеть будет от нее отличаться?

 если файл был изменен то при перезапуске утилиты его описание перегенерится.

и очевидно нужно перегенерить хотя бы описание для всех зависимостей файла

зачем? на самом деле даже перегенерация описания измененного файла это в 95% случаев оверкилл. так как описание очень краткое и чтобы изменения в файле на него сильно повлияли это должно быть оч серьезное изменение. я написал в статье что типовое описание файла это 10% от его размера. если делать больше то получается слишком слабое сжатие. и как правило это описание не содержит списка импортов. я пробовал написать промпт так чтобы импорты перечислялись - но тогда описания получались слишком длинные и отказался от этой идеи.

Задумка класс - реализация ужасная. Такие проекты нужно делать исключительно на локаных llm вроде Llama.cpр. Большинство компаний и так запретили ЧатГПТ использовать, потому-что nda. А тут мы сами выгружаем свою кодовую базу на блюдечке.

а вы не переживаете когда код кладете в приватный репозиторий на гитхаб? то что майкрасофт у вас код украдет? или это другое?
openai не обучает свои модели на данных полученных через api:

  • Does OpenAI train its models on my business data?

    No. We do not use your ChatGPT Team, ChatGPT Enterprise, or API data, inputs, and outputs for training our models.

если вам нравится идея - прикрутите локальную LLM - проект опенсорсный
компании запретившие использовать чатгпт проиграют не от утечки кода а от конкуренции со стороны тех компаний которые не запретили.

вроде бы компании озобоченные nda используют свои локальные репозитории, а не гит.

вы работали в таких компаниях?

только в таких и работал

За весь свой трудовой опыт github использовал только для каких-то своих самоделок никак не связанных с основной работой.

Мне (как безопаснику по образованию) крайне странным кажется использовать всяческие сторонние ресурсы для хранения и пересылки рабочей информации (почта, мессенджер, репозиторий кода и документации, erp и т.п.). А уж тем более в наше неспокойное время, когда в любой момент доступ к внешним ресурсам могут ограничить

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

Полезная тема. А чем это лучше cursor.sh? Он ведь тоже умеет работать со всей базой кода.

аналоги реализованные в той или иной форме конечно существуют. вопрос как это сделано и насколько это хорошо работает. есть ли весь проект в контексте? как это сделано? есть ли семантический поиск по коду? кстати семантический поиск по коду работает оч круто

Мне нравится. Считаю мы на 1 шаг ближе к замене программистов на ботов. Дать этого бота и интерфейс к нему другому боту, который сам код пишет, и можно не работать (или ждать увольнения).

Всегда будет нужен тот мужик, который знает, куда кувалдой бить.

этот мужик?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории