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:
committed by
Sacha Al Himdani
parent
3f4ef7b104
commit
02c719dfdd
@@ -118,7 +118,7 @@ func main() {
|
|||||||
|
|
||||||
package llm
|
package llm
|
||||||
|
|
||||||
var generatedModels = []ModelDefinition{
|
var generatedModels = map[string]ModelDefinition{
|
||||||
`,
|
`,
|
||||||
iscHeader,
|
iscHeader,
|
||||||
openRouterURL,
|
openRouterURL,
|
||||||
@@ -134,8 +134,7 @@ var generatedModels = []ModelDefinition{
|
|||||||
|
|
||||||
fmt.Fprintf(
|
fmt.Fprintf(
|
||||||
&buf,
|
&buf,
|
||||||
` {
|
` %q: {
|
||||||
ID: %q,
|
|
||||||
Name: %q,
|
Name: %q,
|
||||||
Provider: %q,
|
Provider: %q,
|
||||||
ContextLength: %d,
|
ContextLength: %d,
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:generate go run go.probo.inc/probo/internal/cmd/genmodels
|
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// ModelDefinition describes a model's capabilities and limits.
|
// ModelDefinition describes a model's capabilities and limits.
|
||||||
ModelDefinition struct {
|
ModelDefinition struct {
|
||||||
@@ -61,11 +59,11 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewRegistry builds a registry from the given model definitions.
|
// 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)}
|
r := &Registry{byID: make(map[string]*ModelDefinition, len(models)*3)}
|
||||||
for i := range models {
|
for id, m := range models {
|
||||||
m := &models[i]
|
m.ID = id
|
||||||
r.index(m)
|
r.index(&m)
|
||||||
}
|
}
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user