Use map for generated model registry data

Replaces []ModelDefinition with map[string]ModelDefinition so
model ID uniqueness is enforced by the data structure itself
and lookups do not require a linear scan.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-04-13 17:14:53 +02:00
committed by Sacha Al Himdani
parent 3f4ef7b104
commit 02c719dfdd
3 changed files with 285 additions and 465 deletions

View File

@@ -118,7 +118,7 @@ func main() {
package llm
var generatedModels = []ModelDefinition{
var generatedModels = map[string]ModelDefinition{
`,
iscHeader,
openRouterURL,
@@ -134,8 +134,7 @@ var generatedModels = []ModelDefinition{
fmt.Fprintf(
&buf,
` {
ID: %q,
` %q: {
Name: %q,
Provider: %q,
ContextLength: %d,

View File

@@ -19,8 +19,6 @@ import (
"sync"
)
//go:generate go run go.probo.inc/probo/internal/cmd/genmodels
type (
// ModelDefinition describes a model's capabilities and limits.
ModelDefinition struct {
@@ -61,11 +59,11 @@ var (
)
// NewRegistry builds a registry from the given model definitions.
func NewRegistry(models []ModelDefinition) *Registry {
func NewRegistry(models map[string]ModelDefinition) *Registry {
r := &Registry{byID: make(map[string]*ModelDefinition, len(models)*3)}
for i := range models {
m := &models[i]
r.index(m)
for id, m := range models {
m.ID = id
r.index(&m)
}
return r
}

File diff suppressed because it is too large Load Diff