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, что позволяет использовать его с минимальными ограничениями.
Открыть на GitHub: mozilla-ai/otari →
RepoRadar