Module: Legion::Extensions::Apollo::Helpers::Embedding
- Defined in:
- lib/legion/extensions/apollo/helpers/embedding.rb
Constant Summary collapse
- DEFAULT_DIMENSION =
1536
Class Method Summary collapse
Class Method Details
.configured_dimension ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/legion/extensions/apollo/helpers/embedding.rb', line 33 def configured_dimension return DEFAULT_DIMENSION unless defined?(Legion::Settings) && !Legion::Settings[:apollo].nil? Legion::Settings[:apollo].dig(:embedding, :dimension) || DEFAULT_DIMENSION rescue StandardError DEFAULT_DIMENSION end |
.dimension ⇒ Object
29 30 31 |
# File 'lib/legion/extensions/apollo/helpers/embedding.rb', line 29 def dimension @dimension || configured_dimension end |
.generate(text:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/apollo/helpers/embedding.rb', line 12 def generate(text:, **) unless defined?(Legion::LLM) && Legion::LLM.started? Legion::Logging.debug('[apollo] embedding fallback: LLM not started') if defined?(Legion::Logging) return zero_vector end result = Legion::LLM.(text) vector = result.is_a?(Hash) ? result[:vector] : result if vector.is_a?(Array) && vector.any? @dimension = vector.size vector else Legion::Logging.warn('[apollo] embedding fallback: LLM returned no vector') if defined?(Legion::Logging) zero_vector end end |
.zero_vector ⇒ Object
41 42 43 |
# File 'lib/legion/extensions/apollo/helpers/embedding.rb', line 41 def zero_vector Array.new(dimension, 0.0) end |