Всем привет. Давненько я не появлялся на этом форуме. Если чего, я тот чувак, который 13 лет назад написал VisualGDB, пока VS не умела в Линукс от слова совсем. Ну а потом вырастил из этого огромный мультитул с кучей функционала.
Но сегодня не об этом. Где-то полгода назад я попробовал в работе AI, и сразу понял, что чаты и CLI — жутко неэффективные способы с ним работать. Большую часть контекстного окна занимают мало релевантные вещи, AI часто галлюцинирует фигню, редактирует чего не просили, или в случае с CLI, тормозит и жрет токены, как не в себя.
В общем, я вдохновился этим делом, и написал
CodeVROOM. Это написанный с нуля на дотнете кросс-платформенный редактор, который работает на уровне символов. Т.е. если, скажем, ткнуть его носом в
недоделанную функцию, он сбросит модели сильно обрезанный вариант файла и обернет это фразой "пока ничего не делай, но скажи, какие символы нужны, чтобы это выполнить". Дальше нужные символы подключаются в контекст, и чат начинается с начала. Все это по одному нажатию, при желании можно настраивать. По ссылке сверху пример, как итеративное добавление контекста вообще без единого слова промпта в 3 шага делает ответ гораздо более разумным. Это работает в разы быстрее, чем если кидать модели целые файлы, и надеяться, что она там что-то найдет.
Тут еще железо от Cerebras подоспело, которое гоняет Ламу с абсолютно космической скоростью, и в итоге получилась гремучая смесь. Т.е. реально кучу рутинного кода больше можно не писать вообще. Даются промпты типа "сделай обертку вокруг этого класса, и добавь туда статус", "вынеси абстрактный класс с X, Y и Z", "добавь еще вариант для foo", и оно через считанные секунды выдает вменяемый код, которым с минимальными доработками можно пользоваться.
Дальше — больше. Раз уж писать редактор с нуля, можно сделать разые крутые вещи, которые не потянет архитектура существующих редакторов. Например, если AI предложил правки в 3 разных класса из 20, можно свернуть классы (и группы методов), не затронутых правками. Т.е. не нужно бегать по всему файлу, и в то же время, железно понятна структура, что правка внутри конструктора вложенного класса, а не черт знает где.
Ну, плюс, сессии редактирования можно шагать вперед/назад, менять модели на ходу, или дать модели одну и ту же задачу 5 раз, потом выбрать лучший вариант, и продолжить с ним.
Или еще фишка — AI techniques. Когда один раз описывается типовая задача, типа как портировать WPF-свойства в Avalonia, и потом можно просто ткнуть в класс и сказать "примени технику @PortProperties к свойствам размеров". И через пару секунд будет результат, на который руками ушли бы минуты.
Впереди еще много всего, типа высокоуровнего дизайна классов на уровне требований, но даже в текущем состоянии редактором можно пользоваться для кучи мелких задач (
тут есть примеры).
Сам редактор платный, но не привязан к конкретным моделям, и пока не будет функционала типа сборки и отладки, работает неограниченный триал.
Комментарии и пожелания приветствуются.