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

Когда я только начинал работу над rustsn, основной задачей было добиться того, чтобы пользователь мог, например, просто описать словами, какую функцию ему нужно написать, а система автоматически генерировала бы рабочий код. Я начал с Rust, поскольку этот язык обладает мощными возможностями для работы с типами и тестированием, что делает его идеальным для написания безопасного и производительного кода. Позже я добавил поддержку других языков, таких как JavaScript, Python, и TypeScript.

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

В ближайшее время я планирую значительно расширить функционал rustsn. Первое, что я хочу сделать — это интегрировать Docker, чтобы пользователи могли запускать инструмент не только на хостовой машине, но и в контейнерах. Это упростит развертывание и использование инструмента на различных платформах, обеспечив стабильность окружения.

Кроме того, одной из ключевых целей является расширение возможности генерации кода. Сейчас rustsn отлично справляется с генерацией отдельных функций, но мне бы хотелось, чтобы он мог создавать полноценные посевные проекты — от командных утилит до веб-сервисов с REST API. Это сделает инструмент гораздо более полезным для разработчиков, которые хотят быстро получить скелет приложения на основе простого описания.

И наконец, чтобы сделать работу с rustsn ещё удобнее, планирую добавить графический интерфейс в виде веб-приложения. Это позволит пользователям взаимодействовать с инструментом через браузер, не заходя в терминал, что особенно удобно для тех, кто не привык работать с командной строкой.

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

Основной вызов, который я вижу в развитии rustsn, связан с тем, что использование коммерческих, "фронтирных" ИИ, требующих постоянных денежных затрат на API и ресурсы, проиграет борьбу с open-source решениями. Мы уже наблюдаем тенденцию к тому, что открытые модели, которые можно запускать на собственном оборудовании, становятся все более мощными и удобными для разработчиков. Именно поэтому я сделал ставку на интеграцию rustsn с Ollama — это бесплатное и локальное решение, позволяющее запускать LLM на собственном компьютере, обеспечивая максимальную гибкость и независимость.

Я уверен, что через 1-2 года оптимизация LLM сделает возможным их запуск не на больших кластерах GPU, как это требуется сегодня, а на обычных ноутбуках с относительно скромным железом. Это будет настоящей революцией для разработчиков: каждый сможет запускать мощные ИИ модели локально, без зависимости от сторонних сервисов и их тарифов. Моя цель — подготовить rustsn к этой новой реальности, делая его более эффективным, автономным и доступным для каждого разработчика, независимо от их бюджета или инфраструктуры.

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

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

Комментарии (6)


  1. dmitrykabanov
    16.10.2024 21:32

    Интересный проект. Какие могли бы отметить ещё аналоги от небольших команд вроде вашей?


    1. igumnov Автор
      16.10.2024 21:32

      Я бы рекомедовал вам использовать этот плагин для среды разработки Continue
      Он бесплатный и в его настрайках можно указать какую модель использовать например Ollama бесплатную которую у себя можно крутить если есть деньги на видюху или платный доступ к API где платишь за число токенов от OpenAI и других


    1. igumnov Автор
      16.10.2024 21:32

      Вот еще интересный проект 20 тыс звездочек Aider-AI/aider: aider is AI pair programming in your terminal (github.com)

      Правда на питоне