Я работал над созданием инструмента под названием rustsn, который позволяет генерировать, компилировать и тестировать код с использованием LLM (Large Language Models). Изначально идея заключалась в том, чтобы автоматизировать процесс написания небольших фрагментов кода — так называемых сниппетов — для разных языков программирования на основе объяснений, предоставленных пользователем. Этот инструмент стал развиваться и обрастать новыми возможностями, такими как генерация полного кода для приложений и объяснение существующего кода на основе векторных представлений (эмбеддингов).
Когда я только начинал работу над rustsn, основной задачей было добиться того, чтобы пользователь мог, например, просто описать словами, какую функцию ему нужно написать, а система автоматически генерировала бы рабочий код. Я начал с Rust, поскольку этот язык обладает мощными возможностями для работы с типами и тестированием, что делает его идеальным для написания безопасного и производительного кода. Позже я добавил поддержку других языков, таких как JavaScript, Python, и TypeScript.
Этот инструмент стал гораздо больше, чем просто генератор кода. Например, я добавил команду ask, которая позволяет получать объяснение к существующему коду вашего проекта. Для этого используется специальная модель, которая анализирует исходники и находит наиболее релевантные файлы на основе вашего вопроса.
В ближайшее время я планирую значительно расширить функционал rustsn. Первое, что я хочу сделать — это интегрировать Docker, чтобы пользователи могли запускать инструмент не только на хостовой машине, но и в контейнерах. Это упростит развертывание и использование инструмента на различных платформах, обеспечив стабильность окружения.