fix: 优化cache control问题

This commit is contained in:
shaw
2025-10-07 14:37:28 +08:00
parent 1777309218
commit 88429e1a24

View File

@@ -39,17 +39,8 @@ class ClaudeRelayService {
}
// 🔍 判断是否是真实的 Claude Code 请求
isRealClaudeCodeRequest(requestBody, clientHeaders) {
// 使用 claudeCodeValidator 来进行完整的验证
// 注意claudeCodeValidator.validate() 需要一个完整的 req 对象
// 我们需要构造一个最小化的 req 对象来满足验证器的需求
const mockReq = {
headers: clientHeaders || {},
body: requestBody,
path: '/api/v1/messages'
}
return ClaudeCodeValidator.validate(mockReq)
isRealClaudeCodeRequest(requestBody) {
return ClaudeCodeValidator.hasClaudeCodeSystemPrompt(requestBody)
}
// 🚀 转发请求到Claude API
@@ -397,7 +388,7 @@ class ClaudeRelayService {
if (
clientHeaders &&
Object.keys(clientHeaders).length > 0 &&
this.isRealClaudeCodeRequest(requestBody, clientHeaders)
this.isRealClaudeCodeRequest(requestBody)
) {
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
}
@@ -459,7 +450,7 @@ class ClaudeRelayService {
this._stripTtlFromCacheControl(processedBody)
// 判断是否是真实的 Claude Code 请求
const isRealClaudeCode = this.isRealClaudeCodeRequest(processedBody, clientHeaders)
const isRealClaudeCode = this.isRealClaudeCodeRequest(processedBody)
// 如果不是真实的 Claude Code 请求,需要设置 Claude Code 系统提示词
if (!isRealClaudeCode) {
@@ -760,7 +751,7 @@ class ClaudeRelayService {
const filteredHeaders = this._filterClientHeaders(clientHeaders)
// 判断是否是真实的 Claude Code 请求
const isRealClaudeCode = this.isRealClaudeCodeRequest(body, clientHeaders)
const isRealClaudeCode = this.isRealClaudeCodeRequest(body)
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
const finalHeaders = { ...filteredHeaders }
@@ -1065,7 +1056,7 @@ class ClaudeRelayService {
const filteredHeaders = this._filterClientHeaders(clientHeaders)
// 判断是否是真实的 Claude Code 请求
const isRealClaudeCode = this.isRealClaudeCodeRequest(body, clientHeaders)
const isRealClaudeCode = this.isRealClaudeCodeRequest(body)
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
const finalHeaders = { ...filteredHeaders }
@@ -1595,7 +1586,7 @@ class ClaudeRelayService {
if (
clientHeaders &&
Object.keys(clientHeaders).length > 0 &&
this.isRealClaudeCodeRequest(body, clientHeaders)
this.isRealClaudeCodeRequest(body)
) {
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
}