Procházet zdrojové kódy

refactor: Update ClaudeResponse error handling to use pointer for ClaudeError and improve nil checks in response processing

1808837298@qq.com před 11 měsíci
rodič
revize
8c7c39550c
2 změnil soubory, kde provedl 3 přidání a 3 odebrání
  1. 1 1
      dto/claude.go
  2. 2 2
      relay/channel/claude/relay-claude.go

+ 1 - 1
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"`

+ 2 - 2
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,