renminwansui1976 commited on
Commit
dc9131f
·
unverified ·
1 Parent(s): 21c0bd2

创建 start.sh

Browse files
Files changed (1) hide show
  1. start.sh +52 -0
start.sh ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # ── 1. Validate required LiteLLM vars ─────────────────────────────────────────
5
+ : "${LITELLM_API_KEY:?LITELLM_API_KEY is required}"
6
+ : "${LITELLM_MODEL:?LITELLM_MODEL is required (e.g. openai/gpt-4o or anthropic/claude-3-5-sonnet-20241022)}"
7
+
8
+ # ── 2. Generate LiteLLM proxy config ──────────────────────────────────────────
9
+ LITELLM_CONFIG=/tmp/litellm_config.yaml
10
+
11
+ cat > "$LITELLM_CONFIG" << YAML
12
+ model_list:
13
+ - model_name: default
14
+ litellm_params:
15
+ model: "${LITELLM_MODEL}"
16
+ api_key: "${LITELLM_API_KEY}"
17
+ $(if [ -n "${LITELLM_API_BASE:-}" ]; then echo " api_base: \"${LITELLM_API_BASE}\""; fi)
18
+
19
+ litellm_settings:
20
+ drop_params: true
21
+ num_retries: 3
22
+ request_timeout: 120
23
+ YAML
24
+
25
+ echo "[start.sh] LiteLLM config written to $LITELLM_CONFIG"
26
+
27
+ # ── 3. Start LiteLLM proxy in the background ──────────────────────────────────
28
+ litellm --config "$LITELLM_CONFIG" --port 4000 --host 127.0.0.1 &
29
+ LITELLM_PID=$!
30
+ echo "[start.sh] LiteLLM proxy started (pid $LITELLM_PID)"
31
+
32
+ # ── 4. Wait for LiteLLM to be healthy ─────────────────────────────────────────
33
+ MAX_WAIT=30
34
+ WAITED=0
35
+ until curl -sf http://127.0.0.1:4000/health/liveliness > /dev/null 2>&1; do
36
+ if [ "$WAITED" -ge "$MAX_WAIT" ]; then
37
+ echo "[start.sh] ERROR: LiteLLM did not become healthy within ${MAX_WAIT}s"
38
+ exit 1
39
+ fi
40
+ sleep 1
41
+ WAITED=$((WAITED + 1))
42
+ done
43
+ echo "[start.sh] LiteLLM is healthy after ${WAITED}s"
44
+
45
+ # ── 5. Start OpenClaw pointing to the LiteLLM proxy ──────────────────────────
46
+ # We expose LiteLLM as an OpenAI-compatible endpoint.
47
+ # OPENCLAW_DEFAULT_MODEL must match the model_name we set above ("default").
48
+ exec env \
49
+ OPENCLAW_DEFAULT_MODEL=default \
50
+ OPENAI_API_KEY=litellm-proxy \
51
+ OPENAI_BASE_URL=http://127.0.0.1:4000 \
52
+ node openclaw.mjs gateway --allow-unconfigured