fix(go): Fix case-insensitive model alias lookup (#15911)

## Summary

- Normalize model alias index keys to lowercase
- Detect lowercase alias collisions during provider manager
initialization
- Fix ListModels metadata mapping for mixed-case provider aliases
This commit is contained in:
Hz_
2026-06-10 20:36:43 +08:00
committed by GitHub
parent dfa4c5a795
commit 515acf4f60
2 changed files with 5799 additions and 4 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -312,10 +312,14 @@ func InitProviderManager(dirPath string) error {
alias2ModelIndex := make(map[string]int)
for idx, model := range allModels.Models {
if model.Alias == nil {
alias2ModelIndex[model.Name] = idx
alias2ModelIndex[strings.ToLower(model.Name)] = idx
} else {
for _, alias := range model.Alias {
alias2ModelIndex[alias] = idx
lowerAlias := strings.ToLower(alias)
if existingIdx, ok := alias2ModelIndex[lowerAlias]; ok && existingIdx != idx {
return fmt.Errorf("duplicate alias %q for models %q and %q", alias, allModels.Models[existingIdx].Name, model.Name)
}
alias2ModelIndex[lowerAlias] = idx
}
}
}