Ikmav

Ikmav

Пикабушник
100 рейтинг 0 подписчиков 0 подписок 1 пост 0 в горячем

Свой Copilot в «шкафу»: приватный AIагент и автокомплит без подписки

Введение

Я тестировал несколько подходов для локального запуска LLM и остановился на связке llama.cpp + Continue + Roo как рабочем варианте для приватного агента и автокомплита в IDE. В статье — оптимальная установка для macOS (Apple Silicon), выбор моделей в формате GGUF, запуск локальных серверов, настройка Continue и Roo, а также практические советы по автокомплиту и чек‑лист соответствия требованиям Хабра.

Свой Copilot в «шкафу»: приватный AIагент и автокомплит без подписки

Что проверялось и почему выбрал этот путь

  • Ollama — удобна, но на моём Mac заметно выше потребление ресурсов и нагрев при длительной работе.

  • MLX / GUI‑оболочки — мало плагинов для IDE, недостаточно гибкие для автокомплита.

  • Облачные сервисы — не подходят по требованиям приватности и желанию работать без подписки.

Вывод: связка llama.cpp (локальный движок, поддержка GGUF/квантования) + Continue (локальный провайдер/конфиг) + Roo (IDE‑плагин) даёт баланс приватности, скорости и интеграции.


Установка llama.cpp: оптимальная инструкция для macOS (Apple Silicon)

Подготовка окружения

Полную инструкцию можно прочитать тут

# Установить Xcode Command Line Tools
xcode-select --install

# Проверить clang
clang --version

Сборка llama.cpp с Metal (Apple Silicon)

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build
cmake -B build -DGGML_METAL=ON
cmake --build build --config Release

# Проверка
./build/bin/llama-cli --help

Пояснение: GGML_METAL=ON включает аппаратное ускорение через Metal — существенно ускоряет инференс на Apple Silicon.


Выбор моделей и формат GGUF

  • Агент (диалог/планирование): крупная квантованная сборка (например, 30–32B в q4_k/awq).

  • Автокомплит (IDE): лёгкая модель 3B–7B в GGUF‑q8/q4 для низкой задержки.

  • Примечание: мультимодальные (VL) сборки содержат vision‑энкодер — если вы не используете изображения, берите текстовую/кодовую сборку.

    Про то что такое квантование моделей можно прочитать тут


Скачивание и размещение моделей

  1. Скачайте GGUF‑файлы в llama.cpp/models.

  2. Для Hugging Face используйте huggingface_hub или git lfs (если репозиторий требует LFS).

  3. Проверьте лицензию и целостность файлов перед использованием.


Запуск моделей как локальный сервер

Проверка свободных портов (macOS)

sudo lsof -nP -iTCP -sTCP:LISTEN

Примеры запуска (llama-server)

cd llama.cpp

# Агент (порт 9001)
./build/bin/llama-server -m models/qwen2.5-coder-30b-q4_k_s.gguf --port 9001 --ctx-size 30000

# Автокомплит (порт 9002)
./build/bin/llama-server -m models/qwen2.5-coder-3b-instruct-q8_0.gguf --port 9002 --ctx-size 30000

Пояснения:

  • --ctx-size увеличивает контекст; подбирайте по модели и доступной памяти.

  • Если порт занят — найдите PID через lsof и аккуратно завершите процесс (kill <PID>), только если уверены.


Настройка Continue (локальный конфиг)

В Continue → Settings → Local Config используйте такой конфиг:

yaml

name: Local Config
version: 1.0.0
schema: v1

models:
- name: Qwen2.5 Coder 30B Local (llama.cpp)
provider: llama.cpp
model: qwen2.5-coder-30b-q4_k_s
apiKey: ""
defaultCompletionOptions:
maxTokens: 16384
contextLength: 32768
apiBase: http://127.0.0.1:9001
roles:
- chat
- edit
- apply

- name: Qwen2.5 Coder 7B (Fast)
provider: llama.cpp
model: qwen2.5-coder-3b-instruct-q8_0
apiBase: http://127.0.0.1:9002
apiKey: ""
roles:
- autocomplete
- embed

Примечание: локальный сервер обычно не требует apiKey; оставьте пустым.


Настройка Roo / IDE

  1. Установите Roo (VS Code) или RunVSAgent (JetBrains) из магазина плагинов.

  2. Добавьте OpenAI‑compatible провайдера: http://127.0.0.1:9001. В поле пароля можно поставить любое значение для локального теста.

  3. Пример запроса: «Проверь main.go и опиши логику» — плагин отправит контекст локальному агенту и вернёт ответ в IDE.


Практические советы по автокомплиту

  • Контекст: отправляйте только последние N строк (например, 200–1000 токенов), чтобы снизить задержку.

  • Параметры генерации: temperature: 0.0–0.2, top_p: 0.7–0.95, max_tokens: 64–256 для автодополнения.

  • System prompt: задайте роль «assistant for code completion» и добавьте правила форматирования (например, возвращать только код без лишних пояснений при автодополнении).

  • Квантование: сравните q4_1, q4_k, q8_0 и AWQ — разные методы дают разный компромисс между скоростью и качеством.


Что не подошло и почему

  • Ollama — удобна, но на моём Mac потребляла больше ресурсов и сильнее грелась при длительной работе.

  • MLX / GUI‑оболочки — мало плагинов для IDE, не хватало гибкости для автокомплита.

  • Облачные решения — не соответствуют требованиям приватности и отсутствию подписки.


Заключение

Локальная связка llama.cpp + Continue + Roo позволяет получить приватный Copilot без подписки: тяжёлая квантованная модель для агента и лёгкая — для автокомплита. На Apple Silicon важно собирать llama.cpp с Metal‑ускорением и тестировать разные методы квантования, чтобы найти баланс между скоростью и качеством. Если вам важна приватность и контроль над данными, этот путь даёт рабочее, гибкое и расширяемое решение для ежедневной разработки.


Ссылки и ресурсы

  • llama.cpp — репозиторий проекта (GitHub)

  • Hugging Face — репозитории моделей и релизы GGUF

  • Continue — документация и настройки плагина/приложения

  • Roo / RunVSAgent — плагины для VS Code / JetBrains

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества