Class: Legion::Extensions::Apollo::Actor::WritebackVectorize
- Inherits:
-
Legion::Extensions::Actors::Subscription
- Object
- Legion::Extensions::Actors::Subscription
- Legion::Extensions::Apollo::Actor::WritebackVectorize
- Defined in:
- lib/legion/extensions/apollo/actors/writeback_vectorize.rb
Instance Method Summary collapse
- #check_subtask? ⇒ Boolean
-
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects.
- #generate_task? ⇒ Boolean
- #handle_vectorize(payload) ⇒ Object
- #runner_class ⇒ Object
- #runner_function ⇒ Object
Instance Method Details
#check_subtask? ⇒ Boolean
12 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 12 def check_subtask? = false |
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects
41 42 43 44 45 46 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 41 def enabled? # rubocop:disable Legion/Extension/ActorEnabledSideEffects Legion.const_defined?(:Transport, false) && Helpers::Capability. rescue StandardError => e log.warn("WritebackVectorize enabled? check failed: #{e.}") false end |
#generate_task? ⇒ Boolean
13 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 13 def generate_task? = false |
#handle_vectorize(payload) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 15 def handle_vectorize(payload) payload = symbolize(payload) log.debug("WritebackVectorize handle_vectorize content_length=#{payload[:content].to_s.length} content_type=#{payload[:content_type] || 'nil'}") result = Legion::LLM::Embeddings.generate(text: payload[:content]) vector = result.is_a?(Hash) ? result[:vector] : result = vector.is_a?(Array) && vector.any? ? vector : Array.new(1024, 0.0) log.debug("WritebackVectorize embedding_dimensions=#{.length} vector_generated=#{vector.is_a?(Array) && vector.any?}") enriched = payload.merge(embedding: ) if Helpers::Capability.can_write? log.debug('WritebackVectorize route=direct_ingest') Runners::Knowledge.handle_ingest(**enriched) else log.debug('WritebackVectorize route=transport_writeback') Transport::Messages::Writeback.new( **enriched, has_embedding: true ).publish end log.info('WritebackVectorize completed action=vectorized') { success: true, action: :vectorized } rescue StandardError => e handle_exception(e, level: :error, operation: 'apollo.writeback_vectorize.handle_vectorize') { success: false, error: e. } end |
#runner_class ⇒ Object
10 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 10 def runner_class = self.class |
#runner_function ⇒ Object
11 |
# File 'lib/legion/extensions/apollo/actors/writeback_vectorize.rb', line 11 def runner_function = 'handle_vectorize' |