Альтернатива FOSS для GitHub Copilot?

Вопрос или проблема

Существует ли FOSS (бесплатная, с открытым исходным кодом) альтернатива GitHub Copilot, предпочтительно такая, которую можно интегрировать в Vim?

Я думаю, что Tabby, “Open-source, само-хостящийся AI-ассистент для кодирования”, это то, что вам нужно:

enter image description here

Легко настраивается: Управление развёртыванием с помощью простого конфигурационного файла TOML

Открытый исходный код: Проверьте весь код Tabby на безопасность или соответствие на Github. Или разверните свою собственную инсталляцию.

Работает на Rust: Обеспечивает лучшую в своём классе скорость и надёжность Rust, чтобы сделать ваш опыт кодирования максимально быстрым и надёжным.

Имеет интеграции с основными редакторами и IDE, включая Vim/NeoVim.

Проект был запущен бывшими инженерами Google, является открытым, написан на Rust и совместим с несколькими моделями с различными лицензиями. Вы можете узнать больше в их документации.

Исходный код можно найти здесь: https://github.com/TabbyML/tabby.

Tabnine имеет плагин для NeoVim, и в отличие от Microsoft Copilot, придаёт минимальное значение соблюдению авторских прав. Датасет, на котором он обучен, перечислен на https://trust.tabnine.com.

https://www.continue.dev/ для VSCode и JetBrains

Можно использовать с собственными LLMs с https://ollama.com/

(Что касается предпочтений) Я не думаю, что есть интеграция с vim на данный момент.

Редактировать:
Я начал использовать Aider https://aider.chat/ Он работает в терминале с различными LLMs, включая собственные. Это позволяет настраивать автоматизацию и интеграции.
Кроме того, активировав мониторинг файлов в репозитории, вы можете взаимодействовать с Aider/LLms из любой IDE через встроенные комментарии к файлам. Пока что мне это нравится больше, чем Continue.

Возможно, стоит обратить внимание на codegpt.
Это не открытый исходный код, но есть бесплатный уровень. Он также не подходит для Vim.

Они задокументировали с помощью скриншотов (и видео), как настроить VSCode для подключения к одному из нескольких общих “AI Providers”. Затем вы выбираете один из этого списка провайдеров (с которым нужно быть зарегистрированным). Далее вы можете немного лучше контролировать, куда отправлять ваши промпты и фрагменты кода.

Мне показалась относительно простой настройка интеграции CodeGPT/VSCode/PerplexityAI. Возможно, это может быть использовано как промежуточный шаг в обучении, когда сразу перейти к собственным LLMs слишком сложно.

.

Ответ или решение

Вопрос о свободной и открытой альтернативе GitHub Copilot для использования в Vim имеет огромное значение для разработчиков, которые ищут гибкие и приватные инструменты для улучшения своего рабочего процесса. В этой сфере существует несколько вариантов, которые могут стать достойными заменами, обеспечивая при этом высокий уровень производительности и безопасности.

Теория: Почему FOSS-решения важны для разработчиков

Свободное и открытое программное обеспечение (FOSS) предоставляет пользователю свободу аудитировать, изменять и распространять код, что имеет критическое значение для разработчиков, заботящихся о безопасности и гибкости своих инструментов. GitHub Copilot — это мощный инструмент, но он не является открытым и возлагает на пользователей некоторые ограничения, например, в части конфиденциальности данных. Открытые альтернативы решают эти вопросы, позволяя разработчикам настроить и использовать инструмент в полную силу с учетом их уникальных потребностей.

Пример: Табби и другие FOSS-альтернативы

Одной из наиболее заметных FOSS-альтернатив является Tabby. Это открытый и саморазворачиваемый AI-ассистент для программирования, который нацелен на обеспечение безопасности и адаптивности.

Tabby отличается следующими характеристиками:

  • Простота конфигурации: настройка с помощью простого TOML-конфига позволяет легко развернуть решение и адаптировать его под уникальные требования команды.
  • Открытый код: проект размещен на GitHub, предоставляя возможность аудитировать кодовую базу для обеспечения безопасности и соответствия.
  • Написано на Rust: это гарантирует высокую скорость и безопасность работы, что делает опыт программирования максимально комфортным и надежным.
  • Интеграции: существует поддержка большинства популярных редакторов и IDE, включая Vim и NeoVim.

Пример: Другие альтернативы

  • Tabnine: это еще один популярный инструмент, который имеет плагин для NeoVim. Хотя он не является полностью open-source, Tabnine акцентирует внимание на этичном использовании данных и уважении авторских прав. Инструмент предоставляет пользователям возможность использовать различные модели AI, что делает его гибким выбором для разнообразных задач.

  • Aider: работает в терминале и поддерживает различные модели LLM, включая те, которые можно запустить на собственной инфраструктуре. Это делает возможным не только автоматизации, но и кастомные интеграции.

  • Продолжение (Continue): больше подходит для пользователей VSCode и JetBrains и может быть использовано с саморазворачиваемыми моделями LLM. Хотя в настоящее время у него нет интеграции с Vim, он все же интересен благодаря возможности адаптации под специфические нужды.

Применение: Интеграция в рабочий процесс

Выбор соответствующего FOSS-решения для замены GitHub Copilot зависит от конкретных требований к рабочему процессу и технической инфраструктуры. Например, Tabby с его поддержкой Vim и NeoVim отлично подойдет для разработчиков, работающих в этих редакторах, и позволит сохранить высокий уровень производительности при работе с кодом. Саморазворачиваемость Tabby делает его особенно привлекательным для тех, кто хочет контролировать весь процесс от начала до конца.

Для интеграции подобных инструментов в рабочий процесс рекомендуется следующий подход:

  1. Аудит решения: перед внедрением оцените возможность инструмента через его открытый код и документацию.
  2. Тестирование: начните с установки инструмента в тестовой среде, чтобы ознакомиться с его возможностями и конфигурацией.
  3. Настройка под задачи: используйте возможности инструментов для настройки рабочих процессов под конкретные нужды вашей команды или проекта.
  4. Обучение команды: важно обучить всех членов команды использованию нового инструмента для обеспечения максимально эффективной работы.

Подобные инструменты, такие как Tabby и Tabnine, благодаря их открытости и гибкости, могут стать мощными помощниками в мире разработки, предоставляя свободу и контроль над операциями, которых так не хватает в закрытых платформах. Важно, чтобы команды уделяли время изучению доступных инструментов и оценке их преимуществ, чтобы максимально эффективно интегрировать их в свою работу.

Оцените материал
Добавить комментарий

Капча загружается...