feat: restore local model gateway via cliproxy
This commit is contained in:
73
scripts/render_cliproxy_config.sh
Executable file
73
scripts/render_cliproxy_config.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
ROOT="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)"
|
||||
|
||||
if [ -f "$ROOT/.env" ]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
. "$ROOT/.env"
|
||||
set +a
|
||||
fi
|
||||
|
||||
DATA_DIR="$ROOT/data/cliproxyapi"
|
||||
CONFIG_PATH="$DATA_DIR/config.yaml"
|
||||
mkdir -p "$DATA_DIR/auths" "$DATA_DIR/logs"
|
||||
|
||||
: "${CLIPROXY_MANAGEMENT_SECRET:=storyforge-local-management}"
|
||||
: "${CLIPROXY_DASHSCOPE_BASE_URL:=https://dashscope.aliyuncs.com/compatible-mode/v1}"
|
||||
|
||||
python3 - <<'PY' "$CONFIG_PATH" "$CLIPROXY_MANAGEMENT_SECRET" "$CLIPROXY_DASHSCOPE_BASE_URL"
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
config_path = Path(sys.argv[1])
|
||||
management_secret = sys.argv[2]
|
||||
base_url = sys.argv[3]
|
||||
dashscope_api_key = os.environ.get("DASHSCOPE_API_KEY", "").strip()
|
||||
|
||||
lines = [
|
||||
'host: ""',
|
||||
'port: 8317',
|
||||
'tls:',
|
||||
' enable: false',
|
||||
' cert: ""',
|
||||
' key: ""',
|
||||
'remote-management:',
|
||||
' allow-remote: false',
|
||||
f' secret-key: "{management_secret}"',
|
||||
' disable-control-panel: false',
|
||||
'auth-dir: "/root/.cli-proxy-api"',
|
||||
'debug: false',
|
||||
'logging-to-file: true',
|
||||
'logs-max-total-size-mb: 200',
|
||||
'usage-statistics-enabled: true',
|
||||
'request-retry: 2',
|
||||
]
|
||||
|
||||
if dashscope_api_key:
|
||||
lines.extend(
|
||||
[
|
||||
'openai-compatibility:',
|
||||
' - name: "dashscope"',
|
||||
f' base-url: "{base_url}"',
|
||||
' api-key-entries:',
|
||||
f' - api-key: "{dashscope_api_key}"',
|
||||
' models:',
|
||||
' - name: "glm-5"',
|
||||
' alias: "GLM-5"',
|
||||
' - name: "glm-5"',
|
||||
' alias: "glm-5"',
|
||||
' - name: "qwen3.5-plus"',
|
||||
' alias: "qwen3.5-plus"',
|
||||
]
|
||||
)
|
||||
|
||||
config_path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||||
|
||||
if dashscope_api_key:
|
||||
print(f"rendered cliproxy config with DashScope upstream -> {config_path}")
|
||||
else:
|
||||
print(f"rendered cliproxy config without upstream credentials -> {config_path}")
|
||||
PY
|
||||
Reference in New Issue
Block a user