feat: 为claude类型账号增加测试功能

This commit is contained in:
shaw
2025-11-28 10:51:01 +08:00
parent fd2b8a0114
commit 7db70e2dc0
7 changed files with 988 additions and 60 deletions

View File

@@ -7,6 +7,7 @@ const express = require('express')
const router = express.Router()
const claudeAccountService = require('../../services/claudeAccountService')
const claudeRelayService = require('../../services/claudeRelayService')
const accountGroupService = require('../../services/accountGroupService')
const apiKeyService = require('../../services/apiKeyService')
const redis = require('../../models/redis')
@@ -787,4 +788,17 @@ router.put(
}
)
// 测试Claude OAuth账户连通性流式响应- 复用 claudeRelayService
router.post('/claude-accounts/:accountId/test', authenticateAdmin, async (req, res) => {
const { accountId } = req.params
try {
// 直接调用服务层的测试方法
await claudeRelayService.testAccountConnection(accountId, res)
} catch (error) {
logger.error(`❌ Failed to test Claude OAuth account:`, error)
// 错误已在服务层处理,这里仅做日志记录
}
})
module.exports = router

View File

@@ -7,6 +7,7 @@ const express = require('express')
const router = express.Router()
const claudeConsoleAccountService = require('../../services/claudeConsoleAccountService')
const claudeConsoleRelayService = require('../../services/claudeConsoleRelayService')
const accountGroupService = require('../../services/accountGroupService')
const apiKeyService = require('../../services/apiKeyService')
const redis = require('../../models/redis')
@@ -466,4 +467,17 @@ router.post('/claude-console-accounts/reset-all-usage', authenticateAdmin, async
}
})
// 测试Claude Console账户连通性流式响应- 复用 claudeConsoleRelayService
router.post('/claude-console-accounts/:accountId/test', authenticateAdmin, async (req, res) => {
const { accountId } = req.params
try {
// 直接调用服务层的测试方法
await claudeConsoleRelayService.testAccountConnection(accountId, res)
} catch (error) {
logger.error(`❌ Failed to test Claude Console account:`, error)
// 错误已在服务层处理,这里仅做日志记录
}
})
module.exports = router

View File

@@ -104,18 +104,18 @@ async function handleMessagesRequest(req, res) {
const isStream = req.body.stream === true
// 临时修复新版本客户端删除context_management字段避免报错
if (req.body.context_management) {
delete req.body.context_management
}
// if (req.body.context_management) {
// delete req.body.context_management
// }
// 遍历tools数组删除input_examples字段
if (req.body.tools && Array.isArray(req.body.tools)) {
req.body.tools.forEach((tool) => {
if (tool && typeof tool === 'object' && tool.input_examples) {
delete tool.input_examples
}
})
}
// if (req.body.tools && Array.isArray(req.body.tools)) {
// req.body.tools.forEach((tool) => {
// if (tool && typeof tool === 'object' && tool.input_examples) {
// delete tool.input_examples
// }
// })
// }
logger.api(
`🚀 Processing ${isStream ? 'stream' : 'non-stream'} request for key: ${req.apiKey.name}`