llm/oai: make Model a value type
diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index 7388907..f1b1887 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -926,7 +926,7 @@
}
model := oai.ModelByUserName(flags.modelName)
- if model == nil {
+ if model.IsZero() {
return nil, fmt.Errorf("unknown model '%s', use -list-models to see available models", flags.modelName)
}
@@ -938,7 +938,7 @@
return &oai.Service{
HTTPC: client,
- Model: *model,
+ Model: model,
APIKey: apiKey,
DumpLLM: flags.dumpLLM,
}, nil
diff --git a/llm/oai/oai.go b/llm/oai/oai.go
index e104c7f..b7a371c 100644
--- a/llm/oai/oai.go
+++ b/llm/oai/oai.go
@@ -262,13 +262,17 @@
// ModelByUserName returns a model by its user-friendly name.
// Returns nil if no model with the given name is found.
-func ModelByUserName(name string) *Model {
+func ModelByUserName(name string) Model {
for _, model := range ModelsRegistry {
if model.UserName == name {
- return &model
+ return model
}
}
- return nil
+ return Model{}
+}
+
+func (m Model) IsZero() bool {
+ return m == Model{}
}
var (