feat: 添加账户状态监控和自动恢复机制

- 实现账户健康度监控系统,支持30分钟内错误率检测
- 添加自动恢复机制,失败账户在30分钟后自动尝试恢复
- 优化账户选择策略,优先选择健康账户
- 增强Redis键管理,添加账户状态和错误追踪功能
- 改进Gemini服务错误处理和重试逻辑
- 新增standardGeminiRoutes标准化路由支持

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
shaw
2025-09-11 22:02:53 +08:00
parent b6b16d05f0
commit 7c4feec5aa
8 changed files with 912 additions and 10 deletions

View File

@@ -1290,13 +1290,17 @@ async function generateContent(
// 按照 gemini-cli 的转换格式构造请求
const request = {
model: requestData.model,
user_prompt_id: userPromptId,
request: {
...requestData.request,
session_id: sessionId
}
}
// 只有当 userPromptId 存在时才添加
if (userPromptId) {
request.user_prompt_id = userPromptId
}
// 只有当projectId存在时才添加project字段
if (projectId) {
request.project = projectId
@@ -1309,6 +1313,12 @@ async function generateContent(
sessionId
})
// 添加详细的请求日志
logger.info('📦 generateContent 请求详情', {
url: `${CODE_ASSIST_ENDPOINT}/${CODE_ASSIST_API_VERSION}:generateContent`,
requestBody: JSON.stringify(request, null, 2)
})
const axiosConfig = {
url: `${CODE_ASSIST_ENDPOINT}/${CODE_ASSIST_API_VERSION}:generateContent`,
method: 'POST',
@@ -1356,13 +1366,17 @@ async function generateContentStream(
// 按照 gemini-cli 的转换格式构造请求
const request = {
model: requestData.model,
user_prompt_id: userPromptId,
request: {
...requestData.request,
session_id: sessionId
}
}
// 只有当 userPromptId 存在时才添加
if (userPromptId) {
request.user_prompt_id = userPromptId
}
// 只有当projectId存在时才添加project字段
if (projectId) {
request.project = projectId