discourse-ai/lib/configuration/simple_llm_validator.rb
Keegan George 249aab100c
DEV: Use a simple validator
- no need for seeding checks or module dependant checks
2025-07-10 14:44:02 -07:00

35 lines
762 B
Ruby

# frozen_string_literal: true
module DiscourseAi
module Configuration
class SimpleLlmValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(val)
return true if val == ""
run_test(val).tap { |result| @unreachable = result }
rescue StandardError => e
raise e if Rails.env.test?
@unreachable = true
true
end
def run_test(val)
DiscourseAi::Completions::Llm
.proxy(val)
.generate("How much is 1 + 1?", user: nil, feature_name: "llm_validator")
.present?
end
def error_message
return unless @unreachable
I18n.t("discourse_ai.llm.configuration.model_unreachable")
end
end
end
end