fix(translate): fix batch sizing — use real available input budget, respect job.batch_size, lazy playwright in docker
- _batch_sizer.py: compute per_batch_budget from actual available_input_budget (context_window - max_output_tokens) instead of sum of first N rows - _batch_sizer.py: cap max_rows_hard_cap with job.batch_size (user config) - _token_budget.py: add available_input_budget and max_output_tokens to return - preview.py: validate required config fields before preview - requirements-docker.txt: add playwright pip package (~5 MB) - backend.entrypoint.sh: lazy playwright install chromium on first start - build.sh: switch tar to tar.xz (-T0 -9), 5.5x smaller bundles - README.md: add offline bundle deployment instructions - playwright.config.js: add testMatch for *.e2e.js files - frontend: preview tab config validation, i18n keys, translationRun store
This commit is contained in:
51
README.md
51
README.md
@@ -109,6 +109,32 @@ ss-tools/
|
||||
- Docker Compose v2
|
||||
- 4 GB RAM (для стабильной работы)
|
||||
|
||||
### Быстрое развертывание бандла (offline)
|
||||
|
||||
```bash
|
||||
# 1. Загрузить образ из бандла
|
||||
xz -dc dist/docker/ss-tools.20260517.tar.xz | docker load
|
||||
|
||||
# 2. Подготовить пароль для PostgreSQL
|
||||
export POSTGRES_PASSWORD="my-strong-password"
|
||||
|
||||
# 3. Запустить
|
||||
docker compose -f dist/docker/docker-compose.light.yml up -d
|
||||
|
||||
# 4. Создать администратора (первый запуск)
|
||||
docker exec -it ss-tools-app-1 python src/scripts/create_admin.py \
|
||||
--username admin --password '<temporary-secret>'
|
||||
```
|
||||
|
||||
Команды для сборки бандла:
|
||||
```bash
|
||||
# Легковесный all-in-one (~104 MB)
|
||||
./build.sh bundle:light v1.0.0
|
||||
|
||||
# Полный релиз (backend + frontend + postgres)
|
||||
./build.sh bundle v1.0.0
|
||||
```
|
||||
|
||||
### Установка и запуск
|
||||
|
||||
#### Вариант 1: Docker (рекомендуется)
|
||||
@@ -255,16 +281,16 @@ cd /home/busya/dev/ss-tools
|
||||
./build.sh bundle v1.0.0-rc2-docker
|
||||
|
||||
# Результат: dist/docker/
|
||||
# backend.v1.0.0-rc2-docker.tar
|
||||
# frontend.v1.0.0-rc2-docker.tar
|
||||
# postgres.v1.0.0-rc2-docker.tar
|
||||
# backend.v1.0.0-rc2-docker.tar.xz
|
||||
# frontend.v1.0.0-rc2-docker.tar.xz
|
||||
# postgres.v1.0.0-rc2-docker.tar.xz
|
||||
# manifest + sha256sums + docker-compose.enterprise-clean.yml + .env.enterprise-clean.example
|
||||
|
||||
# 2. Передать dist/docker/* в изолированный контур
|
||||
# 3. Импортировать образы локально
|
||||
docker load -i dist/docker/backend.v1.0.0-rc2-docker.tar
|
||||
docker load -i dist/docker/frontend.v1.0.0-rc2-docker.tar
|
||||
docker load -i dist/docker/postgres.v1.0.0-rc2-docker.tar
|
||||
# 3. Импортировать образы локально (распаковка на лету)
|
||||
xz -dc dist/docker/backend.v1.0.0-rc2-docker.tar.xz | docker load
|
||||
xz -dc dist/docker/frontend.v1.0.0-rc2-docker.tar.xz | docker load
|
||||
xz -dc dist/docker/postgres.v1.0.0-rc2-docker.tar.xz | docker load
|
||||
|
||||
# 4. Подготовить env из шаблона
|
||||
cp dist/docker/.env.enterprise-clean.example .env.enterprise-clean
|
||||
@@ -278,14 +304,21 @@ cp dist/docker/.env.enterprise-clean.example .env.enterprise-clean
|
||||
docker compose --env-file .env.enterprise-clean -f dist/docker/docker-compose.enterprise-clean.yml up -d
|
||||
```
|
||||
|
||||
Для легковесного all-in-one образа (без Playwright, <200 MB):
|
||||
Для легковесного all-in-one образа (без Playwright, **~104 MB** вместо 575 MB):
|
||||
|
||||
```bash
|
||||
# Сборка
|
||||
./build.sh bundle:light v1.0.0
|
||||
|
||||
# Результат:
|
||||
# dist/docker/ss-tools.v1.0.0.tar
|
||||
# dist/docker/ss-tools.v1.0.0.tar.xz (×5.5 меньше за счёт xz -9)
|
||||
# dist/docker/docker-compose.light.yml
|
||||
# dist/docker/manifest-light.v1.0.0.txt
|
||||
# dist/docker/sha256sums-light.v1.0.0.txt
|
||||
|
||||
# Загрузка и запуск:
|
||||
xz -dc dist/docker/ss-tools.v1.0.0.tar.xz | docker load
|
||||
docker compose -f dist/docker/docker-compose.light.yml up
|
||||
```
|
||||
|
||||
Bootstrap администратора выполняется entrypoint-скриптом внутри backend container:
|
||||
|
||||
Reference in New Issue
Block a user