Class: Deepsearch::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/deepsearch/engine.rb,
lib/deepsearch/engine/pipeline.rb,
lib/deepsearch/engine/steps/rag/chunker.rb,
lib/deepsearch/engine/steps/rag/process.rb,
lib/deepsearch/engine/steps/rag/similarity.rb,
lib/deepsearch/engine/steps/rag/values/chunk.rb,
lib/deepsearch/engine/steps/rag/values/query.rb,
lib/deepsearch/engine/steps/rag/values/result.rb,
lib/deepsearch/engine/steps/summarization/result.rb,
lib/deepsearch/engine/steps/summarization/process.rb,
lib/deepsearch/engine/steps/parallel_search/result.rb,
lib/deepsearch/engine/steps/parallel_search/search.rb,
lib/deepsearch/engine/steps/data_aggregation/result.rb,
lib/deepsearch/engine/steps/parallel_search/process.rb,
lib/deepsearch/engine/steps/data_aggregation/process.rb,
lib/deepsearch/engine/steps/prepare_subqueries/result.rb,
lib/deepsearch/engine/steps/prepare_subqueries/process.rb,
lib/deepsearch/engine/steps/data_aggregation/parsed_website.rb

Overview

The main entry point for performing a deep search. This class initializes the search pipeline with the configured or specified search adapter and provides a ‘search` method to execute the query.

Defined Under Namespace

Modules: Steps Classes: Pipeline

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter_type: nil) ⇒ Engine

Returns a new instance of Engine.



12
13
14
15
16
17
18
19
# File 'lib/deepsearch/engine.rb', line 12

def initialize(adapter_type: nil)
  adapter_source = adapter_type ||
                   Deepsearch.configuration.custom_search_adapter_class ||
                   Deepsearch.configuration.search_adapter

  search_adapter = Deepsearch::SearchAdapters.create(adapter_source)
  @pipeline = Engine::Pipeline.new(search_adapter)
end

Instance Attribute Details

#pipelineObject (readonly)

Returns the value of attribute pipeline.



10
11
12
# File 'lib/deepsearch/engine.rb', line 10

def pipeline
  @pipeline
end

Instance Method Details

#search(query, **options) ⇒ Object



21
22
23
# File 'lib/deepsearch/engine.rb', line 21

def search(query, **options)
  @pipeline.execute(query, **options)
end