1package agent
2
3import "strings"
4
5type ModelFamily string
6
7const (
8 ModelFamilyAnthropic ModelFamily = "anthropic"
9 ModelFamilyOpenAI ModelFamily = "openai"
10 ModelFamilyGoogle ModelFamily = "google"
11 ModelFamilyDefault ModelFamily = "default"
12)
13
14// DetectModelFamily determines the model family based on the model name.
15func DetectModelFamily(modelName string) ModelFamily {
16 modelLower := strings.ToLower(modelName)
17
18 if strings.Contains(modelLower, "claude") {
19 return ModelFamilyAnthropic
20 }
21
22 if strings.HasPrefix(modelLower, "gpt-") ||
23 strings.HasPrefix(modelLower, "o1-") ||
24 strings.HasPrefix(modelLower, "o3-") ||
25 strings.HasPrefix(modelLower, "o4-") ||
26 strings.Contains(modelLower, "chatgpt") {
27 return ModelFamilyOpenAI
28 }
29
30 if strings.HasPrefix(modelLower, "gemini") {
31 return ModelFamilyGoogle
32 }
33
34 return ModelFamilyDefault
35}