Module: Legion::Extensions::Apollo::Helpers::Capability
- Defined in:
- lib/legion/extensions/apollo/helpers/capability.rb
Constant Summary collapse
- EMBEDDING_MODELS =
%w[mxbai-embed-large bge-large snowflake-arctic-embed].freeze
Class Method Summary collapse
- .apollo_write_enabled? ⇒ Boolean
- .can_embed? ⇒ Boolean
- .can_write? ⇒ Boolean
- .check_db_write_privilege ⇒ Object
- .cloud_embedding_configured? ⇒ Boolean
- .ollama_embedding_available? ⇒ Boolean
- .reset! ⇒ Object
Class Method Details
.apollo_write_enabled? ⇒ Boolean
29 30 31 32 33 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 29 def apollo_write_enabled? Legion::Settings.dig(:data, :apollo_write) == true rescue StandardError false end |
.can_embed? ⇒ Boolean
12 13 14 15 16 17 18 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 12 def return false unless defined?(Legion::LLM) && Legion::LLM.started? || rescue StandardError false end |
.can_write? ⇒ Boolean
20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 20 def can_write? return false unless apollo_write_enabled? return false unless defined?(Legion::Data) && Legion::Data.connected? check_db_write_privilege rescue StandardError false end |
.check_db_write_privilege ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 51 def check_db_write_privilege return @apollo_write_privilege unless @apollo_write_privilege.nil? @apollo_write_privilege = Legion::Data.connection .fetch("SELECT has_table_privilege(current_user, 'apollo_entries', 'INSERT') AS can_insert") .first[:can_insert] == true rescue StandardError @apollo_write_privilege = false end |
.cloud_embedding_configured? ⇒ Boolean
43 44 45 46 47 48 49 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 43 def provider = Legion::Settings.dig(:apollo, :embedding, :provider) model = Legion::Settings.dig(:apollo, :embedding, :model) !provider.nil? && !model.nil? rescue StandardError false end |
.ollama_embedding_available? ⇒ Boolean
35 36 37 38 39 40 41 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 35 def return false unless defined?(Legion::LLM::Discovery::Ollama) EMBEDDING_MODELS.any? { |m| Legion::LLM::Discovery::Ollama.model_available?(m) } rescue StandardError false end |
.reset! ⇒ Object
61 62 63 |
# File 'lib/legion/extensions/apollo/helpers/capability.rb', line 61 def reset! @apollo_write_privilege = nil end |