fix: claude header was not set correctly
This commit is contained in:
@@ -130,7 +130,12 @@ func awsHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode int) (*
|
|||||||
Usage: &dto.Usage{},
|
Usage: &dto.Usage{},
|
||||||
}
|
}
|
||||||
|
|
||||||
handlerErr := claude.HandleClaudeResponseData(c, info, claudeInfo, awsResp.Body, RequestModeMessage)
|
// 复制上游 Content-Type 到客户端响应头
|
||||||
|
if awsResp.ContentType != nil && *awsResp.ContentType != "" {
|
||||||
|
c.Writer.Header().Set("Content-Type", *awsResp.ContentType)
|
||||||
|
}
|
||||||
|
|
||||||
|
handlerErr := claude.HandleClaudeResponseData(c, info, claudeInfo, nil, awsResp.Body, RequestModeMessage)
|
||||||
if handlerErr != nil {
|
if handlerErr != nil {
|
||||||
return handlerErr, nil
|
return handlerErr, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -716,7 +716,7 @@ func ClaudeStreamHandler(c *gin.Context, resp *http.Response, info *relaycommon.
|
|||||||
return claudeInfo.Usage, nil
|
return claudeInfo.Usage, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func HandleClaudeResponseData(c *gin.Context, info *relaycommon.RelayInfo, claudeInfo *ClaudeResponseInfo, data []byte, requestMode int) *types.NewAPIError {
|
func HandleClaudeResponseData(c *gin.Context, info *relaycommon.RelayInfo, claudeInfo *ClaudeResponseInfo, httpResp *http.Response, data []byte, requestMode int) *types.NewAPIError {
|
||||||
var claudeResponse dto.ClaudeResponse
|
var claudeResponse dto.ClaudeResponse
|
||||||
err := common.Unmarshal(data, &claudeResponse)
|
err := common.Unmarshal(data, &claudeResponse)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -754,7 +754,7 @@ func HandleClaudeResponseData(c *gin.Context, info *relaycommon.RelayInfo, claud
|
|||||||
c.Set("claude_web_search_requests", claudeResponse.Usage.ServerToolUse.WebSearchRequests)
|
c.Set("claude_web_search_requests", claudeResponse.Usage.ServerToolUse.WebSearchRequests)
|
||||||
}
|
}
|
||||||
|
|
||||||
service.IOCopyBytesGracefully(c, nil, responseData)
|
service.IOCopyBytesGracefully(c, httpResp, responseData)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -775,7 +775,7 @@ func ClaudeHandler(c *gin.Context, resp *http.Response, info *relaycommon.RelayI
|
|||||||
if common.DebugEnabled {
|
if common.DebugEnabled {
|
||||||
println("responseBody: ", string(responseBody))
|
println("responseBody: ", string(responseBody))
|
||||||
}
|
}
|
||||||
handleErr := HandleClaudeResponseData(c, info, claudeInfo, responseBody, requestMode)
|
handleErr := HandleClaudeResponseData(c, info, claudeInfo, resp, responseBody, requestMode)
|
||||||
if handleErr != nil {
|
if handleErr != nil {
|
||||||
return nil, handleErr
|
return nil, handleErr
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user