Files
goclaw/internal/providers/forward_compat_openai.go
Duy /zuey/ 52aa110e1f feat(providers): default ChatGPT OAuth to GPT-5.5
Default ChatGPT Subscription (OAuth) provider model selection to GPT-5.5 and update model metadata, tests, and docs.
2026-05-18 20:33:40 +07:00

42 lines
1.2 KiB
Go

package providers
import "strings"
// OpenAIForwardCompat resolves unknown OpenAI models by cloning from known templates.
type OpenAIForwardCompat struct{}
// openAIForwardCompat maps unknown model prefixes to template + optional spec patch.
var openAIForwardCompatMap = map[string]struct {
Template string
Patch *ModelSpec
}{
"gpt-5.5": {
Template: "gpt-5.5",
},
"gpt-5.6": {
Template: "gpt-5.5",
Patch: &ModelSpec{ContextWindow: 2_000_000, MaxTokens: 200_000},
},
"o5-mini": {
Template: "o4-mini",
Patch: &ModelSpec{ContextWindow: 300_000},
},
}
// ResolveForwardCompat handles future model aliases by cloning from the latest known template.
func (r *OpenAIForwardCompat) ResolveForwardCompat(modelID string, registry ModelRegistry) *ModelSpec {
// Direct map lookup (exact match)
if entry, ok := openAIForwardCompatMap[modelID]; ok {
return CloneFromTemplate(registry, "openai", modelID, []string{entry.Template}, entry.Patch)
}
// Try prefix matching for versioned models like "gpt-5.5-turbo"
for prefix, entry := range openAIForwardCompatMap {
if strings.HasPrefix(modelID, prefix) {
return CloneFromTemplate(registry, "openai", modelID, []string{entry.Template}, entry.Patch)
}
}
return nil
}