Sha256: 3c03219b5214541aa047c645eeea297824c7af7dab7a729a6e089a940c28b49b

Contents?: true

Size: 481 Bytes

Versions: 1

Compression:

Stored size: 481 Bytes

Contents

module LlmOrchestrator
  class Chain
    def initialize(memory: nil)
      @steps = []
      @memory = memory || Memory.new
    end
    
    def add_step(&block)
      @steps << block
      self
    end
    
    def run(input)
      @steps.reduce(input) do |result, step|
        output = step.call(result, @memory)
        @memory.add_message('assistant', output) if output.is_a?(String)
        output
      end
    end

    def clear_memory
      @memory.clear
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
llm_orchestrator-0.1.0 lib/llm_orchestrator/chain.rb