mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 21:10:51 +08:00
**fix(translator): ensure partial content is retained while skipping encrypted thoughtSignature**
- Updated handling of `thoughtSignature` across all translator modules to retain other content payloads if present. - Adjusted logic for `thought_signature` and `inline_data` keys for consistent processing.
This commit is contained in:
@@ -105,14 +105,19 @@ func ConvertAntigravityResponseToOpenAI(_ context.Context, _ string, originalReq
|
|||||||
partTextResult := partResult.Get("text")
|
partTextResult := partResult.Get("text")
|
||||||
functionCallResult := partResult.Get("functionCall")
|
functionCallResult := partResult.Get("functionCall")
|
||||||
thoughtSignatureResult := partResult.Get("thoughtSignature")
|
thoughtSignatureResult := partResult.Get("thoughtSignature")
|
||||||
|
if !thoughtSignatureResult.Exists() {
|
||||||
|
thoughtSignatureResult = partResult.Get("thought_signature")
|
||||||
|
}
|
||||||
inlineDataResult := partResult.Get("inlineData")
|
inlineDataResult := partResult.Get("inlineData")
|
||||||
if !inlineDataResult.Exists() {
|
if !inlineDataResult.Exists() {
|
||||||
inlineDataResult = partResult.Get("inline_data")
|
inlineDataResult = partResult.Get("inline_data")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle thoughtSignature - this is encrypted reasoning content that should not be exposed to the client
|
hasThoughtSignature := thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != ""
|
||||||
if thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != "" {
|
hasContentPayload := partTextResult.Exists() || functionCallResult.Exists() || inlineDataResult.Exists()
|
||||||
// Skip thoughtSignature processing - it's internal encrypted data
|
|
||||||
|
// Ignore encrypted thoughtSignature but keep any actual content in the same part.
|
||||||
|
if hasThoughtSignature && !hasContentPayload {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,14 +105,19 @@ func ConvertCliResponseToOpenAI(_ context.Context, _ string, originalRequestRawJ
|
|||||||
partTextResult := partResult.Get("text")
|
partTextResult := partResult.Get("text")
|
||||||
functionCallResult := partResult.Get("functionCall")
|
functionCallResult := partResult.Get("functionCall")
|
||||||
thoughtSignatureResult := partResult.Get("thoughtSignature")
|
thoughtSignatureResult := partResult.Get("thoughtSignature")
|
||||||
|
if !thoughtSignatureResult.Exists() {
|
||||||
|
thoughtSignatureResult = partResult.Get("thought_signature")
|
||||||
|
}
|
||||||
inlineDataResult := partResult.Get("inlineData")
|
inlineDataResult := partResult.Get("inlineData")
|
||||||
if !inlineDataResult.Exists() {
|
if !inlineDataResult.Exists() {
|
||||||
inlineDataResult = partResult.Get("inline_data")
|
inlineDataResult = partResult.Get("inline_data")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle thoughtSignature - this is encrypted reasoning content that should not be exposed to the client
|
hasThoughtSignature := thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != ""
|
||||||
if thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != "" {
|
hasContentPayload := partTextResult.Exists() || functionCallResult.Exists() || inlineDataResult.Exists()
|
||||||
// Skip thoughtSignature processing - it's internal encrypted data
|
|
||||||
|
// Ignore encrypted thoughtSignature but keep any actual content in the same part.
|
||||||
|
if hasThoughtSignature && !hasContentPayload {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,8 +116,11 @@ func ConvertGeminiResponseToOpenAI(_ context.Context, _ string, originalRequestR
|
|||||||
thoughtSignatureResult = partResult.Get("thought_signature")
|
thoughtSignatureResult = partResult.Get("thought_signature")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip thoughtSignature parts (encrypted reasoning not exposed downstream).
|
hasThoughtSignature := thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != ""
|
||||||
if thoughtSignatureResult.Exists() && thoughtSignatureResult.String() != "" {
|
hasContentPayload := partTextResult.Exists() || functionCallResult.Exists() || inlineDataResult.Exists()
|
||||||
|
|
||||||
|
// Skip pure thoughtSignature parts but keep any actual payload in the same part.
|
||||||
|
if hasThoughtSignature && !hasContentPayload {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user