# AI-кодинг Continue.dev

Continue.dev — это инструмент с открытым исходным кодом для помощи при программировании на базе ИИ для VS Code и сред JetBrains с более чем 25K звёзд на GitHub. The **расширение работает на вашем локальном компьютере** (или в вашей IDE), но оно подключается к серверу моделей для вывода. Направляя Continue.dev на мощный GPU, арендованный через Clore.ai, вы получаете:

* **Модели высшего класса для кодирования** (34B+ параметров), которые не поместятся на вашем ноутбуке
* **Полная приватность** — код остаётся в инфраструктуре, которой вы управляете
* **Гибкие расходы** — платите только пока кодируете (\~$0.20–0.50/ч против $19/мес за Copilot)
* **API совместимый с OpenAI** — Continue.dev бесшовно подключается к Ollama, vLLM или TabbyML

Это руководство сосредоточено на настройке **GPU-бэкенда Clore.ai** (Ollama или vLLM), к которому подключается ваше локальное расширение Continue.dev.

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

{% hint style="info" %}
**Архитектура**: Ваша IDE (с расширением Continue.dev) → Интернет → сервер Clore.ai с GPU (запущен Ollama / vLLM / TabbyML) → локальный вывод модели. Никакой код никогда не касается стороннего API.
{% endhint %}

## Обзор

| Свойство                 | Детали                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------ |
| **Проект**               | [continuedev/continue](https://github.com/continuedev/continue)                                        |
| **Лицензия**             | Apache 2.0                                                                                             |
| **Звезды на GitHub**     | 25K+                                                                                                   |
| **Поддержка IDE**        | VS Code, JetBrains (IntelliJ, PyCharm, WebStorm, GoLand и т.д.)                                        |
| **Файл конфигурации**    | `~/.continue/config.json`                                                                              |
| **Варианты бэкенда**     | Ollama, vLLM, TabbyML, LM Studio, llama.cpp, API совместимые с OpenAI                                  |
| **Сложность**            | Легко (установка расширения) / Средне (самостоятельный бэкенд)                                         |
| **Требуется GPU?**       | На сервере Clore.ai (да); на вашем ноутбуке (нет)                                                      |
| **Ключевые возможности** | Автодополнение, чат, режим редактирования, контекст кодовой базы (RAG), пользовательские slash-команды |

### Рекомендуемые модели для кодирования

| Модель                | VRAM    | Сильная сторона                   | Примечания                                              |
| --------------------- | ------- | --------------------------------- | ------------------------------------------------------- |
| `codellama:7b`        | \~6 GB  | Быстрое автодополнение            | Хорошая отправная точка                                 |
| `codellama:13b`       | \~10 GB | Сбалансированная                  | Лучшее соотношение качества/скорости для автодополнения |
| `codellama:34b`       | \~22 GB | Лучшее качество CodeLlama         | Требует RTX 3090 / A100                                 |
| `deepseek-coder:6.7b` | \~5 GB  | Специалист по Python/JS           | Отлично для веб-разработки                              |
| `deepseek-coder:33b`  | \~22 GB | Проведёт в топе среди open source | Соперничает с GPT-4 по коду                             |
| `qwen2.5-coder:7b`    | \~6 GB  | Мультилингвальный код             | Силен в 40+ языках                                      |
| `qwen2.5-coder:32b`   | \~22 GB | Современное состояние искусства   | Лучшая открытая модель для кодирования 2024             |
| `starcoder2:15b`      | \~12 GB | Специалист по дополнению кода     | Поддержка FIM (fill-in-the-middle)                      |

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

### Требования к серверу Clore.ai

| Уровень                | GPU       | VRAM  | ОЗУ   | Диск   | Цена      | Модели                                             |
| ---------------------- | --------- | ----- | ----- | ------ | --------- | -------------------------------------------------- |
| **Бюджет**             | RTX 3060  | 12 GB | 16 GB | 40 GB  | \~$0.10/ч | CodeLlama 7B, DeepSeek 6.7B, Qwen2.5-Coder 7B      |
| **Рекомендуется**      | RTX 3090  | 24 GB | 32 GB | 80 GB  | \~$0.20/ч | CodeLlama 34B, DeepSeek 33B, Qwen2.5-Coder 32B     |
| **Производительность** | RTX 4090  | 24 GB | 32 GB | 80 GB  | \~$0.35/ч | Те же модели, что и выше, более быстрая инференция |
| **Мощность**           | A100 40GB | 40 GB | 64 GB | 120 GB | \~$0.60/ч | Несколько моделей 34B одновременно                 |
| **Максимум**           | A100 80GB | 80 GB | 80 GB | 200 GB | \~$1.10/ч | 70B модели (CodeLlama 70B)                         |

### Локальные требования (ваша машина)

* VS Code или любая IDE JetBrains
* Установлено расширение Continue.dev
* Стабильное интернет-соединение с вашим сервером Clore.ai
* **Локальный GPU не требуется** — весь вывод происходит на Clore.ai

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

### Часть 1: Настройка бэкенда Clore.ai

#### Вариант A — бэкенд Ollama (рекомендуется для большинства пользователей)

Ollama — самый простой бэкенд для Continue.dev: простая настройка, отличное управление моделями, API совместимое с OpenAI.

```bash
# 1. Подключитесь по SSH к вашему серверу Clore.ai
ssh root@<clore-server-ip> -p <port>

# 2. Запустите Ollama с поддержкой GPU
docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v /workspace/ollama:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama

# 3. Проверьте, что Ollama запущен
curl http://localhost:11434/

# 4. Загрузите модель для кодирования (выбирайте в зависимости от VRAM)
# Для 12GB VRAM (RTX 3060):
docker exec ollama ollama pull codellama:13b

# Для 24GB VRAM (RTX 3090 / RTX 4090):
docker exec ollama ollama pull qwen2.5-coder:32b
# или:
docker exec ollama ollama pull deepseek-coder:33b

# 5. Загрузите быструю модель для автодополнения (отдельно от чат-модели)
docker exec ollama ollama pull starcoder2:3b   # Очень быстрая, отлично подходит для FIM-автодополнения

# 6. Убедитесь, что модели доступны
docker exec ollama ollama list

# 7. Протестируйте инференцию
docker exec ollama ollama run qwen2.5-coder:32b "Write a Python function to binary search a sorted list"
```

Чтобы открыть Ollama для внешнего доступа (чтобы ваша локальная IDE могла подключиться):

```bash
# Перезапустите Ollama с включённым внешним доступом
docker stop ollama && docker rm ollama

docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v /workspace/ollama:/root/.ollama \
  -e OLLAMA_HOST=0.0.0.0 \
  --restart unless-stopped \
  ollama/ollama

# Тест с вашей ЛОКАЛЬНОЙ машины:
curl http://<clore-server-ip>:11434/api/tags
```

{% hint style="warning" %}
Открытие порта 11434 публично по умолчанию не имеет аутентификации. Для боевого использования настройте SSH-туннель вместо этого (см. [Советы и лучшие практики](#tips--best-practices)).
{% endhint %}

#### Вариант B — бэкенд vLLM (высокая пропускная способность / совместимый с OpenAI)

vLLM обеспечивает более быструю инференцию и поддержку многопользовательского режима. Идеален, если несколько разработчиков используют один сервер Clore.ai.

```bash
# Запустите vLLM с API, совместимым с OpenAI
docker run -d \
  --name vllm \
  --gpus all \
  -p 8000:8000 \
  -v /workspace/hf-models:/root/.cache/huggingface \
  -e HF_TOKEN="your-huggingface-token" \
  --restart unless-stopped \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen2.5-Coder-32B-Instruct \
  --dtype auto \
  --max-model-len 32768 \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.90 \
  --served-model-name qwen2.5-coder-32b

# Для мульти-GPU (например, два RTX 3090):
docker run -d \
  --name vllm \
  --gpus all \
  -p 8000:8000 \
  -v /workspace/hf-models:/root/.cache/huggingface \
  -e HF_TOKEN="your-huggingface-token" \
  vllm/vllm-openai:latest \
  --model deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct \
  --tensor-parallel-size 2 \
  --dtype auto \
  --max-model-len 65536 \
  --served-model-name deepseek-coder-v2

# Протестируйте API
curl http://localhost:8000/v1/models
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-coder-32b",
    "messages": [{"role": "user", "content": "Write a hello world in Rust"}],
    "max_tokens": 200
  }'
```

#### Вариант C — бэкенд TabbyML (специалист по FIM-автодополнению)

TabbyML обеспечивает превосходное fill-in-the-middle (FIM) автодополнение — встроенные подсказки-«ghost-text». См. документацию [TabbyML](https://tabby.tabbyml.com/) для полной информации по настройке.

```bash
# Быстрая настройка TabbyML для автодополнения в Continue.dev
docker run -d \
  --name tabby \
  --gpus all \
  -p 8080:8080 \
  -v /workspace/tabby-data:/data \
  --restart unless-stopped \
  tabbyml/tabby serve \
  --model StarCoder2-7B \
  --chat-model Mistral-7B \
  --device cuda

# Проверьте
curl http://localhost:8080/v1/health
```

### Часть 2: Установите расширение Continue.dev

**VS Code:**

1. Откройте панель расширений (`Ctrl+Shift+X` / `Cmd+Shift+X`)
2. Поиск **"Continue"** — установите официальное расширение от Continue (continuedev)
3. Кликните по иконке Continue в боковой панели (или `Ctrl+Shift+I`)

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

1. `File → Settings → Plugins → Marketplace`
2. Поиск **"Continue"** и установите
3. Перезапустите IDE; панель Continue появится в правой боковой панели

### Часть 3: Настройте Continue.dev для использования Clore.ai

Отредактируйте `~/.continue/config.json` на вашей **локальной машине**:

```json
{
  "models": [
    {
      "title": "Clore.ai — Qwen2.5-Coder 32B",
      "provider": "ollama",
      "model": "qwen2.5-coder:32b",
      "apiBase": "http://<clore-server-ip>:11434",
      "contextLength": 32768,
      "completionOptions": {
        "temperature": 0.1,
        "topP": 0.95,
        "maxTokens": 4096
      }
    },
    {
      "title": "Clore.ai — CodeLlama 13B (fast)",
      "provider": "ollama",
      "model": "codellama:13b",
      "apiBase": "http://<clore-server-ip>:11434",
      "contextLength": 16384
    }
  ],
  "tabAutocompleteModel": {
    "title": "StarCoder2 3B (autocomplete)",
    "provider": "ollama",
    "model": "starcoder2:3b",
    "apiBase": "http://<clore-server-ip>:11434"
  },
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text",
    "apiBase": "http://<clore-server-ip>:11434"
  },
  "contextProviders": [
    { "name": "code" },
    { "name": "docs" },
    { "name": "diff" },
    { "name": "terminal" },
    { "name": "problems" },
    { "name": "folder" },
    { "name": "codebase" }
  ],
  "slashCommands": [
    { "name": "edit", "description": "Редактировать выделенный код" },
    { "name": "comment", "description": "Добавить комментарии к коду" },
    { "name": "share", "description": "Экспортировать разговор в формате markdown" },
    { "name": "cmd", "description": "Сгенерировать команду для терминала" },
    { "name": "commit", "description": "Сгенерировать сообщение коммита git" }
  ]
}
```

Для **бэкенда vLLM** вместо Ollama:

```json
{
  "models": [
    {
      "title": "Clore.ai — DeepSeek Coder 33B (vLLM)",
      "provider": "openai",
      "model": "deepseek-coder-v2",
      "apiBase": "http://<clore-server-ip>:8000/v1",
      "apiKey": "not-required",
      "contextLength": 65536,
      "completionOptions": {
        "temperature": 0.0,
        "maxTokens": 8192
      }
    }
  ]
}
```

Для **Бэкенд TabbyML** (только автодополнение):

```json
{
  "tabAutocompleteModel": {
    "title": "Clore.ai — TabbyML StarCoder2",
    "provider": "openai",
    "model": "StarCoder2-7B",
    "apiBase": "http://<clore-server-ip>:8080/v1",
    "apiKey": "auth-token-if-set"
  }
}
```

## Конфигурация

### Настройка SSH-туннеля (безопасный удалённый доступ)

Вместо того чтобы открывать порты публично, используйте SSH-туннель с вашей локальной машины:

```bash
# Откройте SSH-туннель: локальный порт 11434 → порт 11434 на Clore.ai сервере
ssh -N -L 11434:localhost:11434 root@<clore-server-ip> -p <clore-ssh-port>

# Держите туннель живым (добавьте в ~/.ssh/config):
Host clore-coding
  HostName <clore-server-ip>
  Port <clore-ssh-port>
  User root
  LocalForward 11434 localhost:11434
  LocalForward 8000 localhost:8000
  ServerAliveInterval 60
  ServerAliveCountMax 3

# Подключитесь с помощью:
ssh -N clore-coding

# Затем в config.json используйте localhost:
# "apiBase": "http://localhost:11434"
```

### Постоянный туннель с autossh

```bash
# Установите autossh на вашей локальной машине (Linux/macOS)
sudo apt install autossh   # Ubuntu/Debian
brew install autossh       # macOS

# Запустите постоянный туннель с авто-переподключением
autossh -M 0 -N \
  -o "ServerAliveInterval 30" \
  -o "ServerAliveCountMax 3" \
  -L 11434:localhost:11434 \
  root@<clore-server-ip> -p <clore-ssh-port>

# Добавьте в systemd для автоматического запуска при загрузке (Linux)
cat > ~/.config/systemd/user/clore-tunnel.service << 'EOF'
[Unit]
Description=SSH tunnel to Clore.ai coding server
After=network.target

[Service]
ExecStart=autossh -M 0 -N \
  -o StrictHostKeyChecking=accept-new \
  -o ServerAliveInterval=30 \
  -o ServerAliveCountMax=3 \
  -L 11434:localhost:11434 \
  root@CLORE_IP -p CLORE_PORT
Restart=always
RestartSec=10

[Install]
WantedBy=default.target
EOF

systemctl --user enable clore-tunnel
systemctl --user start clore-tunnel
```

### Загрузка нескольких моделей для разных задач

Для RTX 3090 (24 GB) вы можете запускать большую чат-модель и маленькую модель для автодополнения одновременно:

```bash
# На сервере Clore.ai:

# Загрузите модели
docker exec ollama ollama pull qwen2.5-coder:32b      # Чат (22 GB)
docker exec ollama ollama pull starcoder2:3b           # Автодополнение (2 GB)
docker exec ollama ollama pull nomic-embed-text        # Эмбеддинги (0.5 GB)

# Ollama автоматически управляет переключением моделей
# Все три поместятся в 24 GB VRAM при умном кэшировании

# Мониторьте использование VRAM
nvidia-smi --query-gpu=memory.used,memory.free --format=csv -l 5
```

### Индексация кодовой базы (RAG для вашего репозитория)

Continue.dev может индексировать вашу кодовую базу для контекстно-зависимых подсказок. Загрузите модель эмбеддингов:

```bash
# На сервере Clore.ai — добавьте модель эмбеддингов в Ollama
docker exec ollama ollama pull nomic-embed-text

# В config.json (локально) эмбеддинги уже настроены выше.
# Continue.dev автоматически индексирует открытую рабочую область.
# Запустить ручную переиндексацию: Ctrl+Shift+P → "Continue: Index Codebase"
```

## Ускорение с помощью GPU

### Отслеживание производительности инференции

```bash
# На вашем сервере Clore.ai — наблюдайте за GPU во время сессий кодирования
watch -n 1 nvidia-smi

# Проверьте токены в секунду (логи Ollama)
docker logs ollama --tail 20 -f

# Подробная статистика GPU
nvidia-smi dmon -s u -d 2

# Разбивка памяти
nvidia-smi --query-gpu=name,memory.used,memory.free,utilization.gpu \
  --format=csv,noheader -l 5
```

### Ожидаемая производительность по GPU

| GPU           | Модель                   | Контекст | Токенов/сек (прибл.) |
| ------------- | ------------------------ | -------- | -------------------- |
| RTX 3060 12GB | CodeLlama 7B             | 8K       | \~40–60 т/с          |
| RTX 3060 12GB | DeepSeek-Coder 6.7B      | 8K       | \~45–65 т/с          |
| RTX 3090 24GB | Qwen2.5-Coder 32B (Q4)   | 16K      | \~15–25 т/с          |
| RTX 3090 24GB | DeepSeek-Coder 33B (Q4)  | 16K      | \~15–22 т/с          |
| RTX 4090 24GB | Qwen2.5-Coder 32B (Q4)   | 16K      | \~25–40 т/с          |
| A100 40GB     | Qwen2.5-Coder 32B (FP16) | 32K      | \~35–50 т/с          |
| A100 80GB     | CodeLlama 70B (Q4)       | 32K      | \~20–30 т/с          |

Для автодополнения (fill-in-the-middle), **starcoder2:3b** или **codellama:7b** достигайте 50–100 т/с — достаточно быстро, чтобы казаться мгновенным в IDE.

### Настройка Ollama для лучшей производительности

```bash
# На сервере Clore.ai — оптимизируйте настройки Ollama
docker stop ollama && docker rm ollama

docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v /workspace/ollama:/root/.ollama \
  -e OLLAMA_HOST=0.0.0.0 \
  -e OLLAMA_NUM_PARALLEL=2 \
  -e OLLAMA_MAX_LOADED_MODELS=2 \
  -e OLLAMA_FLASH_ATTENTION=1 \
  --restart unless-stopped \
  ollama/ollama

# OLLAMA_NUM_PARALLEL=2: обслуживать 2 запроса одновременно
# OLLAMA_MAX_LOADED_MODELS=2: держать 2 модели в памяти GPU
# OLLAMA_FLASH_ATTENTION=1: включить flash attention (быстрее, меньше памяти)
```

## Советы и лучшие практики

### Используйте разные модели для разных задач

Настройте Continue.dev с специализированными моделями для каждого типа задачи — UI позволяет переключать модели в процессе разговора:

```json
{
  "models": [
    {
      "title": "Chat — Qwen2.5-Coder 32B",
      "provider": "ollama",
      "model": "qwen2.5-coder:32b",
      "apiBase": "http://localhost:11434",
      "contextLength": 32768,
      "description": "Лучше для сложных вопросов, ревью кода, архитектурных решений"
    },
    {
      "title": "Fast — CodeLlama 7B",
      "provider": "ollama",
      "model": "codellama:7b",
      "apiBase": "http://localhost:11434",
      "contextLength": 8192,
      "description": "Быстрые ответы, простые дополнения, низкая задержка"
    },
    {
      "title": "Autocomplete — StarCoder2 3B",
      "provider": "ollama",
      "model": "starcoder2:3b",
      "apiBase": "http://localhost:11434",
      "contextLength": 4096,
      "description": "Встроенные подсказки-ghost-text"
    }
  ]
}
```

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

| Решение               | Ежемесячная стоимость (использование 8ч/день) | Приватность        | Качество модели       |
| --------------------- | --------------------------------------------- | ------------------ | --------------------- |
| GitHub Copilot        | $19/пользователь/мес                          | ❌ Облако Microsoft | GPT-4o (закрытая)     |
| Cursor Pro            | $20/пользователь/мес                          | ❌ Облако Cursor    | Claude 3.5 (закрытая) |
| RTX 3060 на Clore.ai  | \~$24/мес                                     | ✅ Ваш сервер       | CodeLlama 13B         |
| RTX 3090 на Clore.ai  | \~48$/мес                                     | ✅ Ваш сервер       | Qwen2.5-Coder 32B     |
| RTX 4090 на Clore.ai  | \~84$/мес                                     | ✅ Ваш сервер       | Qwen2.5-Coder 32B     |
| A100 80GB на Clore.ai | \~264$/мес                                    | ✅ Ваш сервер       | CodeLlama 70B         |

Для команды из 3+ разработчиков, разделяющих один RTX 3090 на Clore.ai (\~48$/мес всего), стоимость на пользователя лучше, чем у Copilot, при этом предоставляется более крупная приватная модель.

### Отключайте, когда не кодируете

Clore.ai взимает плату посуточно по часам. Используйте простой скрипт для запуска/остановки сервера:

```bash
# Сохраните эти файлы как локальные скрипты

# start-coding-server.sh
#!/bin/bash
echo "Открываю SSH-туннель к Clore.ai..."
ssh -N -f -L 11434:localhost:11434 clore-coding
echo "Туннель открыт. Continue.dev готов."

# stop-coding-server.sh
#!/bin/bash
echo "Закрываю SSH-туннель..."
pkill -f "ssh.*clore-coding"
echo "Туннель закрыт. Не забудьте остановить заказ на Clore.ai, чтобы прекратить выставление счетов!"
```

### Используйте пользовательские команды Continue.dev

Добавьте пользовательские команды со слэшом в `config.json` для распространённых рабочих процессов разработки:

```json
{
  "customCommands": [
    {
      "name": "review",
      "prompt": "Проверьте этот код на наличие ошибок, проблем с безопасностью и производительностью. Будьте конкретны и давайте практические рекомендации.",
      "description": "Код-ревью"
    },
    {
      "name": "test",
      "prompt": "Напишите комплексные модульные тесты для этого кода. Включите пограничные случаи. Используйте тот же язык/фреймворк, что и код.",
      "description": "Генерация тестов"
    },
    {
      "name": "docstring",
      "prompt": "Добавьте понятные, исчерпывающие докстринги/комментарии к этому коду, следуя лучшим практикам для данного языка.",
      "description": "Добавить документацию"
    },
    {
      "name": "optimize",
      "prompt": "Оптимизируйте этот код для производительности. Объясните, что вы изменили и почему.",
      "description": "Оптимизировать код"
    }
  ]
}
```

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

| Проблема                                         | Возможная причина                           | Решение                                                                                          |
| ------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Continue.dev показывает «Connection refused»     | Ollama недоступна                           | Проверьте, что SSH-туннель активен; проверьте `curl http://localhost:11434/` работает            |
| Автозаполнение не срабатывает                    | Модель автозаполнения по Tab не задана      | Добавьте `tabAutocompleteModel` в config.json; включите в настройках Continue                    |
| Очень медленные ответы (>30 с до первого токена) | Модель загружается с диска                  | Первый запрос загружает модель в VRAM — последующие запросы быстрые                              |
| Ошибка «Model not found»                         | Модель не загружена                         | Запустите `docker exec ollama ollama pull <model-name>` на сервере Clore.ai                      |
| Высокая задержка между токенами                  | Сетевая задержка или модель слишком большая | Используйте SSH-туннель; переключитесь на меньшую модель; проверьте загрузку GPU сервера         |
| Контекст кодовой базы не работает                | Отсутствует модель эмбеддингов              | Загрузите `nomic-embed-text` через Ollama; проверьте `embeddingsProvider` в config.json          |
| SSH-туннель часто рвётся                         | Нестабильное соединение                     | Используйте `autossh` для постоянного переподключения; добавьте `ServerAliveInterval 30`         |
| Превышено окно контекста                         | Длинные файлы/разговоры                     | Уменьшите `contextLength` в config.json; используйте модель с большим контекстом                 |
| Плагин JetBrains не загружается                  | Несовместимость версии IDE                  | Обновите JetBrains IDE до последней версии; проверьте матрицу совместимости плагина Continue.dev |
| vLLM OOM при загрузке                            | Недостаточно VRAM                           | Добавьте `--gpu-memory-utilization 0.85`; используйте меньшую модель или квантизованную версию   |

### Команды отладки

```bash
# На вашей ЛОКАЛЬНОЙ машине — проверьте подключение
curl http://localhost:11434/api/tags          # если используется SSH-туннель
curl http://<clore-ip>:11434/api/tags        # если порт открыт напрямую

# На сервере CLORE.AI — проверьте Ollama
docker logs ollama --tail 30 -f
docker exec ollama ollama list
docker exec ollama ollama ps                  # показать загруженные модели

# Протестируйте время отклика модели
time curl http://localhost:11434/api/generate \
  -d '{"model": "codellama:7b", "prompt": "def hello():", "stream": false}'

# Проверьте память GPU
nvidia-smi --query-gpu=memory.used,memory.free --format=csv

# Проверьте логи vLLM
docker logs vllm --tail 50 -f

# Перезапустите Ollama без потери моделей
docker restart ollama
```

### Проверка конфигурации Continue.dev

```bash
# Проверьте синтаксис config.json на вашей локальной машине
python3 -c "
import json, sys
try:
    config = json.load(open(sys.argv[1]))
    print('✅ Конфигурация является корректным JSON')
    print(f'Models: {[m[\"title\"] for m in config.get(\"models\", [])]}')
except Exception as e:
    print(f'❌ Ошибка: {e}')
" ~/.continue/config.json
```

## Дополнительные материалы

* [Документация Continue.dev](https://docs.continue.dev/) — официальная документация по всем интеграциям IDE и опциям конфигурации
* [Continue.dev на GitHub](https://github.com/continuedev/continue) — исходный код, issues, совместимость моделей
* [Справочник конфигурации Continue.dev](https://docs.continue.dev/reference) — полный `config.json` schema
* [Ollama на Clore.ai](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/ollama) — подробное руководство по настройке Ollama (рекомендуемый бэкенд)
* [vLLM на Clore.ai](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/vllm) — высокопроизводительная альтернативная backend-опция для команд
* [TabbyML](https://tabby.tabbyml.com/) — специализированный бэкенд автодополнения с оптимизацией FIM
* [Руководство по сравнению GPU](https://docs.clore.ai/guides/guides_v2-ru/nachalo-raboty/gpu-comparison) — выбор подходящего GPU для вашей рабочей нагрузки при кодировании
* [Совместимость моделей](https://docs.clore.ai/guides/guides_v2-ru/nachalo-raboty/model-compatibility) — какие модели помещаются в какие объёмы VRAM
* [Qwen2.5-Coder](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) — в настоящее время лучшая открытая модель для кодирования
* [DeepSeek-Coder-V2](https://huggingface.co/deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct) — серьёзная альтернатива с длинным контекстом
* [Маркетплейс CLORE.AI](https://clore.ai/marketplace) — арендуйте GPU-серверы


---

# 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/ai-platformy-i-agenty/continue-dev.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.
