discourse-ai/lib/configuration/llm_vision_enumerator.rb
Roman Rizzi 5c196bca89
FEATURE: Track if a model can do vision in the llm_models table (#725)
* FEATURE: Track if a model can do vision in the llm_models table

* Data migration
2024-07-24 16:29:47 -03:00

26 lines
537 B
Ruby

# frozen_string_literal: true
require "enum_site_setting"
module DiscourseAi
module Configuration
class LlmVisionEnumerator < ::EnumSiteSetting
def self.valid_value?(val)
true
end
def self.values
values = DB.query_hash(<<~SQL).map(&:symbolize_keys)
SELECT display_name AS name, id AS value
FROM llm_models
WHERE vision_enabled
SQL
values.each { |value_h| value_h[:value] = "custom:#{value_h[:value]}" }
values
end
end
end
end