File size: 2,302 Bytes
6fefda3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash

# 多JWT负载均衡启动示例脚本

echo "=== JetBrains AI Proxy 多JWT负载均衡启动示例 ==="

# 检查是否提供了JWT tokens
if [ -z "$1" ]; then
    echo "用法: $0 \"jwt_token1,jwt_token2,jwt_token3\" [bearer_token] [strategy] [port]"
    echo ""
    echo "参数说明:"
    echo "  jwt_tokens    - 多个JWT tokens,用逗号分隔(必需)"
    echo "  bearer_token  - Bearer token(可选,默认从环境变量读取)"
    echo "  strategy      - 负载均衡策略:round_robin 或 random(可选,默认round_robin)"
    echo "  port          - 监听端口(可选,默认8080)"
    echo ""
    echo "示例:"
    echo "  $0 \"jwt1,jwt2,jwt3\""
    echo "  $0 \"jwt1,jwt2,jwt3\" \"bearer123\" \"random\" 9090"
    echo ""
    echo "环境变量配置示例:"
    echo "  export JWT_TOKENS=\"jwt1,jwt2,jwt3\""
    echo "  export BEARER_TOKEN=\"your_bearer_token\""
    echo "  export LOAD_BALANCE_STRATEGY=\"random\""
    echo "  ./jetbrains-ai-proxy"
    exit 1
fi

# 参数设置
JWT_TOKENS="$1"
BEARER_TOKEN="${2:-$BEARER_TOKEN}"
STRATEGY="${3:-round_robin}"
PORT="${4:-8080}"

# 检查Bearer token
if [ -z "$BEARER_TOKEN" ]; then
    echo "错误: 需要提供Bearer token"
    echo "请通过参数提供或设置环境变量 BEARER_TOKEN"
    exit 1
fi

# 检查策略有效性
if [ "$STRATEGY" != "round_robin" ] && [ "$STRATEGY" != "random" ]; then
    echo "警告: 无效的负载均衡策略 '$STRATEGY',使用默认策略 'round_robin'"
    STRATEGY="round_robin"
fi

# 计算JWT tokens数量
TOKEN_COUNT=$(echo "$JWT_TOKENS" | tr ',' '\n' | wc -l | tr -d ' ')

echo "配置信息:"
echo "  JWT Tokens数量: $TOKEN_COUNT"
echo "  负载均衡策略: $STRATEGY"
echo "  监听端口: $PORT"
echo "  Bearer Token: ${BEARER_TOKEN:0:10}..."
echo ""

# 启动服务
echo "启动 JetBrains AI Proxy..."
echo "命令: ./jetbrains-ai-proxy -p $PORT -c \"$JWT_TOKENS\" -k \"$BEARER_TOKEN\" -s \"$STRATEGY\""
echo ""

# 检查可执行文件是否存在
if [ ! -f "./jetbrains-ai-proxy" ]; then
    echo "错误: 找不到可执行文件 './jetbrains-ai-proxy'"
    echo "请先编译项目: go build -o jetbrains-ai-proxy"
    exit 1
fi

# 启动服务
exec ./jetbrains-ai-proxy -p "$PORT" -c "$JWT_TOKENS" -k "$BEARER_TOKEN" -s "$STRATEGY"