mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-14 04:16:06 +00:00
Default ChatGPT Subscription (OAuth) provider model selection to GPT-5.5 and update model metadata, tests, and docs.
42 lines
1.2 KiB
Go
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
|
|
}
|