From 4f6000a43ad2ee019a799c5b5154af9f853e2b83 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Mon, 2 Mar 2026 11:25:20 +0300 Subject: Enha: check if model has vision before giving it vision tools --- models/models.go | 14 ++++++++++++++ models/openrouter.go | 13 +++++++++++++ 2 files changed, 27 insertions(+) (limited to 'models') diff --git a/models/models.go b/models/models.go index 973eb3d..97d0272 100644 --- a/models/models.go +++ b/models/models.go @@ -608,6 +608,20 @@ func (lcp *LCPModels) ListModels() []string { return resp } +func (lcp *LCPModels) HasVision(modelID string) bool { + for _, m := range lcp.Data { + if m.ID == modelID { + args := m.Status.Args + for i := 0; i < len(args)-1; i++ { + if args[i] == "--mmproj" { + return true + } + } + } + } + return false +} + type ResponseStats struct { Tokens int Duration float64 diff --git a/models/openrouter.go b/models/openrouter.go index 62709a1..2dd49cc 100644 --- a/models/openrouter.go +++ b/models/openrouter.go @@ -172,3 +172,16 @@ func (orm *ORModels) ListModels(free bool) []string { } return resp } + +func (orm *ORModels) HasVision(modelID string) bool { + for i := range orm.Data { + if orm.Data[i].ID == modelID { + for _, mod := range orm.Data[i].Architecture.InputModalities { + if mod == "image" { + return true + } + } + } + } + return false +} -- cgit v1.2.3