建立可扩展的提供商适配器注册表,实现动态服务发现与插槽管理: 架构改进: - 采用 Map 注册表替代 switch-case 硬编码,支持热插拔适配器 - 实现 acquireSlot/releaseSlot 机制,精确追踪活跃请求与等待队列 - 新增节点评分算法,综合考量并发数、队列长度、健康状态 核心能力: - 支持并发限制与队列等待,避免单节点过载 (concurrencyLimit/queueLimit) - 实现 Fallback 链式调用,429 错误自动切换备用凭证 - 添加请求级 IP 追踪,日志格式优化为 `clientIp:requestId` 配套更新: - 管理界面新增并发/队列配置字段与 Grok 逆向提供商选项 - 用量查询服务扩展 Grok 支持,同步剩余查询次数 (固定总量 80) - 新增并发测试脚本 (tests/concurrent-test.js),支持自定义并发数与 RPM 限制 配置项: - GROK_COOKIE_TOKEN, GROK_CF_CLEARANCE, GROK_USER_AGENT, GROK_BASE_URL
61 lines
2 KiB
Text
61 lines
2 KiB
Text
{
|
|
"REQUIRED_API_KEY": "123456",
|
|
"SERVER_PORT": 3000,
|
|
"HOST": "0.0.0.0",
|
|
"MODEL_PROVIDER": "gemini-cli-oauth",
|
|
"SYSTEM_PROMPT_FILE_PATH": "configs/input_system_prompt.txt",
|
|
"SYSTEM_PROMPT_MODE": "overwrite",
|
|
"PROMPT_LOG_BASE_NAME": "prompt_log",
|
|
"PROMPT_LOG_MODE": "none",
|
|
"REQUEST_MAX_RETRIES": 3,
|
|
"REQUEST_BASE_DELAY": 1000,
|
|
"CRON_NEAR_MINUTES": 1,
|
|
"CRON_REFRESH_TOKEN": false,
|
|
"PROVIDER_POOLS_FILE_PATH": "configs/provider_pools.json",
|
|
"MAX_ERROR_COUNT": 3,
|
|
"GROK_COOKIE_TOKEN": "your-sso-cookie-token",
|
|
"GROK_CF_CLEARANCE": "your-cf-clearance-cookie",
|
|
"GROK_USER_AGENT": "Mozilla/5.0 ...",
|
|
"GROK_BASE_URL": "https://grok.com",
|
|
"providerFallbackChain": {
|
|
"gemini-cli-oauth": ["gemini-antigravity"],
|
|
"gemini-antigravity": ["gemini-cli-oauth"],
|
|
"claude-kiro-oauth": ["claude-custom"],
|
|
"claude-custom": ["claude-kiro-oauth"]
|
|
},
|
|
"modelFallbackMapping": {
|
|
"gemini-claude-opus-4-5-thinking": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-opus-4-5"
|
|
},
|
|
"gemini-claude-sonnet-4-5-thinking": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-sonnet-4-5"
|
|
},
|
|
"gemini-claude-sonnet-4-5": {
|
|
"targetProviderType": "claude-kiro-oauth",
|
|
"targetModel": "claude-sonnet-4-5"
|
|
},
|
|
"claude-opus-4-5": {
|
|
"targetProviderType": "gemini-antigravity",
|
|
"targetModel": "gemini-claude-opus-4-5-thinking"
|
|
},
|
|
"claude-sonnet-4-5": {
|
|
"targetProviderType": "gemini-antigravity",
|
|
"targetModel": "gemini-claude-sonnet-4-5"
|
|
}
|
|
},
|
|
"PROXY_URL": "http://127.0.0.1:1089",
|
|
"PROXY_ENABLED_PROVIDERS": [
|
|
"gemini-cli-oauth",
|
|
"gemini-antigravity"
|
|
],
|
|
"LOG_ENABLED": true,
|
|
"LOG_OUTPUT_MODE": "all",
|
|
"LOG_LEVEL": "info",
|
|
"LOG_DIR": "logs",
|
|
"LOG_INCLUDE_REQUEST_ID": true,
|
|
"LOG_INCLUDE_TIMESTAMP": true,
|
|
"LOG_MAX_FILE_SIZE": 10485760,
|
|
"LOG_MAX_FILES": 10
|
|
}
|