llm: add service.ModelName
diff --git a/llm/ant/ant.go b/llm/ant/ant.go
index d1c366a..efebf26 100644
--- a/llm/ant/ant.go
+++ b/llm/ant/ant.go
@@ -41,6 +41,10 @@
MaxTokens int // defaults to DefaultMaxTokens if zero
}
+func (s *Service) ModelName() string {
+ return cmp.Or(s.Model, DefaultModel)
+}
+
var _ llm.Service = (*Service)(nil)
type content struct {
diff --git a/llm/gem/gem.go b/llm/gem/gem.go
index 6686058..5f01db7 100644
--- a/llm/gem/gem.go
+++ b/llm/gem/gem.go
@@ -31,6 +31,10 @@
var _ llm.Service = (*Service)(nil)
+func (s *Service) ModelName() string {
+ return cmp.Or(s.Model, DefaultModel)
+}
+
// These maps convert between Sketch's llm package and Gemini API formats
var fromLLMRole = map[llm.MessageRole]string{
llm.MessageRoleAssistant: "model",
diff --git a/llm/llm.go b/llm/llm.go
index 1e53ea3..ba6bd03 100644
--- a/llm/llm.go
+++ b/llm/llm.go
@@ -13,6 +13,8 @@
type Service interface {
// Do sends a request to an LLM.
Do(context.Context, *Request) (*Response, error)
+
+ ModelName() string
}
// MustSchema validates that schema is a valid JSON schema and returns it as a json.RawMessage.
diff --git a/llm/oai/oai.go b/llm/oai/oai.go
index 8b64157..4b046b0 100644
--- a/llm/oai/oai.go
+++ b/llm/oai/oai.go
@@ -225,6 +225,10 @@
var _ llm.Service = (*Service)(nil)
+func (s *Service) ModelName() string {
+ return s.Model.UserName
+}
+
// ModelsRegistry is a registry of all known models with their user-friendly names.
var ModelsRegistry = []Model{
GPT41,