From dcae098e236188736dab3153083dc4f99ee20f76 Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Sat, 27 Dec 2025 01:25:05 +0800 Subject: [PATCH] Fixed: #736 fix(translators): handle gjson string types in Claude request processing to ensure consistent content parsing --- .../openai/responses/claude_openai-responses_request.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/translator/claude/openai/responses/claude_openai-responses_request.go b/internal/translator/claude/openai/responses/claude_openai-responses_request.go index eae44205..d4b7e05f 100644 --- a/internal/translator/claude/openai/responses/claude_openai-responses_request.go +++ b/internal/translator/claude/openai/responses/claude_openai-responses_request.go @@ -114,13 +114,16 @@ func ConvertOpenAIResponsesRequestToClaude(modelName string, inputRawJSON []byte var builder strings.Builder if parts := item.Get("content"); parts.Exists() && parts.IsArray() { parts.ForEach(func(_, part gjson.Result) bool { - text := part.Get("text").String() + textResult := part.Get("text") + text := textResult.String() if builder.Len() > 0 && text != "" { builder.WriteByte('\n') } builder.WriteString(text) return true }) + } else if parts.Type == gjson.String { + builder.WriteString(parts.String()) } instructionsText = builder.String() if instructionsText != "" { @@ -207,6 +210,8 @@ func ConvertOpenAIResponsesRequestToClaude(modelName string, inputRawJSON []byte } return true }) + } else if parts.Type == gjson.String { + textAggregate.WriteString(parts.String()) } // Fallback to given role if content types not decisive