ai-gateway/relay/controller/validator/validation.go

38 lines
999 B
Go

package validator
import (
"errors"
"github.com/songquanpeng/one-api/relay/model"
"github.com/songquanpeng/one-api/relay/relaymode"
"math"
)
func ValidateTextRequest(textRequest *model.GeneralOpenAIRequest, relayMode int) error {
if textRequest.MaxTokens < 0 || textRequest.MaxTokens > math.MaxInt32/2 {
return errors.New("max_tokens is invalid")
}
if textRequest.Model == "" {
return errors.New("model is required")
}
switch relayMode {
case relaymode.Completions:
if textRequest.Prompt == "" {
return errors.New("field prompt is required")
}
case relaymode.ChatCompletions:
if textRequest.Messages == nil || len(textRequest.Messages) == 0 {
return errors.New("field messages is required")
}
case relaymode.Embeddings:
case relaymode.Moderations:
if textRequest.Input == "" {
return errors.New("field input is required")
}
case relaymode.Edits:
if textRequest.Instruction == "" {
return errors.New("field instruction is required")
}
}
return nil
}