MCPcopy
hub / github.com/QuantumNous/new-api / RerankHelper

Function RerankHelper

relay/rerank_handler.go:20–106  ·  view source on GitHub ↗
(c *gin.Context, info *relaycommon.RelayInfo)

Source from the content-addressed store, hash-verified

18)
19
20func RerankHelper(c *gin.Context, info *relaycommon.RelayInfo) (newAPIError *types.NewAPIError) {
21 info.InitChannelMeta(c)
22
23 rerankReq, ok := info.Request.(*dto.RerankRequest)
24 if !ok {
25 return types.NewErrorWithStatusCode(fmt.Errorf("invalid request type, expected dto.RerankRequest, got %T", info.Request), types.ErrorCodeInvalidRequest, http.StatusBadRequest, types.ErrOptionWithSkipRetry())
26 }
27
28 request, err := common.DeepCopy(rerankReq)
29 if err != nil {
30 return types.NewError(fmt.Errorf("failed to copy request to ImageRequest: %w", err), types.ErrorCodeInvalidRequest, types.ErrOptionWithSkipRetry())
31 }
32
33 err = helper.ModelMappedHelper(c, info, request)
34 if err != nil {
35 return types.NewError(err, types.ErrorCodeChannelModelMappedError, types.ErrOptionWithSkipRetry())
36 }
37
38 adaptor := GetAdaptor(info.ApiType)
39 if adaptor == nil {
40 return types.NewError(fmt.Errorf("invalid api type: %d", info.ApiType), types.ErrorCodeInvalidApiType, types.ErrOptionWithSkipRetry())
41 }
42 adaptor.Init(info)
43
44 var requestBody io.Reader
45 if model_setting.GetGlobalSettings().PassThroughRequestEnabled || info.ChannelSetting.PassThroughBodyEnabled {
46 storage, err := common.GetBodyStorage(c)
47 if err != nil {
48 return types.NewErrorWithStatusCode(err, types.ErrorCodeReadRequestBodyFailed, http.StatusBadRequest, types.ErrOptionWithSkipRetry())
49 }
50 requestBody = common.ReaderOnly(storage)
51 } else {
52 convertedRequest, err := adaptor.ConvertRerankRequest(c, info.RelayMode, *request)
53 if err != nil {
54 return types.NewError(err, types.ErrorCodeConvertRequestFailed, types.ErrOptionWithSkipRetry())
55 }
56 relaycommon.AppendRequestConversionFromRequest(info, convertedRequest)
57 jsonData, err := common.Marshal(convertedRequest)
58 if err != nil {
59 return types.NewError(err, types.ErrorCodeConvertRequestFailed, types.ErrOptionWithSkipRetry())
60 }
61
62 // apply param override
63 if len(info.ParamOverride) > 0 {
64 jsonData, err = relaycommon.ApplyParamOverrideWithRelayInfo(jsonData, info)
65 if err != nil {
66 return newAPIErrorFromParamOverride(err)
67 }
68 }
69
70 logger.LogDebug(c, "Rerank request body: %s", jsonData)
71 body, size, closer, err := relaycommon.NewOutboundJSONBody(jsonData)
72 if err != nil {
73 return types.NewError(err, types.ErrorCodeConvertRequestFailed, types.ErrOptionWithSkipRetry())
74 }
75 defer closer.Close()
76 jsonData = nil
77 info.UpstreamRequestBodySize = size

Callers 1

relayHandlerFunction · 0.92

Calls 15

NewErrorWithStatusCodeFunction · 0.92
ErrOptionWithSkipRetryFunction · 0.92
NewErrorFunction · 0.92
ModelMappedHelperFunction · 0.92
GetGlobalSettingsFunction · 0.92
LogDebugFunction · 0.92
NewOpenAIErrorFunction · 0.92
RelayErrorHandlerFunction · 0.92
ResetStatusCodeFunction · 0.92
PostTextConsumeQuotaFunction · 0.92
GetAdaptorFunction · 0.85

Tested by

no test coverage detected