41 lines
833 B
Ruby
41 lines
833 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "enum_site_setting"
|
|
|
|
module DiscourseAi
|
|
module Configuration
|
|
class LlmEnumerator < ::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
|
|
SQL
|
|
|
|
values.each { |value_h| value_h[:value] = "custom:#{value_h[:value]}" }
|
|
|
|
values
|
|
end
|
|
|
|
def self.available_ai_bots
|
|
%w[
|
|
gpt-3.5-turbo
|
|
gpt-4
|
|
gpt-4-turbo
|
|
gpt-4o
|
|
claude-2
|
|
gemini-1.5-pro
|
|
mixtral-8x7B-Instruct-V0.1
|
|
claude-3-opus
|
|
claude-3-sonnet
|
|
claude-3-haiku
|
|
cohere-command-r-plus
|
|
]
|
|
end
|
|
end
|
|
end
|
|
end
|