diff --git a/relay/responses_handler.go b/relay/responses_handler.go index 16217ff4..7bcc1d03 100644 --- a/relay/responses_handler.go +++ b/relay/responses_handler.go @@ -20,12 +20,17 @@ import ( func ResponsesHelper(c *gin.Context, info *relaycommon.RelayInfo) (newAPIError *types.NewAPIError) { info.InitChannelMeta(c) - request, ok := info.Request.(*dto.OpenAIResponsesRequest) + responsesReq, ok := info.Request.(*dto.OpenAIResponsesRequest) if !ok { common.FatalLog(fmt.Sprintf("invalid request type, expected dto.OpenAIResponsesRequest, got %T", info.Request)) } - err := helper.ModelMappedHelper(c, info, request) + request, err := common.DeepCopy(responsesReq) + if err != nil { + return types.NewError(fmt.Errorf("failed to copy request to GeneralOpenAIRequest: %w", err), types.ErrorCodeInvalidRequest, types.ErrOptionWithSkipRetry()) + } + + err = helper.ModelMappedHelper(c, info, request) if err != nil { return types.NewError(err, types.ErrorCodeChannelModelMappedError, types.ErrOptionWithSkipRetry()) }