@@ -258,7 +258,7 @@ func RequestOpenAI2ClaudeMessage(c *gin.Context, textRequest dto.GeneralOpenAIRe
258258 formatMessages = formatMessages [:len (formatMessages )- 1 ]
259259 }
260260 }
261- if fmtMessage .Content == nil {
261+ if fmtMessage .Content == nil || ( fmtMessage . IsStringContent () && fmtMessage . StringContent () == "" ) {
262262 fmtMessage .SetStringContent ("..." )
263263 }
264264 formatMessages = append (formatMessages , fmtMessage )
@@ -274,14 +274,16 @@ func RequestOpenAI2ClaudeMessage(c *gin.Context, textRequest dto.GeneralOpenAIRe
274274 if message .Role == "system" {
275275 // 根据Claude API规范,system字段使用数组格式更有通用性
276276 if message .IsStringContent () {
277- systemMessages = append (systemMessages , dto.ClaudeMediaMessage {
278- Type : "text" ,
279- Text : common.GetPointer [string ](message .StringContent ()),
280- })
277+ if text := message .StringContent (); text != "" {
278+ systemMessages = append (systemMessages , dto.ClaudeMediaMessage {
279+ Type : "text" ,
280+ Text : common.GetPointer [string ](text ),
281+ })
282+ }
281283 } else {
282284 // 支持复合内容的system消息(虽然不常见,但需要考虑完整性)
283285 for _ , ctx := range message .ParseContent () {
284- if ctx .Type == "text" {
286+ if ctx .Type == "text" && ctx . Text != "" {
285287 systemMessages = append (systemMessages , dto.ClaudeMediaMessage {
286288 Type : "text" ,
287289 Text : common.GetPointer [string ](ctx .Text ),
@@ -339,16 +341,22 @@ func RequestOpenAI2ClaudeMessage(c *gin.Context, textRequest dto.GeneralOpenAIRe
339341 }
340342 }
341343 } else if message .IsStringContent () && message .ToolCalls == nil {
342- claudeMessage .Content = message .StringContent ()
344+ text := message .StringContent ()
345+ if text == "" {
346+ text = "..."
347+ }
348+ claudeMessage .Content = text
343349 } else {
344350 claudeMediaMessages := make ([]dto.ClaudeMediaMessage , 0 )
345351 for _ , mediaMessage := range message .ParseContent () {
346352 switch mediaMessage .Type {
347353 case "text" :
348- claudeMediaMessages = append (claudeMediaMessages , dto.ClaudeMediaMessage {
349- Type : "text" ,
350- Text : common.GetPointer [string ](mediaMessage .Text ),
351- })
354+ if mediaMessage .Text != "" {
355+ claudeMediaMessages = append (claudeMediaMessages , dto.ClaudeMediaMessage {
356+ Type : "text" ,
357+ Text : common.GetPointer [string ](mediaMessage .Text ),
358+ })
359+ }
352360 default :
353361 source := mediaMessage .ToFileSource ()
354362 if source == nil {
0 commit comments