Содержание
JetBrains показала способ использовать AI внутри приложения без постоянных запросов к модели
JetBrains Research открыла исходный код KotlinLLM — исследовательского плагина для IntelliJ IDEA и проектов на Kotlin/JVM. Инструмент позволяет описать нужное поведение короткой подсказкой, а затем генерирует реализацию на Kotlin, когда приложение сталкивается с реальными данными и сценариями.
Как работают Smart macros
В KotlinLLM есть два основных макроса. asLlm преобразует неструктурированные данные в типизированные объекты, списки или примитивы, а mockLlm создаёт реализацию интерфейса для тестов. Если текущей логики недостаточно, плагин собирает данные из запущенной программы, просит AI подготовить узкое изменение, компилирует его и подменяет класс через JDI без полного перезапуска.
Главное отличие от обычного вызова нейросети через API — сгенерированная логика сохраняется как исходный Kotlin-код. Её можно проверить на ревью, покрыть тестами, закоммитить и запускать без плагина. Для уже обработанных сценариев повторный запрос к модели не нужен, поэтому исчезают дополнительная задержка, стоимость инференса и зависимость от доступности AI-сервиса.
Что показали тесты JetBrains
На адаптированном проекте Spring Petclinic команда проверила 18 точек вызова и 24 сценария: все они завершились после доработки Smart macros, горячая перезагрузка сработала в 100% случаев, а компиляция и подмена классов заняли около 1% общего времени выполнения. В отдельном тесте инструмент разобрал более 30 тысяч задач из 20 GitHub-репозиториев и достиг полноты около 0,89 при поиске задач для начинающих.
Кому это пригодится
Подход интересен командам, которым нужно применять AI к неоднородным данным, быстро собирать тестовые реализации или переносить результат работы модели в обычный поддерживаемый код. Но JetBrains называет KotlinLLM исследовательским прототипом: перед использованием в продакшене разработчикам важно проверять сгенерированную логику, ограничения типов и поведение на новых данных. Проект опубликован под лицензией Apache 2.0 и уже доступен на GitHub.