LocalPilot — ваш персональный Copilot без интернета

25 Feb, 2024

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

3,355
🔱 139
👥 24

Представьте ситуацию: вы в самолете, поезде или просто в зоне с плохим интернетом, но вам нужно продолжать писать код. Официальный GitHub Copilot без подключения к сети не работает. Знакомая проблема? Именно для таких случаев создан LocalPilot — локальная версия Copilot, которая работает прямо на вашем MacBook.

Что такое LocalPilot?

LocalPilot — это проект с открытым исходным кодом, который эмулирует работу GitHub Copilot, но полностью локально. Он использует модели машинного обучения (в частности, llama.cpp/GGML), чтобы предлагать автодополнения кода прямо в вашем VS Code, не требуя подключения к серверам GitHub.

Автор проекта, Дэниел Гросс, честно признает: это демонстрация «очень неэффективной реализации», но она уже сейчас работает достаточно хорошо для базовых задач.

Кому это нужно?

  • Разработчикам, часто работающим без стабильного интернета
  • Тем, кто беспокоится о конфиденциальности своего кода
  • Любителям экспериментов с локальными языковыми моделями
  • Владельцам мощных MacBook (M2 Max и выше)

Как это работает: под капотом

LocalPilot состоит из трех основных компонентов:

  1. Локальный сервер (на Python), который обрабатывает запросы от VS Code
  2. Языковые модели (скачиваются при первом запуске)
  3. Конфигурация VS Code, перенаправляющая запросы Copilot на локальный сервер

Поддерживаются модели разного размера:

Реклама
  • 1b — для простого автодополнения
  • 7b — для более сложных подсказок
  • 34b — для полноценных фрагментов кода (но требует серьезных ресурсов)

Установка за 3 шага

  1. Настраиваем VS Code, добавив в settings.json:
"github.copilot.advanced": {
    "debug.testOverrideProxyUrl": "http://localhost:5001",
    "debug.overrideProxyUrl": "http://localhost:5001"
}
  1. Создаем виртуальное окружение и устанавливаем зависимости:
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py --setup  # скачиваем модели
  1. Запускаем сервер:
python app.py

Готово! Теперь Copilot в вашем VS Code будет работать локально.

Плюсы и минусы

Преимущества:

  • Работает без интернета (идеально для путешествий)
  • Полная приватность — ваш код никуда не уходит
  • Возможность кастомизации моделей под свои нужды
  • Открытый исходный код (MIT лицензия)

⚠️ Ограничения:

  • Требует мощного железа (особенно для больших моделей)
  • Качество подсказок пока уступает облачному Copilot
  • Только для Mac (хотя теоретически можно портировать)
  • Нет простого .app-бандла (пока что)

Автор отмечает, что проект особенно полезен, когда:

  • У вас плохой интернет
  • Вы работаете в самолете
  • Используете телефон в качестве модема

Практическое применение

Хотя LocalPilot пока не заменит полноценный Copilot, он отлично справляется с:

  1. Базовым автодополнением — продолжение строк, простые методы
  2. Шаблонным кодом — стандартные конструкции, импорты
  3. Документированием — генерация комментариев

Для сложных задач автор рекомендует использовать 7b модель, а для простых — 1b, чтобы экономить ресурсы.

Будущее проекта

В README автор предлагает несколько направлений для развития:

  • Создание простого Mac-приложения (пока требует работы в терминале)
  • Оптимизация производительности (текущая реализация неидеальна)
  • Модель-маршрутизатор, автоматически выбирающий подходящую модель под задачу

Если вам интересно поучаствовать — проект открыт для Pull Request'ов!

Вывод: стоит ли пробовать?

LocalPilot — это любопытный эксперимент на стыке локальных языковых моделей и инструментов разработчика. Он не заменит облачный Copilot, но:

  • Отлично подойдет как резервный вариант при плохом интернете
  • Интересен для изучения работы локальных LLM
  • Может быть отправной точкой для ваших собственных модификаций

Попробуйте, если у вас Mac с Apple Silicon и желание поэкспериментировать с локальным ИИ для разработки!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.