diff --git a/relay/helper/valid_request.go b/relay/helper/valid_request.go index d48939387..f17b4f5b8 100644 --- a/relay/helper/valid_request.go +++ b/relay/helper/valid_request.go @@ -22,8 +22,10 @@ func GetAndValidateRequest(c *gin.Context, format types.RelayFormat) (request dt case types.RelayFormatOpenAI: request, err = GetAndValidateTextRequest(c, relayMode) case types.RelayFormatGemini: - if strings.Contains(c.Request.URL.Path, ":embedContent") || strings.Contains(c.Request.URL.Path, ":batchEmbedContents") { + if strings.Contains(c.Request.URL.Path, ":embedContent") { request, err = GetAndValidateGeminiEmbeddingRequest(c) + } else if strings.Contains(c.Request.URL.Path, ":batchEmbedContents") { + request, err = GetAndValidateGeminiBatchEmbeddingRequest(c) } else { request, err = GetAndValidateGeminiRequest(c) } @@ -319,3 +321,12 @@ func GetAndValidateGeminiEmbeddingRequest(c *gin.Context) (*dto.GeminiEmbeddingR } return request, nil } + +func GetAndValidateGeminiBatchEmbeddingRequest(c *gin.Context) (*dto.GeminiBatchEmbeddingRequest, error) { + request := &dto.GeminiBatchEmbeddingRequest{} + err := common.UnmarshalBodyReusable(c, request) + if err != nil { + return nil, err + } + return request, nil +}