> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/instrumenty-ai-kodinga/tabby.md).

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

Самостоятельно хостите TabbyML как приватную альтернативу GitHub Copilot на Clore.ai

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](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 ГБ           | 10 ГБ           |
| ОЗУ       | 8 ГБ           | 16 ГБ           |
| Диск      | 20 ГБ          | 50 ГБ           |
| CUDA      | 12.8+          | 12.8+           |

**Цены Clore.ai:** RTX 3080 ≈ $0.05–0.19/ч · RTX 3060 ≈ $0.03–0.07/ч

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. Откройте Extensions (Ctrl+Shift+X)
2. Найдите «Tabby» и установите официальное расширение
3. Откройте настройки → найдите «Tabby»
4. Укажите конечную точку сервера: `http://<your-clore-ip>:8080`

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

1. Настройки → Плагины → Marketplace
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 индексирует репозиторий и использует его для автодополнения с учётом контекста
```

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

```bash
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \\
  -d '{
    "messages": [
      {"role": "user", "content": "Напишите функцию Python для разбора CSV-файлов с обработкой ошибок"}
    ]
  }'
```

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

```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 конечной точки, firewall и проброс портов на Clore.ai                            |
| Медленное автодополнение           | Используйте меньшую модель или убедитесь, что GPU не используется совместно с другими задачами |
| `CUDA out of memory`               | Переключитесь на меньшую модель (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](https://clore.ai/marketplace)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
