Otari: шлюз для языковых моделей с поддержкой OpenAI
Otari — это open-source шлюз для языковых моделей (LLM), совместимый с OpenAI, который ты можешь развернуть у себя. Он позволяет единообразно подключаться к более чем 40 поставщикам моделей, управлять виртуальными ключами, устанавливать бюджеты и отслеживать использование.
Проект полезен для разработчиков, которым нужно управлять несколькими API без утечки конфиденциальной информации, так как Otari аутентифицирует запросы и сохраняет учетные данные за границами шлюза. Это значит, что ты можешь контролировать доступ и расходы, а также иметь гибкие политики маршрутизации. Подходит для тех, кто хочет создать собственное решение для работы с LLM, минимизируя зависимость от сторонних сервисов.
Otari написан на Python 3.13 и запускается с использованием Docker. Учти, что для работы потребуется настроить свою базу данных и ключи от поставщиков. Проект находится на стадии активной разработки, так что баги и изменения могут встречаться.
Проект Otari представляет собой шлюз для языковых моделей, совместимый с OpenAI. Он позволяет интегрировать более 40 провайдеров моделей и управлять ими через единую точку доступа. С помощью Otari можно выдавать виртуальные ключи API, контролировать бюджеты и отслеживать использование ресурсов.
Otari работает между твоими приложениями и провайдерами моделей, аутентифицируя запросы, разрешая учетные данные провайдеров, проверяя бюджеты перед выполнением запросов и записывая использование после их завершения. Всю логику вызовов провайдеров реализует модуль any-llm.
Зачем нужен Otari
- Обеспечивает единый интерфейс для работы с множеством провайдеров, совместимых с OpenAI и Anthropic.
- Управление учетными данными провайдеров происходит непосредственно в шлюзе, что увеличивает безопасность.
- Позволяет создавать отменяемые ключи API с настройками по пользователям, рабочим пространствам и моделям.
- Включает проверки бюджета перед тратами и записи использования после завершения операций.
- Поддерживает локальное управление маршрутами для резервирования, взвешивания и интеллектуального выбора провайдеров.
- Предоставляет дополнительные возможности, такие как выполнение кода, поиск в вебе и понимание файлов.
Установка и запуск
Чтобы быстро запустить временный шлюз, можно использовать Docker:
docker run --rm -p 8000:8000 \
-e OTARI_MASTER_KEY=SET_A_MASTER_KEY \
-e OPENAI_API_KEY=YOUR_OPENAI_KEY \
-e OTARI_CONFIG_YAML='default_pricing: true' \
mzdotai/otari:latest \
otari serve
При первом запуске с пустой базой данных Otari создаст API-ключ, который будет выведен на экран. Этот ключ нужно использовать для отправки запросов.
curl http://localhost:8000/v1/chat/completions \
-H "Authorization: Bearer gw-..." \
-H "Content-Type: application/json" \
-d '{
"model": "openai:gpt-4o-mini",
"messages": [{"role": "user", "content": "Say hello."}]
}'
Для постоянного хранения данных рекомендуется использовать Docker Compose:
git clone https://github.com/mozilla-ai/otari
cd otari
cp config.example.yml config.yml
# Задай мастер-ключ, учетные данные провайдеров и ценообразование в config.yml.
docker compose pull
docker compose up -d
Режимы работы
- Standalone: Один процесс выполняет управление и обработку с использованием локального хранилища.
- Hosted: Многоарендная система управления; обработка происходит на подключенных шлюзах.
- Hybrid: Шлюз управляет учетными данными и отправляет отчеты о использовании в otari.ai.
Ограничения и требования
При использовании контейнера по умолчанию применяется SQLite, но данные будут утеряны после остановки контейнера. Для поддержки постоянства данных рекомендуется использовать PostgreSQL с Docker Compose. Также ты должен позаботиться о сохранности секретных ключей и правильно настроить конфигурацию.
Важно также отметить, что для работы с OpenAI-клиентами необходимо установить параметр base_url в значение http://localhost:8000/v1.
Проект лицензирован под Apache 2.0, что позволяет использовать его с минимальными ограничениями.
Радар проекта: 82 из 100 — зрелый и живой проект
- Импульс 38 ≈ 6 звёзд в день
- Темп разработки 100 1473 коммита за 12 недель
- Зрелость 79 проекту 7 месяцев, 44 релиза
- Сообщество 64 46 участников, 101 форк
- Свежесть 99 последний коммит — 1 день назад
- Быстрый старт 100 есть: команда установки, Docker, сайт/демо, примеры
- Готовность к продакшену 85 релиз v0.34.0, автосборка, тесты
- Безопасность и доверие 100 лицензия Apache-2.0, SECURITY.md, организация
- Документация 93 README 5.6 тыс. знаков, 9 разделов, папка docs
- Экосистема 60 7 подписчиков на обновления, 19 тем
Как считаем
Только открытые данные GitHub на 31.10.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: mozilla-ai/otari →
RepoRadar