auto-sync: 2026-05-14 11:10:01
This commit is contained in:
46
memory/2026-05-14.md
Normal file
46
memory/2026-05-14.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 2026-05-14 — Claude CLI Proxy + TRI max-aggregation
|
||||
|
||||
## Claude CLI Proxy — ГОТОВО ✅
|
||||
|
||||
### Что сделано
|
||||
- **Проект:** `tasks/claude-cli-proxy/` (BRD, DEV_TASK, PROJECT.md)
|
||||
- **Суть:** CLIProxyAPI (Go, open-source) оборачивает Claude Code CLI в OpenAI-compatible API
|
||||
- **Деплой:** Docker контейнер `claude-cli-proxy` на mva154 (82.22.50.71)
|
||||
- **OAuth:** авторизован через Max 5x подписку Славы (claude-homenet542@gmail.com)
|
||||
- **Сеть:** `openclaw_openclaw-network`, доступен из `openclaw-gateway` по имени `claude-cli-proxy:8317`
|
||||
- **Порт:** 127.0.0.1:8317 (не наружу)
|
||||
|
||||
### OpenClaw интеграция
|
||||
- Provider `claude-cli-proxy` добавлен в `openclaw.json`
|
||||
- Dev-агент переключен на `claude-cli-proxy/claude-sonnet-4-20250514`
|
||||
- Доступные модели: sonnet-4, sonnet-4-6, opus-4, opus-4-7, opus-4-6, haiku-4-5
|
||||
- Gateway перечитал конфиг (SIGHUP)
|
||||
|
||||
### Лимиты
|
||||
- Max 5x: ~50-200 промптов/5ч окно
|
||||
- ⚠️ С 15.06.2026 — Agent SDK credit отдельный (детали TBD)
|
||||
|
||||
### Переавторизация (если токен протухнет)
|
||||
1. `docker compose down`
|
||||
2. `docker run --rm -it -p 54545:54545 -v $(pwd)/auth:/root/.cli-proxy-api eceasy/cli-proxy-api:latest /CLIProxyAPI/CLIProxyAPI --claude-login --no-browser`
|
||||
3. SSH туннель + открыть URL в браузере
|
||||
4. `docker compose up -d`
|
||||
|
||||
---
|
||||
|
||||
## TRI тайлы — max-агрегация для мелких зумов ✅
|
||||
|
||||
### Проблема
|
||||
На мелких зумах (5-8) вся карта TRI жёлтая — bilinear resampling усредняет значения.
|
||||
|
||||
### Решение
|
||||
Python max-pool (factor=10) на raw TRI single-band → colorize → tile. GDAL 3.4 не поддерживает `-r max`, поэтому numpy.
|
||||
|
||||
### Результат
|
||||
- Zoom 5: 6 тайлов, все непустые, 52% visible — преобладает оранжевый/красный
|
||||
- Zoom 6-8: контраст есть, плоские участки прозрачные
|
||||
- Zoom 10-12: full-res, без изменений
|
||||
- Общий размер: 520M
|
||||
|
||||
### Ждём фидбек Славы
|
||||
Нужно подтверждение что на карте теперь видно где холмисто.
|
||||
@@ -1,6 +1,6 @@
|
||||
# DEV TASK: Деплой CLIProxyAPI на mva154
|
||||
|
||||
**Статус:** Ready for dev
|
||||
**Статус:** ✅ Выполнено
|
||||
**Проект:** claude-cli-proxy
|
||||
**BRD:** `tasks/claude-cli-proxy/BRD.md`
|
||||
|
||||
|
||||
192
tasks/claude-cli-proxy/PROJECT.md
Normal file
192
tasks/claude-cli-proxy/PROJECT.md
Normal file
@@ -0,0 +1,192 @@
|
||||
# Claude CLI Proxy — PROJECT.md
|
||||
|
||||
**Статус:** ✅ Работает
|
||||
**Дата запуска:** 2026-05-14
|
||||
**Хост:** mva154 (82.22.50.71)
|
||||
|
||||
---
|
||||
|
||||
## Что это
|
||||
|
||||
OpenAI-compatible прокси, который оборачивает Claude Code CLI (авторизованный через Max подписку) в HTTP API. Позволяет OpenClaw использовать Claude по подписке вместо оплаты за токены.
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
OpenClaw (openclaw-gateway контейнер)
|
||||
↓ HTTP POST /v1/chat/completions
|
||||
CLIProxyAPI (контейнер claude-cli-proxy, порт 8317)
|
||||
↓ Claude Code CLI (OAuth)
|
||||
Anthropic (Max 5x подписка, $100/мес)
|
||||
```
|
||||
|
||||
## Компоненты
|
||||
|
||||
| Компонент | Описание |
|
||||
|-----------|----------|
|
||||
| CLIProxyAPI v7.0.6 | Go-сервер, Docker image `eceasy/cli-proxy-api:latest` |
|
||||
| Claude Code CLI | Встроен в image, авторизован через OAuth |
|
||||
| OAuth токен | `/home/slin/claude-cli-proxy/auth/claude-homenet542@gmail.com.json` |
|
||||
|
||||
## Расположение на сервере
|
||||
|
||||
```
|
||||
/home/slin/claude-cli-proxy/
|
||||
├── config.yaml # Конфигурация CLIProxyAPI
|
||||
├── docker-compose.yml # Docker Compose файл
|
||||
└── auth/ # OAuth токены (volume mount)
|
||||
└── claude-homenet542@gmail.com.json
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
cli-proxy-api:
|
||||
image: eceasy/cli-proxy-api:latest
|
||||
container_name: claude-cli-proxy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:8317:8317"
|
||||
volumes:
|
||||
- ./config.yaml:/CLIProxyAPI/config.yaml
|
||||
- ./auth:/root/.cli-proxy-api
|
||||
networks:
|
||||
- openclaw_openclaw-network
|
||||
|
||||
networks:
|
||||
openclaw_openclaw-network:
|
||||
external: true
|
||||
```
|
||||
|
||||
## Конфигурация
|
||||
|
||||
```yaml
|
||||
# config.yaml
|
||||
port: 8317
|
||||
remote-management:
|
||||
allow-remote: false
|
||||
secret-key: ""
|
||||
auth-dir: "/root/.cli-proxy-api"
|
||||
auth:
|
||||
providers: [] # Отключает проверку API key, используется OAuth
|
||||
debug: false
|
||||
```
|
||||
|
||||
## OpenClaw интеграция
|
||||
|
||||
Provider в `~/.openclaw/openclaw.json`:
|
||||
```json
|
||||
"claude-cli-proxy": {
|
||||
"baseUrl": "http://claude-cli-proxy:8317/v1",
|
||||
"apiKey": "dummy",
|
||||
"api": "openai-completions",
|
||||
"models": [
|
||||
{"id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4 (cli-proxy)"},
|
||||
{"id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6 (cli-proxy)"},
|
||||
{"id": "claude-opus-4-20250514", "name": "Claude Opus 4 (cli-proxy)"},
|
||||
{"id": "claude-opus-4-7", "name": "Claude Opus 4.7 (cli-proxy)"}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Dev-агент: `model.primary = "claude-cli-proxy/claude-sonnet-4-20250514"`
|
||||
|
||||
## Доступные модели
|
||||
|
||||
| Модель | ID |
|
||||
|--------|-----|
|
||||
| Claude Sonnet 4 | claude-sonnet-4-20250514 |
|
||||
| Claude Sonnet 4.6 | claude-sonnet-4-6 |
|
||||
| Claude Opus 4 | claude-opus-4-20250514 |
|
||||
| Claude Opus 4.7 | claude-opus-4-7 |
|
||||
| Claude Opus 4.6 | claude-opus-4-6 |
|
||||
| Claude Opus 4.1 | claude-opus-4-1-20250805 |
|
||||
| Claude Haiku 4.5 | claude-haiku-4-5-20251001 |
|
||||
|
||||
## Лимиты (Max 5x, $100/мес)
|
||||
|
||||
- **5-часовое скользящее окно** — бюджет обновляется каждые 5 часов
|
||||
- **Недельный cap** — считается только активное compute-время
|
||||
- **Пиковые часы** (15:00-21:00 MSK) — расход x1.3-1.5
|
||||
- ~50-200 промптов на 5-часовое окно (зависит от модели и длины)
|
||||
|
||||
### ⚠️ С 15 июня 2026
|
||||
Agent SDK / `claude -p` будет тратить отдельный "Agent SDK credit". Детали TBD.
|
||||
|
||||
## Управление
|
||||
|
||||
```bash
|
||||
# SSH на сервер
|
||||
ssh slin@82.22.50.71
|
||||
|
||||
# Статус
|
||||
cd /home/slin/claude-cli-proxy
|
||||
docker compose ps
|
||||
docker logs claude-cli-proxy --tail 20
|
||||
|
||||
# Перезапуск
|
||||
docker compose restart
|
||||
|
||||
# Обновление image
|
||||
docker compose pull && docker compose up -d
|
||||
|
||||
# Тест API
|
||||
curl -s http://127.0.0.1:8317/v1/models | python3 -m json.tool
|
||||
curl -s -X POST http://127.0.0.1:8317/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer dummy" \
|
||||
-d '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"hello"}]}'
|
||||
```
|
||||
|
||||
## Переавторизация OAuth
|
||||
|
||||
Если токен протух:
|
||||
|
||||
```bash
|
||||
cd /home/slin/claude-cli-proxy
|
||||
|
||||
# Остановить сервис
|
||||
docker compose down
|
||||
|
||||
# Запустить login
|
||||
docker run --rm -it \
|
||||
-p 54545:54545 \
|
||||
-v $(pwd)/auth:/root/.cli-proxy-api \
|
||||
eceasy/cli-proxy-api:latest \
|
||||
/CLIProxyAPI/CLIProxyAPI --claude-login --no-browser
|
||||
|
||||
# На локальной машине — SSH туннель:
|
||||
# ssh -L 54545:127.0.0.1:54545 slin@82.22.50.71
|
||||
# Открыть URL из вывода в браузере, залогиниться
|
||||
|
||||
# После логина — запустить сервис
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Безопасность
|
||||
|
||||
- Порт 8317 слушает **только на 127.0.0.1** (не наружу)
|
||||
- Доступен только из docker network `openclaw_openclaw-network`
|
||||
- `remote-management.allow-remote: false`
|
||||
- Один аккаунт, без multi-account
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Проблема | Решение |
|
||||
|----------|---------|
|
||||
| `{"data":[],"object":"list"}` (пустые модели) | OAuth токен отсутствует или протух → переавторизация |
|
||||
| 429 от прокси | Rate limit Max подписки → подождать 5ч окно |
|
||||
| Контейнер не стартует | `docker logs claude-cli-proxy` → проверить ошибки |
|
||||
| OpenClaw не видит прокси | Проверить что оба в одной docker network |
|
||||
|
||||
## Файлы проекта
|
||||
|
||||
- `tasks/claude-cli-proxy/BRD.md` — бизнес-требования
|
||||
- `tasks/claude-cli-proxy/DEV_TASK.md` — ТЗ на деплой
|
||||
- `tasks/claude-cli-proxy/PROJECT.md` — этот файл
|
||||
|
||||
---
|
||||
|
||||
*Создано: 2026-05-14 | Автор: Стрим 🌊*
|
||||
Reference in New Issue
Block a user