feat: add AWS invoke error handling and new error code
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package aws
|
package aws
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"one-api/common"
|
"one-api/common"
|
||||||
@@ -113,14 +112,14 @@ func awsHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode int) (*
|
|||||||
}
|
}
|
||||||
claudeReq := claudeReq_.(*dto.ClaudeRequest)
|
claudeReq := claudeReq_.(*dto.ClaudeRequest)
|
||||||
awsClaudeReq := copyRequest(claudeReq)
|
awsClaudeReq := copyRequest(claudeReq)
|
||||||
awsReq.Body, err = json.Marshal(awsClaudeReq)
|
awsReq.Body, err = common.Marshal(awsClaudeReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.NewError(errors.Wrap(err, "marshal request"), types.ErrorCodeBadResponseBody), nil
|
return types.NewError(errors.Wrap(err, "marshal request"), types.ErrorCodeBadResponseBody), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
awsResp, err := awsCli.InvokeModel(c.Request.Context(), awsReq)
|
awsResp, err := awsCli.InvokeModel(c.Request.Context(), awsReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.NewError(errors.Wrap(err, "InvokeModel"), types.ErrorCodeChannelAwsClientError), nil
|
return types.NewOpenAIError(errors.Wrap(err, "InvokeModel"), types.ErrorCodeAwsInvokeError, http.StatusInternalServerError), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
claudeInfo := &claude.ClaudeResponseInfo{
|
claudeInfo := &claude.ClaudeResponseInfo{
|
||||||
@@ -165,14 +164,14 @@ func awsStreamHandler(c *gin.Context, resp *http.Response, info *relaycommon.Rel
|
|||||||
claudeReq := claudeReq_.(*dto.ClaudeRequest)
|
claudeReq := claudeReq_.(*dto.ClaudeRequest)
|
||||||
|
|
||||||
awsClaudeReq := copyRequest(claudeReq)
|
awsClaudeReq := copyRequest(claudeReq)
|
||||||
awsReq.Body, err = json.Marshal(awsClaudeReq)
|
awsReq.Body, err = common.Marshal(awsClaudeReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.NewError(errors.Wrap(err, "marshal request"), types.ErrorCodeBadResponseBody), nil
|
return types.NewError(errors.Wrap(err, "marshal request"), types.ErrorCodeBadResponseBody), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
awsResp, err := awsCli.InvokeModelWithResponseStream(c.Request.Context(), awsReq)
|
awsResp, err := awsCli.InvokeModelWithResponseStream(c.Request.Context(), awsReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.NewError(errors.Wrap(err, "InvokeModelWithResponseStream"), types.ErrorCodeChannelAwsClientError), nil
|
return types.NewOpenAIError(errors.Wrap(err, "InvokeModelWithResponseStream"), types.ErrorCodeAwsInvokeError, http.StatusInternalServerError), nil
|
||||||
}
|
}
|
||||||
stream := awsResp.GetStream()
|
stream := awsResp.GetStream()
|
||||||
defer stream.Close()
|
defer stream.Close()
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ const (
|
|||||||
ErrorCodeBadResponse ErrorCode = "bad_response"
|
ErrorCodeBadResponse ErrorCode = "bad_response"
|
||||||
ErrorCodeBadResponseBody ErrorCode = "bad_response_body"
|
ErrorCodeBadResponseBody ErrorCode = "bad_response_body"
|
||||||
ErrorCodeEmptyResponse ErrorCode = "empty_response"
|
ErrorCodeEmptyResponse ErrorCode = "empty_response"
|
||||||
|
ErrorCodeAwsInvokeError ErrorCode = "aws_invoke_error"
|
||||||
|
|
||||||
// sql error
|
// sql error
|
||||||
ErrorCodeQueryDataError ErrorCode = "query_data_error"
|
ErrorCodeQueryDataError ErrorCode = "query_data_error"
|
||||||
|
|||||||
Reference in New Issue
Block a user