mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-18 01:26:37 +08:00
- Refactor constant definitions and organization - Clean up package level variables and functions - Introduce new `relaymode` and `apitype` packages for constant definitions - Refactor and simplify code in several packages including `openai`, `relay/channel/baidu`, `relay/util`, `relay/controller`, `relay/channeltype` - Add helper functions in `relay/channeltype` package to convert channel type constants to corresponding API type constants - Remove deprecated functions such as `ResponseText2Usage` from `relay/channel/openai/helper.go` - Modify code in `relay/util/validation.go` and related files to use new `validator.ValidateTextRequest` function - Rename `util` package to `relaymode` and update related imports in several packages
39 lines
1021 B
Go
39 lines
1021 B
Go
package validator
|
|
|
|
import (
|
|
"math"
|
|
|
|
"github.com/Laisky/errors/v2"
|
|
"github.com/songquanpeng/one-api/relay/model"
|
|
"github.com/songquanpeng/one-api/relay/relaymode"
|
|
)
|
|
|
|
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
|
|
}
|