refactor: 重构 handleChatCompletions 函数模块化

- 使用策略模式处理不同后端(Claude/OpenAI/Gemini)
- 添加 OpenAI chat/completions 兼容支持
This commit is contained in:
jft0m
2025-10-04 14:11:13 +08:00
parent 2872198259
commit 530dac0e7f
2 changed files with 507 additions and 12 deletions

View File

@@ -31,10 +31,25 @@ class OpenAIToClaudeConverter {
stream: openaiRequest.stream || false
}
// Claude Code 必需的系统消息
// 定义 Claude Code 的默认系统提示词
const claudeCodeSystemMessage = "You are Claude Code, Anthropic's official CLI for Claude."
claudeRequest.system = claudeCodeSystemMessage
// 如果 OpenAI 请求中包含系统消息,提取并检查
const systemMessage = this._extractSystemMessage(openaiRequest.messages)
if (systemMessage && systemMessage.includes('You are currently in Xcode')) {
// Xcode 系统提示词
claudeRequest.system = systemMessage
logger.info(
`🔍 Xcode request detected, using Xcode system prompt (${systemMessage.length} chars)`
)
logger.debug(`📋 System prompt preview: ${systemMessage.substring(0, 150)}...`)
} else {
// 使用 Claude Code 默认系统提示词
claudeRequest.system = claudeCodeSystemMessage
logger.debug(
`📋 Using Claude Code default system prompt${systemMessage ? ' (ignored custom prompt)' : ''}`
)
}
// 处理停止序列
if (openaiRequest.stop) {