Blame view

scripts/start_translator.sh 1.79 KB
d1d356f8   tangwang   脚本优化
1
2
  #!/bin/bash
  #
0fd2f875   tangwang   translate
3
4
5
6
7
8
  # Start Translation Service (port 6006).
  #
  # Design:
  # - Run in isolated venv `.venv-translator`
  # - Load enabled translation capabilities at startup
  # - Local models should be downloaded ahead of time into configured model_dir
d1d356f8   tangwang   脚本优化
9
  #
af7ee060   tangwang   service_ctl 简化为“显...
10
  set -euo pipefail
d1d356f8   tangwang   脚本优化
11
  
0fd2f875   tangwang   translate
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
  cd "${PROJECT_ROOT}"
  
  TRANSLATOR_VENV="${TRANSLATOR_VENV:-${PROJECT_ROOT}/.venv-translator}"
  PYTHON_BIN="${TRANSLATOR_VENV}/bin/python"
  
  if [[ ! -x "${PYTHON_BIN}" ]]; then
    echo "ERROR: translator venv not found: ${TRANSLATOR_VENV}" >&2
    echo "Please run: ./scripts/setup_translator_venv.sh" >&2
    exit 1
  fi
  
  # shellcheck source=scripts/lib/load_env.sh
  source "${PROJECT_ROOT}/scripts/lib/load_env.sh"
  load_env_file "${PROJECT_ROOT}/.env"
d1d356f8   tangwang   脚本优化
27
28
  
  TRANSLATION_HOST="${TRANSLATION_HOST:-0.0.0.0}"
af7ee060   tangwang   service_ctl 简化为“显...
29
  TRANSLATION_PORT="${TRANSLATION_PORT:-6006}"
0fd2f875   tangwang   translate
30
31
  DEFAULT_MODEL=$("${PYTHON_BIN}" -c "from config.services_config import get_translation_config; print(get_translation_config()['default_model'])")
  ENABLED_MODELS=$("${PYTHON_BIN}" -c "from config.services_config import get_translation_config; from translation.settings import get_enabled_translation_models; print(','.join(get_enabled_translation_models(get_translation_config())))")
d1d356f8   tangwang   脚本优化
32
33
34
35
  
  echo "========================================"
  echo "Starting Translation Service"
  echo "========================================"
0fd2f875   tangwang   translate
36
  echo "Python: ${PYTHON_BIN}"
d1d356f8   tangwang   脚本优化
37
38
  echo "Host: ${TRANSLATION_HOST}"
  echo "Port: ${TRANSLATION_PORT}"
0fd2f875   tangwang   translate
39
40
41
42
43
44
  echo "Default model: ${DEFAULT_MODEL}"
  echo "Enabled models: ${ENABLED_MODELS}"
  echo
  echo "Tips:"
  echo "  - Use a single worker so local models are loaded once."
  echo "  - Download local models first if you enable them in config."
d1d356f8   tangwang   脚本优化
45
46
  echo
  
0fd2f875   tangwang   translate
47
  exec "${PYTHON_BIN}" -m uvicorn api.translator_app:app \
d1d356f8   tangwang   脚本优化
48
49
50
    --host "${TRANSLATION_HOST}" \
    --port "${TRANSLATION_PORT}" \
    --workers 1