Team Ai
Apppublic

sin601/claude-code

sourceHugging Faceupdated 7mo agoView on Hugging Face
0likes
start-proxy.sh119 linesDownload Raw Back to scripts
1#!/bin/bash2# 启动 CLIProxyAPI 代理服务3# 支持任意 OpenAI 兼容 API4 5set -e6 7CONFIG_DIR="${CONFIG_DIR:-/config}"8HOME="${HOME:-/root}"9 10# 加载配置11if [ -f "${CONFIG_DIR}/config.env" ]; then12    set -a13    source "${CONFIG_DIR}/config.env"14    set +a15fi16 17# 检查是否启用代理18if [ "${ENABLE_PROXY}" != "true" ]; then19    echo "[Proxy] CLIProxyAPI is disabled."20    exit 021fi22 23# 确定 API 配置24# 优先使用 API_KEY,其次 ANTHROPIC_API_KEY25API_KEY_VALUE="${API_KEY:-${ANTHROPIC_API_KEY:-}}"26# 优先使用 API_BASE_URL27API_URL="${API_BASE_URL:-https://api.anthropic.com/v1}"28 29if [ -z "${API_KEY_VALUE}" ]; then30    echo "[Proxy] Warning: No API Key configured. Proxy will start but may not work."31fi32 33echo "[Proxy] Configuring CLIProxyAPI..."34echo "[Proxy] API URL: ${API_URL}"35echo "[Proxy] API Key: $([ -n "${API_KEY_VALUE}" ] && echo "configured" || echo "NOT SET")"36 37# 创建 CLIProxyAPI 配置38CONFIG_FILE="${HOME}/.cli-proxy-api/config.yaml"39mkdir -p "${HOME}/.cli-proxy-api"40 41# 构建提供商配置42# 支持多个 API Key(逗号分隔)43PROVIDERS_YAML=""44 45if [ -n "${API_KEY_VALUE}" ]; then46    IFS=',' read -ra KEYS <<< "${API_KEY_VALUE}"47    48    for i in "${!KEYS[@]}"; do49        KEY="${KEYS[$i]}"50        KEY=$(echo "$KEY" | xargs) # trim whitespace51        52        if [ -n "$KEY" ]; then53            PROVIDER_NAME="provider-$((i+1))"54            55            PROVIDERS_YAML+="56  - name: ${PROVIDER_NAME}57    base-url: \"${API_URL}\"58    api-key: \"${KEY}\"59    models:60      - name: \"claude-sonnet-4-20250514\"61        alias: \"claude-sonnet-4\"62      - name: \"claude-3-5-sonnet-20241022\"63        alias: \"claude-3.5-sonnet\"64      - name: \"claude-3-5-haiku-20241022\"65        alias: \"claude-3.5-haiku\"66      - name: \"claude-opus-4-20250514\"67        alias: \"claude-opus-4\"68"69        fi70    done71fi72 73# 写入配置文件74cat > "${CONFIG_FILE}" << EOF75# CLIProxyAPI Configuration76# Auto-generated for OpenAI-compatible API77 78host: ""79port: ${PROXY_PORT:-8080}80 81remote-management:82  allow-remote: false83  secret-key: "${MANAGEMENT_KEY:-}"84 85auth-dir: "${HOME}/.cli-proxy-api"86 87# API keys for authentication88api-keys:89  - "hf-space-key"90 91debug: false92 93# Routing strategy94routing:95  strategy: "round-robin"96 97# Quota exceeded behavior98quota-exceeded:99  switch-project: true100  switch-preview-model: true101 102# OpenAI compatibility providers103openai-compatibility:${PROVIDERS_YAML}104 105EOF106 107echo "[Proxy] Configuration saved to ${CONFIG_FILE}"108echo ""109echo "=== CLIProxyAPI Configuration ==="110cat "${CONFIG_FILE}"111echo ""112 113# 设置环境变量让 Claude Code 使用代理114export ANTHROPIC_BASE_URL="http://localhost:${PROXY_PORT:-8080}"115 116# 启动 CLIProxyAPI117echo "[Proxy] Starting CLIProxyAPI on port ${PROXY_PORT:-8080}..."118exec cliproxyapi --config "${CONFIG_FILE}"119