mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-29 23:10:35 +00:00
- Introduced new OpenAI text models in `common/model.go`. - Added `IsOpenAITextModel` function to check for OpenAI text models. - Refactored token estimation methods across various channels to use estimated prompt tokens instead of direct prompt token counts. - Updated related functions and structures to accommodate the new token estimation approach, enhancing overall token management.
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package common
|
|
|
|
import "strings"
|
|
|
|
var (
|
|
// OpenAIResponseOnlyModels is a list of models that are only available for OpenAI responses.
|
|
OpenAIResponseOnlyModels = []string{
|
|
"o3-pro",
|
|
"o3-deep-research",
|
|
"o4-mini-deep-research",
|
|
}
|
|
ImageGenerationModels = []string{
|
|
"dall-e-3",
|
|
"dall-e-2",
|
|
"gpt-image-1",
|
|
"prefix:imagen-",
|
|
"flux-",
|
|
"flux.1-",
|
|
}
|
|
OpenAITextModels = []string{
|
|
"gpt-",
|
|
"o1",
|
|
"o3",
|
|
"o4",
|
|
"chatgpt",
|
|
}
|
|
)
|
|
|
|
func IsOpenAIResponseOnlyModel(modelName string) bool {
|
|
for _, m := range OpenAIResponseOnlyModels {
|
|
if strings.Contains(modelName, m) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func IsImageGenerationModel(modelName string) bool {
|
|
modelName = strings.ToLower(modelName)
|
|
for _, m := range ImageGenerationModels {
|
|
if strings.Contains(modelName, m) {
|
|
return true
|
|
}
|
|
if strings.HasPrefix(m, "prefix:") && strings.HasPrefix(modelName, strings.TrimPrefix(m, "prefix:")) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func IsOpenAITextModel(modelName string) bool {
|
|
modelName = strings.ToLower(modelName)
|
|
for _, m := range OpenAITextModels {
|
|
if strings.Contains(modelName, m) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|