From 8c7c39550c093c7e763d940746c9d4b0e209f802 Mon Sep 17 00:00:00 2001 From: "1808837298@qq.com" <1808837298@qq.com> Date: Sun, 16 Mar 2025 23:14:45 +0800 Subject: [PATCH] refactor: Update ClaudeResponse error handling to use pointer for ClaudeError and improve nil checks in response processing --- dto/claude.go | 2 +- relay/channel/claude/relay-claude.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dto/claude.go b/dto/claude.go index 2af43dae..9bca7de5 100644 --- a/dto/claude.go +++ b/dto/claude.go @@ -183,7 +183,7 @@ type ClaudeResponse struct { Completion string `json:"completion,omitempty"` StopReason string `json:"stop_reason,omitempty"` Model string `json:"model,omitempty"` - Error ClaudeError `json:"error,omitempty"` + Error *ClaudeError `json:"error,omitempty"` Usage *ClaudeUsage `json:"usage,omitempty"` Index *int `json:"index,omitempty"` ContentBlock *ClaudeMediaMessage `json:"content_block,omitempty"` diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index 4d4da247..41b16c66 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -485,7 +485,7 @@ func HandleStreamResponseData(c *gin.Context, info *relaycommon.RelayInfo, claud common.SysError("error unmarshalling stream response: " + err.Error()) return service.OpenAIErrorWrapper(err, "stream_response_error", http.StatusInternalServerError) } - if claudeResponse.Error.Type != "" { + if claudeResponse.Error != nil && claudeResponse.Error.Type != "" { return &dto.OpenAIErrorWithStatusCode{ Error: dto.OpenAIError{ Code: "stream_response_error", @@ -598,7 +598,7 @@ func HandleClaudeResponseData(c *gin.Context, info *relaycommon.RelayInfo, claud if err != nil { return service.OpenAIErrorWrapper(err, "unmarshal_claude_response_failed", http.StatusInternalServerError) } - if claudeResponse.Error.Type != "" { + if claudeResponse.Error != nil && claudeResponse.Error.Type != "" { return &dto.OpenAIErrorWithStatusCode{ Error: dto.OpenAIError{ Message: claudeResponse.Error.Message,