Ошибки SillyTavern: подключение, модель, контекст и пустые ответы
Проверяйте систему от backend к интерфейсу. Открытая страница, успешный список моделей и полезный ответ — три отдельные проверки. Сохраните текст ошибки и последнее изменение до новой настройки.
Найдите слой с ошибкой
| Симптом | Возможная причина | Первая проверка |
|---|---|---|
| Не открывается страница SillyTavern | Локальный Node-процесс или занятый порт | Консоль запуска, версия Node, показанный адрес |
| Connection refused через localhost | Туннель или удалённый сервер | SSH-процесс, проброшенный порт, API на GPU |
| HTML вместо JSON | Неверный URL или страница gateway | Базовый API модели, а не адрес Open WebUI или кабинета |
| HTTP 401/403 | Ключ или правила доступа | Ключ именно этого endpoint, ограничения доступа, режим авторизации |
| HTTP 404 | Путь или имя модели | Ровно один /v1; точный ID из списка |
| Список работает, генерация — нет | Шаблон, параметры или inference | Минимальный запрос без streaming и логи backend |
| Ошибка контекста или out-of-memory | Размер запроса или память | Сумма промпта и ответа, фактический контекст, другие модели |
| Пустой ответ или служебные токены | Модель, шаблон, лимит вывода | Chat template, поля ответа, причина завершения |
| Без streaming работает, со streaming зависает | Потоковый путь клиента/сервера/прокси | Тот же промпт и логи обрыва соединения |
Ошибки туннеля и URL
В инструкции Ollama локальный 127.0.0.1:11435 ведёт к удалённому 127.0.0.1:11434. Базовый URL клиента — http://127.0.0.1:11435/v1. Порт 7500 с Open WebUI — другой сервис.
Туннель должен работать на машине с сервером SillyTavern. Если интерфейс размещён на VPS, а вы открыли его с ноутбука, сервер не сможет обращаться к loopback ноутбука только потому, что оба адреса называются localhost. До успешного подключения придерживайтесь описанной локальной схемы.
Не исправляйте туннель публикацией Ollama без авторизации на 0.0.0.0. Ошибка должна оставаться видимой до настройки правильного маршрута и порта.
Отделите метаданные от генерации
Запустите check-connection.py, как показано в руководстве backend. Без --generate выполняется только GET /models. С явным ID и --generate добавляется один короткий запрос без streaming. Список моделей не доказывает достаточность VRAM и корректность шаблона.
Скрипт возвращает ненулевой код при HTTP-ошибках, редиректе, некорректном/слишком большом JSON, отсутствии моделей, текста ответа или нормальной причины завершения. Он не подменяет модель и не повторяет запрос автоматически. Reasoning-модель может не успеть выдать финальный текст в небольшом лимите и не пройти тест при доступном API; до увеличения бюджета проверьте её рекомендации.
При HTTPS-ошибках проверьте endpoint и сертификаты, а не отключайте их валидацию. Редиректы запрещены, чтобы ключ не ушёл на другой адрес. Переменные HTTP-прокси скрипт игнорирует; сети с обязательным прокси нужен другой явно настроенный путь доступа.
Шаблоны и параметры
В примерах используется Chat Completion. vLLM нужен рабочий chat template для выбранной модели, Ollama применяет шаблон своей модели. Сначала уберите дополнительные поля запроса и верните рекомендованные параметры. Обработку ролей меняйте только при документированном ограничении сервера.
Если модель пишет обе стороны разговора, проверьте example dialogue, повторные маркеры ролей и фактический промпт. Если она повторяет биографию персонажа, сократите карточку до усиления repetition penalties. При пропавших фактах lorebook проверяйте привязку и активацию книги, а не подключение API.
Восстановление без лишних запросов
После таймаута проверьте сервер перед повтором. Таймаут клиента не гарантирует отмену inference. Не нажимайте regenerate многократно и не запускайте новый инстанс, чтобы скрыть неразобранную ошибку. Проверьте загрузку GPU исходным процессом и сохраните нужные логи до перезапуска.
При нехватке памяти уменьшите контекст и длину ответа, закройте конкурирующие модельные процессы либо выберите меньшую модель/квантизацию. См. контекст и память GPU. Убедитесь, что короткая проверка снова проходит, прежде чем возвращаться к длинному диалогу.
Для диагностики запишите версии клиента/backend, точный ID модели, режим, адрес без секретов, статус/ошибку, число токенов при наличии и последний успешный запрос. Воспроизводите проблему на вымышленном тексте. Сделайте резервную копию до смены версии и обновляйте по одному компоненту.
Готовы запустить?
Запустить GPU-сервер