model.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package common
  2. import "strings"
  3. var (
  4. // OpenAIResponseOnlyModels is a list of models that are only available for OpenAI responses.
  5. OpenAIResponseOnlyModels = []string{
  6. "o3-pro",
  7. "o3-deep-research",
  8. "o4-mini-deep-research",
  9. }
  10. ImageGenerationModels = []string{
  11. "dall-e-3",
  12. "dall-e-2",
  13. "gpt-image-1",
  14. "prefix:imagen-",
  15. "flux-",
  16. "flux.1-",
  17. }
  18. OpenAITextModels = []string{
  19. "gpt-",
  20. "o1",
  21. "o3",
  22. "o4",
  23. "chatgpt",
  24. }
  25. )
  26. func IsOpenAIResponseOnlyModel(modelName string) bool {
  27. for _, m := range OpenAIResponseOnlyModels {
  28. if strings.Contains(modelName, m) {
  29. return true
  30. }
  31. }
  32. return false
  33. }
  34. func IsImageGenerationModel(modelName string) bool {
  35. modelName = strings.ToLower(modelName)
  36. for _, m := range ImageGenerationModels {
  37. if strings.Contains(modelName, m) {
  38. return true
  39. }
  40. if strings.HasPrefix(m, "prefix:") && strings.HasPrefix(modelName, strings.TrimPrefix(m, "prefix:")) {
  41. return true
  42. }
  43. }
  44. return false
  45. }
  46. func IsOpenAITextModel(modelName string) bool {
  47. modelName = strings.ToLower(modelName)
  48. for _, m := range OpenAITextModels {
  49. if strings.Contains(modelName, m) {
  50. return true
  51. }
  52. }
  53. return false
  54. }