No description
| ai@2b416d104d | ||
| data/ai | ||
| megapt@ccd4d82194 | ||
| .gitmodules | ||
| compose.yml | ||
| README.md | ||
lazy
lazy - репозиторий-обертка для одновременного запуска двух сервисов:
ai- AI Router (OpenAI-compatible API роутер)megapt- URL-провайдер токена дляcodex-responses(/chatgpt/token)
Сервисы запускаются вместе через compose.yml.
Что здесь находится
ai/- git-submodule с AI Routermegapt/- git-submodule с token URL providercompose.yml- оркестрация обоих сервисовdata/- персистентные данные контейнеров
Быстрый старт
- Инициализируйте submodules:
git submodule update --init --recursive
- Подготовьте конфиги для роутера в
data/ai/:
data/ai/config.ymldata/ai/auth.ymldata/ai/users.yml
- Убедитесь, что в
auth.ymlдля провайдераopenaiуказан URL наmegapt:
providers:
openai:
url: http://megapt/chatgpt/token
- Поднимите оба сервиса:
docker compose -f compose.yml up -d --build
- Проверьте, что все работает:
curl http://127.0.0.1:8239/v1/models
curl http://127.0.0.1:8239/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5.3-codex","messages":[{"role":"user","content":"hi"}],"stream":false}'
Как это работает
megaptподнимает HTTP endpointGET /chatgpt/token.aiпри обращении кcodex-responsesберет токен по URL изauth.yml.- Пользователь ходит только в
ai, который маршрутизирует запросы в нужные апстримы.
Compose сервисы
compose.yml поднимает:
-
ai- build:
ai - порт:
8239:80 - volume:
./data/ai:/data - restart:
unless-stopped
- build:
-
megapt- build:
megapt - env:
USAGE_REFRESH_THRESHOLD=85 - volume:
./data/megapt:/data
- build:
Полезные команды
docker compose -f compose.yml ps
docker compose -f compose.yml logs -f ai
docker compose -f compose.yml logs -f megapt
docker compose -f compose.yml down
Примечания
- Секреты и токены не коммитьте в git.
- Директория
data/должна быть персистентной. - Если меняете код в submodule, не забудьте закоммитить изменения в самом submodule и обновить его ссылку в
lazy.