Когда FastAPI - это уже перебор
Вы видели эти проекты? OpenLLM, LiteLLM, всякие шлюзы с Docker Compose на три страницы, которые требуют Redis для кэширования, Postgres для логов и ещё пять сервисов просто чтобы проксировать запрос к вашей же машине. Это смешно. Особенно когда вы просто хотите поставить Open WebUI рядом с Ollama и чтобы они нормально общались.
SalmAlm - это реакция на эту абсурдную сложность. Один файл Python, 600 строк кода, ноль зависимостей кроме стандартной библиотеки. Серьёзно, даже requests не нужен - всё на http.client. Автор явно устал от раздутых зависимостей.
На момент февраля 2026 года проект активно развивается - недавно добавили поддержку Ollama 0.5.x API, совместимость с последними моделями DeepSeek V3 и Qwen2.5, а также экспериментальную интеграцию с AMD Ryzen AI через локальными транскриберами.
Что умеет эта штука (кроме экономии места на диске)
- Мульти-провайдерный роутинг: Ollama, OpenAI-совместимые API (включая локальные типа LM Studio), Anthropic, Google Gemini - всё в одном месте
- Автоматическое определение модели: Отправляете запрос, шлюз сам решает, куда его направить
- PWA-интерфейс: Веб-морда, которую можно установить как приложение на телефон
- Промпт-шаблоны: Сохраняете любимые промпты, вызываете одним кликом
- История диалогов: В браузере, без серверной базы данных
- Поддержка стриминга: SSE для реального времени, никаких long polling
Установка: одна строка, которая работает (почти всегда)
Вот весь процесс:
curl -sSL https://raw.githubusercontent.com/salm-ai/salmalm/main/install.sh | bashИли если не доверяете pipe в bash (а правильно делаете):
wget https://raw.githubusercontent.com/salm-ai/salmalm/main/salmalm.py
python3 salmalm.pyСервис запускается на порту 8080. Открываете localhost:8080 - видите чистый интерфейс. Никаких конфигов, никаких .env файлов на первом этапе.
Важный момент: SalmAlm по умолчанию ищет Ollama на localhost:11434. Если у вас Ollama висит на другом порту или вообще на другой машине - придётся поправить конфиг. Но это YAML файл на 10 строк, а не том Kubernetes манифестов.
1Базовый конфиг для тех, у кого всё нестандартно
Создаёте файл config.yaml:
providers:
ollama:
base_url: "http://192.168.1.100:11434" # ваш Ollama сервер
models:
- "llama3.2:latest"
- "qwen2.5:7b"
- "deepseek-coder:latest"
openai:
base_url: "http://localhost:1234/v1" # например, LM Studio
api_key: "not-needed-for-local"
server:
host: "0.0.0.0"
port: 8080
cors_origins: ["*"]Запускаете с конфигом:
python3 salmalm.py --config config.yamlЧем SalmAlm бьёт конкурентов (когда они есть)
| Инструмент | Зависимости | Размер | Особенность | Для кого |
|---|---|---|---|---|
| SalmAlm | Python 3.8+ | ~600 строк | Ноль внешних зависимостей | Минималисты, embedded системы |
| LiteLLM | FastAPI, pydantic, redis | ~15k строк | Корпоративные фичи | Продакшен, команды |
| Open WebUI | Docker, Node.js, базы данных | Полный стек | Богатый интерфейс | Энтузиасты с ресурсами |
| Ollama WebUI | Node.js, вебпак | ~3k строк | Только Ollama | Только для Ollama |
Видите разницу? SalmAlm - это Swiss Army knife, который помещается в карман. Не пытается быть всем для всех. Просто проксирует запросы и показывает интерфейс.
Где это реально пригодится (кроме "посмотреть, как оно работает")
Домашняя лаборатория: У вас есть Raspberry Pi с Ollama, пара старых видеокарт для нейросетевых экспериментов, и вы хотите единую точку входа. SalmAlm встаёт на том же Pi, потребляет 50MB RAM и даёт веб-интерфейс.
Образовательные проекты: Нужно показать студентам, как работают API LLM, но чтобы они не утонули в настройке. Один файл Python - и есть работающий шлюз с документацией.
Прототипирование: Делаете робота с ROS2 и хотите быстро протестировать разные модели для NLP части. Меняете строку в конфиге - переключаетесь между Llama, DeepSeek и Qwen.
Параноики: Да, для тех, кто хочет полностью локальный стек без следов. SalmAlm не звонит домой, не собирает телеметрию, даже логгирование отключается одной настройкой.
Подводные камни (потому что идеальных инструментов не бывает)
- Аутентификация: Её нет. Вообще. Если нужно защитить доступ - ставите nginx перед ним с basic auth или ставите в приватную сеть.
- Масштабирование: Не предназначен для тысяч запросов в секунду. Это инструмент для личного использования или маленьких команд.
- Мониторинг: Нет Grafana дашбордов, нет алертов. Есть access.log в стандартном формате - дальше сами.
- Балансировка нагрузки: Если у вас три GPU с разными моделями - нужно будет делать балансировку на уровне конфига вручную.
Интеграция с экосистемой: что ещё можно прикрутить
Самое интересное начинается, когда вы соединяете SalmAlm с другими инструментами:
- Home Assistant: Через REST API можно интегрировать голосовых ассистентов типа Strix Halo для управления умным домом
- Claude Code: Настраиваете SalmAlm как прокси и подключаете локальные LLM к Claude Code вместо платных OpenAI API
- Автономные агенты: Для умного дома на базе LoRa можно использовать SalmAlm как центральный мозг
- Транскрибация: В связке с Qwen3-ASR получается полностью локальный стек для обработки аудио
Кому это действительно нужно (а кому лучше пройти мимо)
Берите SalmAlm, если:
- Ненавидите Docker Compose файлы на 200 строк
- Хотите понять, как работают AI шлюзы изнутри
- Имеете ограниченные ресурсы (Raspberry Pi, старый ноутбук)
- Цените возможность прочитать весь исходный код за полчаса
- Часто переключаетесь между разными моделями и провайдерами
Не берите SalmAlm, если:
- Нужна enterprise-аутентификация (OAuth, SAML)
- Ожидаете тысячи RPS (запросов в секунду)
- Требуется детальное логирование и мониторинг
- Нужны готовые дашборды использования и биллинг
- Вы не готовы иногда поковыряться в конфигах
Фишка SalmAlm в его простоте. Это не коробочный продукт, а скорее набор деталей Лего. Вы берёте базовую функциональность и достраиваете то, что нужно именно вам. Нужна кастомная аутентификация? Допишите 50 строк Python. Нужна интеграция с какой-то специфичной системой? Она уже почти REST API.
На февраль 2026 года проект живёт, последний коммит был неделю назад. Сообщество маленькое, но активное - issues отвечают в течение дня, PR мержат быстро. И самое главное - когда всё ломается, вы всегда можете открыть единственный файл salmalm.py и понять, где именно.
Попробуйте. Запустите на той запылённой Raspberry Pi, что валяется в шкафу. Может оказаться, что этот минималистичный шлюз решает 90% ваших задач по управлению локальными моделями. А остальные 10%... Ну, всегда можно вернуться к раздутым корпоративным решениям.