mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 09:38:02 +00:00
fix: 优化cache control问题
This commit is contained in:
@@ -39,17 +39,8 @@ class ClaudeRelayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 🔍 判断是否是真实的 Claude Code 请求
|
// 🔍 判断是否是真实的 Claude Code 请求
|
||||||
isRealClaudeCodeRequest(requestBody, clientHeaders) {
|
isRealClaudeCodeRequest(requestBody) {
|
||||||
// 使用 claudeCodeValidator 来进行完整的验证
|
return ClaudeCodeValidator.hasClaudeCodeSystemPrompt(requestBody)
|
||||||
// 注意:claudeCodeValidator.validate() 需要一个完整的 req 对象
|
|
||||||
// 我们需要构造一个最小化的 req 对象来满足验证器的需求
|
|
||||||
const mockReq = {
|
|
||||||
headers: clientHeaders || {},
|
|
||||||
body: requestBody,
|
|
||||||
path: '/api/v1/messages'
|
|
||||||
}
|
|
||||||
|
|
||||||
return ClaudeCodeValidator.validate(mockReq)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 🚀 转发请求到Claude API
|
// 🚀 转发请求到Claude API
|
||||||
@@ -397,7 +388,7 @@ class ClaudeRelayService {
|
|||||||
if (
|
if (
|
||||||
clientHeaders &&
|
clientHeaders &&
|
||||||
Object.keys(clientHeaders).length > 0 &&
|
Object.keys(clientHeaders).length > 0 &&
|
||||||
this.isRealClaudeCodeRequest(requestBody, clientHeaders)
|
this.isRealClaudeCodeRequest(requestBody)
|
||||||
) {
|
) {
|
||||||
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
|
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
|
||||||
}
|
}
|
||||||
@@ -459,7 +450,7 @@ class ClaudeRelayService {
|
|||||||
this._stripTtlFromCacheControl(processedBody)
|
this._stripTtlFromCacheControl(processedBody)
|
||||||
|
|
||||||
// 判断是否是真实的 Claude Code 请求
|
// 判断是否是真实的 Claude Code 请求
|
||||||
const isRealClaudeCode = this.isRealClaudeCodeRequest(processedBody, clientHeaders)
|
const isRealClaudeCode = this.isRealClaudeCodeRequest(processedBody)
|
||||||
|
|
||||||
// 如果不是真实的 Claude Code 请求,需要设置 Claude Code 系统提示词
|
// 如果不是真实的 Claude Code 请求,需要设置 Claude Code 系统提示词
|
||||||
if (!isRealClaudeCode) {
|
if (!isRealClaudeCode) {
|
||||||
@@ -760,7 +751,7 @@ class ClaudeRelayService {
|
|||||||
const filteredHeaders = this._filterClientHeaders(clientHeaders)
|
const filteredHeaders = this._filterClientHeaders(clientHeaders)
|
||||||
|
|
||||||
// 判断是否是真实的 Claude Code 请求
|
// 判断是否是真实的 Claude Code 请求
|
||||||
const isRealClaudeCode = this.isRealClaudeCodeRequest(body, clientHeaders)
|
const isRealClaudeCode = this.isRealClaudeCodeRequest(body)
|
||||||
|
|
||||||
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
|
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
|
||||||
const finalHeaders = { ...filteredHeaders }
|
const finalHeaders = { ...filteredHeaders }
|
||||||
@@ -1065,7 +1056,7 @@ class ClaudeRelayService {
|
|||||||
const filteredHeaders = this._filterClientHeaders(clientHeaders)
|
const filteredHeaders = this._filterClientHeaders(clientHeaders)
|
||||||
|
|
||||||
// 判断是否是真实的 Claude Code 请求
|
// 判断是否是真实的 Claude Code 请求
|
||||||
const isRealClaudeCode = this.isRealClaudeCodeRequest(body, clientHeaders)
|
const isRealClaudeCode = this.isRealClaudeCodeRequest(body)
|
||||||
|
|
||||||
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
|
// 如果不是真实的 Claude Code 请求,需要使用从账户获取的 Claude Code headers
|
||||||
const finalHeaders = { ...filteredHeaders }
|
const finalHeaders = { ...filteredHeaders }
|
||||||
@@ -1595,7 +1586,7 @@ class ClaudeRelayService {
|
|||||||
if (
|
if (
|
||||||
clientHeaders &&
|
clientHeaders &&
|
||||||
Object.keys(clientHeaders).length > 0 &&
|
Object.keys(clientHeaders).length > 0 &&
|
||||||
this.isRealClaudeCodeRequest(body, clientHeaders)
|
this.isRealClaudeCodeRequest(body)
|
||||||
) {
|
) {
|
||||||
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
|
await claudeCodeHeadersService.storeAccountHeaders(accountId, clientHeaders)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user