# Дополнение кода TabbyML

TabbyML — это саморазвёртываемый сервер автодополнения кода на базе ИИ — полноценная замена GitHub Copilot, которая хранит ваш код полностью на вашей инфраструктуре. Лицензируется по Apache 2.0, работает на GPU Clore.ai и подключается к VS Code, JetBrains и Vim/Neovim через официальные расширения. Модели варьируются от StarCoder2-1B (вмещается на 4 ГБ VRAM) до StarCoder2-15B и DeepSeek-Coder для максимального качества.

{% hint style="success" %}
Все примеры запускаются на GPU-серверах, арендованных через [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

## Ключевые особенности

* **Альтернатива Copilot для саморазвёртывания** — ваш код никогда не покидает ваш сервер
* **Лицензия Apache 2.0** — бесплатно для коммерческого использования, без ограничений
* **Расширения для IDE** — VS Code, JetBrains (IntelliJ, PyCharm, WebStorm), Vim/Neovim
* **Несколько моделей** — StarCoder2 (1B/3B/7B/15B), DeepSeek-Coder, CodeLlama
* **Контекст репозитория** — извлечение кода на базе RAG для дополнений с учетом проекта
* **Развёртывание через Docker** — одна команда для запуска с поддержкой GPU
* **Панель администратора** — аналитика использования, управление моделями, управление пользователями
* **Интерфейс чата** — задавайте вопросы по кодированию помимо автодополнения

## Требования

| Компонент | Минимум        | Рекомендуется   |
| --------- | -------------- | --------------- |
| GPU       | RTX 3060 12 ГБ | RTX 3080 10 ГБ+ |
| VRAM      | 4 GB           | 10 ГБ           |
| ОЗУ       | 8 GB           | 16 GB           |
| Диск      | 20 ГБ          | 50 ГБ           |
| CUDA      | 11.8           | 12.1+           |

**Цены Clore.ai:** RTX 3080 ≈ $0.3–1/день · RTX 3060 ≈ $0.15–0.3/день

TabbyML лёгкий — даже RTX 3060 выполняет StarCoder2-7B с быстрой генерацией.

## Быстрый старт

### 1. Развёртывание с Docker

```bash
# StarCoder2-7B на GPU (рекомендуемый баланс качества и скорости)
docker run -d \
  --name tabby \
  --gpus all \
  -p 8080:8080 \
  -v /workspace/tabby-data:/data \
  tabbyml/tabby \
  serve \
  --model StarCoder2-7B \
  --device cuda

# Проверьте, что он работает
curl http://localhost:8080/v1/health
```

### 2. Выбор модели

| Модель              | VRAM    | Скорость      | Качество | Лучше всего для             |
| ------------------- | ------- | ------------- | -------- | --------------------------- |
| StarCoder2-1B       | \~3 ГБ  | Самая быстрая | Базовый  | RTX 3060, быстрые черновики |
| StarCoder2-3B       | \~5 ГБ  | Быстро        | Хорошо   | Общая разработка            |
| StarCoder2-7B       | \~8 ГБ  | Средне        | Высокий  | Рекомендуемый по умолчанию  |
| StarCoder2-15B      | \~16 ГБ | Медленнее     | Лучшее   | Сложные кодовые базы        |
| DeepSeek-Coder-6.7B | \~8 ГБ  | Средне        | Высокий  | Python, JS, TypeScript      |
| CodeLlama-7B        | \~8 ГБ  | Средне        | Хорошо   | Универсальное назначение    |

Переключать модели можно, изменив `--model` флаг:

```bash
# Более лёгкая модель для меньшего объёма VRAM
docker run -d --gpus all -p 8080:8080 \
  -v /workspace/tabby-data:/data \
  tabbyml/tabby serve --model StarCoder2-3B --device cuda

# Крупнейшая модель для лучшего качества
docker run -d --gpus all -p 8080:8080 \
  -v /workspace/tabby-data:/data \
  tabbyml/tabby serve --model StarCoder2-15B --device cuda
```

### 3. Установите расширения для IDE

**VS Code:**

1. Откройте расширения (Ctrl+Shift+X)
2. Найдите "Tabby" и установите официальное расширение
3. Откройте Параметры → найдите "Tabby"
4. Укажите эндпоинт сервера: `http://<your-clore-ip>:8080`

**JetBrains (IntelliJ, PyCharm, WebStorm):**

1. Настройки → Плагины → Маркетплейс
2. Найдите "Tabby" и установите
3. Настройки → Инструменты → Tabby → Эндпоинт сервера: `http://<your-clore-ip>:8080`

**Vim/Neovim:**

```vim
" С использованием vim-plug
Plug 'TabbyML/vim-tabby'

" Конфигурация в init.vim / .vimrc
let g:tabby_server_url = 'http://<your-clore-ip>:8080'
```

### 4. Доступ к панели администратора

Откройте `http://<your-clore-ip>:8080` в браузере. Панель предоставляет:

* Статистика использования дополнений
* Состояние моделей и показатели производительности
* Управление пользователями и API-токенами
* Конфигурация индексирования репозиториев

## Примеры использования

### Добавить контекст репозитория (RAG)

Проиндексируйте ваш репозиторий для дополнений с учётом проекта:

```bash
# Через админ API
curl -X POST http://localhost:8080/v1beta/repositories \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-project",
    "git_url": "file:///workspace/my-project"
  }'

# Tabby индексирует репозиторий и использует его для дополнений с учётом контекста
```

### Используйте Chat API

```bash
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Write a Python function to parse CSV files with error handling"}
    ]
  }'
```

### Запуск с аутентификацией

```bash
# Сгенерируйте токен аутентификации через панель администратора, затем:
docker run -d --gpus all -p 8080:8080 \
  -v /workspace/tabby-data:/data \
  tabbyml/tabby serve \
  --model StarCoder2-7B \
  --device cuda

# Установите токен в настройках расширения IDE
# или используйте заголовок Authorization:
curl -H "Authorization: Bearer <token>" http://localhost:8080/v1/health
```

### Запуск без Docker (прямая установка)

```bash
# Установка через Homebrew (Linux)
curl -fsSL https://raw.githubusercontent.com/TabbyML/tabby/main/install.sh | bash

# Или cargo install
cargo install tabby

# Запуск напрямую
tabby serve --model StarCoder2-7B --device cuda --port 8080
```

## Сравнение стоимости

| Решение             | Ежемесячная стоимость | Конфиденциальность | Задержка |
| ------------------- | --------------------- | ------------------ | -------- |
| GitHub Copilot      | $19/пользователь      | ❌ Облако           | \~200 мс |
| TabbyML на RTX 3060 | \~$5–9/мес            | ✅ Самостоятельно   | \~50 мс  |
| TabbyML на RTX 3080 | \~$9–30/мес           | ✅ Самостоятельно   | \~30 мс  |
| TabbyML на RTX 4090 | \~$15–60/мес          | ✅ Самостоятельно   | \~15 мс  |

Для небольшой команды (3–5 разработчиков) одна RTX 3080 на Clore.ai заменяет несколько подписок Copilot за часть стоимости.

## Советы

* **StarCoder2-7B — оптимальный выбор** — лучшее соотношение качества и объёма VRAM для большинства команд
* **Включите контекст репозитория** — индексирование RAG значительно улучшает релевантность дополнений для больших кодовых баз
* **Откройте порт 8080 безопасно** — используйте SSH-туннелирование или обратный прокси с TLS для продакшен-развёртываний
* **Мониторьте использование VRAM** — `nvidia-smi` чтобы убедиться, что модель помещается с запасом для пакетной обработки при инференсе
* **Используйте API дополнений** для интеграции в CI/CD — автоматизируйте предложения по обзору кода
* **Tabby поддерживает нескольких пользователей** — панель администратора позволяет создавать API-токены для каждого разработчика
* **Задержка имеет значение** — выбирайте сервер Clore.ai, географически близкий к вашей команде, для самых быстрых дополнений

## Устранение неполадок

| Проблема                                | Решение                                                                                 |
| --------------------------------------- | --------------------------------------------------------------------------------------- |
| Контейнер Docker сразу завершает работу | Проверьте логи: `docker logs tabby`. Вероятно, VRAM недостаточно для модели             |
| Расширение IDE не подключается          | Проверьте URL-эндпоинта, проверьте брандмауэр/перенаправление портов на Clore.ai        |
| Медленные дополнения                    | Используйте более лёгкую модель или убедитесь, что GPU не используется для других задач |
| `CUDA — недостаточно памяти`            | Переключитесь на модель меньше (StarCoder2-3B или 1B)                                   |
| Индексирование репозитория зависло      | Проверьте место на диске и убедитесь, что git-репозиторий доступен                      |
| Токен аутентификации отклонён           | Перегенерируйте токен в панели администратора, обновите расширение IDE                  |
| Высокая задержка от удалённой IDE       | Используйте SSH-туннель: `ssh -L 8080:localhost:8080 root@<clore-ip>`                   |

## Ресурсы

* [TabbyML на GitHub](https://github.com/TabbyML/tabby)
* [Документация TabbyML](https://tabby.tabbyml.com)
* [Расширение для VS Code](https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby)
* [CLORE.AI Marketplace](https://clore.ai/marketplace)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/instrumenty-ai-kodinga/tabby.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
