refactor: 重构gemini转部分

This commit is contained in:
shaw
2025-11-25 10:30:39 +08:00
parent fab2df0cf5
commit a4dcfb842e
5 changed files with 2479 additions and 2627 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,10 +2,11 @@ const express = require('express')
const { authenticateApiKey } = require('../middleware/auth')
const logger = require('../utils/logger')
const { handleChatCompletion } = require('./openaiClaudeRoutes')
// 从 handlers/geminiHandlers.js 导入处理函数
const {
handleGenerateContent: geminiHandleGenerateContent,
handleStreamGenerateContent: geminiHandleStreamGenerateContent
} = require('./geminiRoutes')
} = require('../handlers/geminiHandlers')
const openaiRoutes = require('./openaiRoutes')
const router = express.Router()
@@ -16,25 +17,6 @@ function detectBackendFromModel(modelName) {
return 'claude' // 默认 Claude
}
// 首先尝试使用 modelService 查找模型的 provider
try {
const modelService = require('../services/modelService')
const provider = modelService.getModelProvider(modelName)
if (provider === 'anthropic') {
return 'claude'
}
if (provider === 'openai') {
return 'openai'
}
if (provider === 'google') {
return 'gemini'
}
} catch (error) {
logger.warn(`⚠️ Failed to detect backend from modelService: ${error.message}`)
}
// 降级到前缀匹配作为后备方案
const model = modelName.toLowerCase()
// Claude 模型
@@ -42,21 +24,16 @@ function detectBackendFromModel(modelName) {
return 'claude'
}
// OpenAI 模型
if (
model.startsWith('gpt-') ||
model.startsWith('o1-') ||
model.startsWith('o3-') ||
model === 'chatgpt-4o-latest'
) {
return 'openai'
}
// Gemini 模型
if (model.startsWith('gemini-')) {
return 'gemini'
}
// OpenAI 模型
if (model.startsWith('gpt-')) {
return 'openai'
}
// 默认使用 Claude
return 'claude'
}