Когда один .c файл обзаводится лицом
Антресольный проект antirez (того самого парня, который написал Redis) — ds4.c — это сервер генерации текста на коленке. Один файл, сишечка, минимум зависимостей, сборка за секунду. Но есть нюанс: чтобы постучаться в него, нужен curl, Telnet или свой клиент. Согласитесь, в 2026 году тыкать в терминал каждый раз, когда хочется поговорить с локальной LLM — это как писать письма на печатной машинке. Поэтому появился ds4-webui.
И нет, это не очередной монолит на React с сорока зависимостями. Это легковесная HTML+JS обёртка, которую можно запустить рядом с ds4 и забыть про CLI. Ребята постарались сохранить дух минимализма: сервер на Go (или Python — есть версии), который просто проксирует запросы к ds4 и рисует форму.
В теории ds4-webui решает главную боль antirez-проекта: отсутствие UI. На практике — это инструмент для тех, кто не хочет тащить в стек ООКи с гигабайтами зависимостей ради одного текстового поля.
Что внутри: сухие возможности
- Поле ввода промпта и кнопка отправки — ничего лишнего.
- Потоковый вывод (streaming) — ответы приходят токен за токеном, без задержек.
- Регулировка температуры, top_p, max_tokens — базовые рычаги управления генерацией.
- История диалогов — висит слева, можно переключаться между разговорами.
- Экспорт и импорт бесед (JSON) — не потеряете интересную переписку.
- Поддержка Markdown — ответы форматируются, код подсвечивается.
- Тёмная тема — для тех, кто не выносит белый фон в час ночи.
- Кнопка копирования ответа одной кнопкой.
И это всё. Нет многопользовательского режима, нет RAG, нет плагинов. Но это и не нужно. Проект про то, чтобы соединить мозг LLM с браузером за три минуты.
Сравнение с альтернативами: слоны против муравья
В нашем недавнем сравнении Oobabooga, Jan AI и LM Studio мы выяснили, что каждый из этих инструментов тянет за собой гигабайты зависимостей, требует GPU с CUDA и минимум 8 ГБ видеопамяти. Они умеют всё: чат, инференс, агентов, плагины. Но если ваш сетап — это сервер с ds4 на CPU или старой видеокарте, запускать рядом Oobabooga — избыточно.
ds4-webui не претендует на трон. Он — швейцарский нож, который наточили как раз под ds4. Вот таблица для наглядности:
| Характеристика | Oobabooga | Jan AI | LM Studio | ds4-webui + ds4 |
|---|---|---|---|---|
| Размер | ~2 ГБ + модели | ~1.5 ГБ + модели | ~800 МБ + модели | ~5 МБ (ds4) + ~10 МБ webui |
| Зависимости | Python, CUDA, 100 пакетов | Electron, Node | Electron, встроенный инференс | gcc / Go runtime |
| Функции | чат, API, тренировка, плагины | чат, локальные модели, галерея | чат, локальный сервер, поиск | только чат |
| Запуск на слабом железе | тяжело | средне | средне | легко |
Кстати, кто использует Open WebUI для продвинутых сценариев — превращением LLM в агента с веб-поиском — тот знает, как иногда хочется чего-то попроще. ds4-webui — идеальный кандидат для второго, лёгкого инстанса.
Живой пример: ставим и щёлкаем
Допустим, у вас есть сервер ds4, собранный и запущенный на порту 7777. Вы скачали ds4-webui (репозиторий на GitHub). Запускаете его:
./ds4-webui --ds4-host localhost:7777 --port 8080Открываете в браузере http://localhost:8080. Видите чистую страницу, поле ввода, кнопку «Send». Печатаете «Расскажи анекдот про программиста» — и через секунду ds4 начинает строчить ответ. Всё.
Если нужно сменить модель — перезапускаете ds4 с другим .gguf файлом. WebUI к этому не имеет отношения. История диалогов висит сбоку, можно подгрузить предыдущую сессию.
Не советую использовать этот UI для продакшен-среды с тысячей пользователей. Нет авторизации, нет лимитов. Это инструмент для одного человека или маленькой команды, которая доверяет друг другу.
Ещё один сценарий — связка с автоматизацией. Вы ставите ds4-webui рядом с сервером и дёргаете его через REST API (которое он тоже предоставляет, помимо браузера). Можно легко встроить генерацию текста в свой скрипт:
curl -X POST http://localhost:8080/api/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello!", "max_tokens": 50}'В ответ — stream токенов. Для быстрой интеграции — самое то.
Кому это нужно (и кому лучше пройти мимо)
- Разработчикам локальных тулов. Если вы пишете своего бота или ассистента на коленке — ds4+webUI дают готовый интерфейс без boilerplate.
- Энтузиастам старого железа. Владельцы Tesla P100 с ds4 (мы писали, как поднять такой сервер) могут получить удобную веб-морду без лишнего груза.
- Тем, кто ненавидит Electron. Если у вас дёргается глаз при виде установщика на 200 МБ для простого текстового поля — это ваш выбор.
- Исследователям. Быстро протестировать гипотезу, поиграть с параметрами генерации, не отвлекаясь на фичи.
А вот кому НЕ подходит: тем, кто ждёт систему чатов как в Telegram, с картинками, голосовыми и агентами. Для этого есть NSFW-чаты с картинками или полноценные сьюты. Но если нужно просто «отправить промпт и получить ответ» без головной боли — берите ds4-webui.
Тёмная лошадка среди интерфейсов
ds4-webui не пытается быть платформой. Он делает ровно то, что должен: рисует форму и передаёт текст модели. В мире, где каждый инструмент норовит стать экосистемой, такой минимализм подкупает. Особенно когда видишь, как antirez пошутил про «один файл и никаких фреймворков» — и эта шутка превратилась в рабочий инструмент.
Совет: попробуйте запустить ds4-webui на Raspberry Pi 5 с 8 ГБ. Да, скорости не будет, но сам факт, что четырёхдолларовый одноплатник тянет LLM с веб-мордой — это слегка поражает воображение. А когда устанете ждать — перекинете на нормальный сервер и получите ту же простоту.
В конечном счёте, ds4-webui — это ответ на вопрос: «А что, если бы браузерный чат весил меньше, чем одна фотография в JPEG?»