| #!/bin/bash |
|
|
| |
| if [ -z "$UPSTREAM_BASE_URL" ]; then |
| echo "❌ UPSTREAM_BASE_URL is not set" |
| exit 1 |
| fi |
| if [ -z "$UPSTREAM_API_KEY" ]; then |
| echo "❌ UPSTREAM_API_KEY is not set" |
| exit 1 |
| fi |
| if [ -z "$UPSTREAM_MODELS" ]; then |
| echo "❌ UPSTREAM_MODELS is not set" |
| exit 1 |
| fi |
| if [ -z "$CLIENT_API_KEY" ]; then |
| echo "❌ CLIENT_API_KEY is not set" |
| exit 1 |
| fi |
|
|
| |
| MODELS_YAML="" |
| IFS=',' read -ra MODEL_ARRAY <<< "${UPSTREAM_MODELS}" |
| for model in "${MODEL_ARRAY[@]}"; do |
| model=$(echo "$model" | xargs) |
| MODELS_YAML="${MODELS_YAML} - \"${model}\" |
| " |
| done |
|
|
| cat > config.yaml << EOF |
| server: |
| port: 7860 |
| host: "0.0.0.0" |
| timeout: 180 |
| |
| upstream_services: |
| - name: "openai" |
| base_url: "${UPSTREAM_BASE_URL}" |
| api_key: "${UPSTREAM_API_KEY}" |
| description: "Default Service" |
| is_default: true |
| models: |
| ${MODELS_YAML} |
| client_authentication: |
| allowed_keys: |
| - "${CLIENT_API_KEY}" |
| |
| features: |
| enable_function_calling: true |
| log_level: "INFO" |
| convert_developer_to_system: true |
| key_passthrough: ${KEY_PASSTHROUGH:-false} |
| model_passthrough: ${MODEL_PASSTHROUGH:-false} |
| enable_fc_error_retry: false |
| fc_error_retry_max_attempts: 3 |
| EOF |
|
|
| echo "=== Generated config.yaml ===" |
| sed 's/api_key:.*/api_key: "***"/g' config.yaml |
| echo "==============================" |
|
|
| python -u main.py |