Как подключить SillyTavern к Ollama на облачном GPU через SSH
Здесь локальный SillyTavern подключается к Ollama на GPU-сервере через OpenAI-совместимый Chat Completion. Шаблон диалога применяет Ollama. Это не отдельный режим Text Completion/Ollama в SillyTavern.
1. Проверьте сервер модели
Запустите существующее приложение с чат-ботом или выполните ручную установку Ollama. Подключитесь по SSH с адресом, портом, пользователем и ключом своего инстанса. На GPU-сервере выполните:
ollama --version
ollama list
curl --fail-with-body http://127.0.0.1:11434/api/tags
Open WebUI на порту 7500 — другой сервис. Его адрес для браузера нельзя подставлять вместо endpoint модели в SillyTavern. Локальный сервер Ollama обычно не требует API-ключа, поэтому порт 11434 особенно важно не публиковать в интернете.
Используйте установленную локальную модель. Запись облачной модели Ollama может отправлять запросы во внешний сервис: выбор такой записи не переносит вычисления на ваш GPU. Ниже используется существующий пресет Qwen2.5 7B, но точное имя должно присутствовать в вашем списке моделей.
2. Откройте туннель со своего компьютера
Замените SSH_PORT, SSH_USER и GPU_HOST данными инстанса; при необходимости добавьте параметр с SSH-ключом. Одна строка ниже работает в терминале или PowerShell с установленным OpenSSH:
ssh -N -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -p SSH_PORT -L 127.0.0.1:11435:127.0.0.1:11434 SSH_USER@GPU_HOST
Оставьте окно открытым. Локальный порт 11435 не конфликтует с Ollama, которая уже может занимать 11434 на вашем компьютере. ExitOnForwardFailure замечает ошибку открытия локального порта; доступность удалённого сервиса всё равно нужно проверить HTTP-запросом.
3. Проверьте API до настройки клиента
Сохраните check-connection.py на своём компьютере. Нужен Python 3.10+ без дополнительных пакетов; если у вас команда называется python3, используйте её вместо python.
python check-connection.py --base-url http://127.0.0.1:11435/v1
По умолчанию скрипт только получает список моделей. Проверьте их ID. Затем, если пресет Qwen есть в списке, явно запустите одну короткую генерацию:
python check-connection.py --base-url http://127.0.0.1:11435/v1 --model qwen2.5:7b-instruct-q4_K_M --generate
Для другой установленной модели замените ID. Это настоящий inference, включая возможную холодную загрузку; лимит ответа 64 токена и сетевой таймаут не ограничивают расходы на аренду. Скрипт не повторяет запросы, не выводит ответы и не сохраняет диалоги. Пустой текст и ненормальное завершение приводят к ошибке.
4. Заполните подключение в SillyTavern
| Настройка | Значение |
|---|---|
| API | Chat Completion |
| Chat Completion Source | Custom (OpenAI-compatible) |
| Custom Endpoint | http://127.0.0.1:11435/v1 |
| API key | Оставьте пустым для этого локального сервера Ollama |
| Model | Точный ID из результата проверки |
Подключитесь, выберите модель и отправьте короткое сообщение. Не добавляйте /chat/completions к базовому URL. Оставьте проверку статуса включённой. Первую попытку делайте без дополнительных параметров, tools и нестандартной обработки ролей. Если список доступен, но ответ не приходит, переходите к диагностике.
5. Задайте контекст явно
OpenAI-совместимый запрос не задаёт num_ctx в Ollama. Чтобы начать с известных 4 096 токенов, создайте отдельное имя модели на GPU-сервере. Убедитесь, что исходная модель установлена, а имя personal-chat-4096 ещё не используется: ollama create заменяет существующую модель под этим именем.
set -euo pipefail
ollama list
ollama show qwen2.5:7b-instruct-q4_K_M
test ! -e Modelfile.chat4096
cat > Modelfile.chat4096 <<'MODELFILE'
FROM qwen2.5:7b-instruct-q4_K_M
PARAMETER num_ctx 4096
MODELFILE
ollama create personal-chat-4096 -f Modelfile.chat4096
ollama show personal-chat-4096 --parameters
Переподключитесь и выберите personal-chat-4096 в SillyTavern. Установите бюджет контекста клиента 4 096, выделив, например, 512 токенов под ответ. Реальная возможность работы зависит от сервера и модели. После запроса команда ollama ps помогает проверить загруженную модель и контекст. Подробнее — в руководстве по контексту.
В этой схеме история находится в локальной папке SillyTavern. При генерации содержимое промпта отправляется GPU-backend. Сохраните данные клиента, а аренду завершите отдельно.
Источники: API Ollama и настройка контекста, параметры Modelfile, custom-подключение SillyTavern.
Готовы запустить?
Запустить GPU-сервер