This commit is contained in:
commit
3cafa163c4
8 changed files with 144 additions and 0 deletions
88
README.md
Normal file
88
README.md
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# lazy
|
||||
|
||||
`lazy` - репозиторий-обертка для одновременного запуска двух сервисов:
|
||||
|
||||
- `ai` - AI Router (OpenAI-compatible API роутер)
|
||||
- `megapt` - URL-провайдер токена для `codex-responses` (`/chatgpt/token`)
|
||||
|
||||
Сервисы запускаются вместе через `compose.yml`.
|
||||
|
||||
## Что здесь находится
|
||||
|
||||
- `ai/` - git-submodule с AI Router
|
||||
- `megapt/` - git-submodule с token URL provider
|
||||
- `compose.yml` - оркестрация обоих сервисов
|
||||
- `data/` - персистентные данные контейнеров
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
1. Инициализируйте submodules:
|
||||
|
||||
```bash
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
2. Подготовьте конфиги для роутера в `data/ai/`:
|
||||
|
||||
- `data/ai/config.yml`
|
||||
- `data/ai/auth.yml`
|
||||
- `data/ai/users.yml`
|
||||
|
||||
3. Убедитесь, что в `auth.yml` для провайдера `openai` указан URL на `megapt`:
|
||||
|
||||
```yaml
|
||||
providers:
|
||||
openai:
|
||||
url: http://megapt/chatgpt/token
|
||||
```
|
||||
|
||||
4. Поднимите оба сервиса:
|
||||
|
||||
```bash
|
||||
docker compose -f compose.yml up -d --build
|
||||
```
|
||||
|
||||
5. Проверьте, что все работает:
|
||||
|
||||
```bash
|
||||
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 endpoint `GET /chatgpt/token`.
|
||||
- `ai` при обращении к `codex-responses` берет токен по URL из `auth.yml`.
|
||||
- Пользователь ходит только в `ai`, который маршрутизирует запросы в нужные апстримы.
|
||||
|
||||
## Compose сервисы
|
||||
|
||||
`compose.yml` поднимает:
|
||||
|
||||
- `ai`
|
||||
- build: `ai`
|
||||
- порт: `8239:80`
|
||||
- volume: `./data/ai:/data`
|
||||
- restart: `unless-stopped`
|
||||
|
||||
- `megapt`
|
||||
- build: `megapt`
|
||||
- env: `USAGE_REFRESH_THRESHOLD=85`
|
||||
- volume: `./data/megapt:/data`
|
||||
|
||||
## Полезные команды
|
||||
|
||||
```bash
|
||||
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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue