Class: Deepsearch::Engine::Steps::Summarization::Process
- Inherits:
-
Object
- Object
- Deepsearch::Engine::Steps::Summarization::Process
- Defined in:
- lib/deepsearch/engine/steps/summarization/process.rb
Overview
Generates a final, synthesized answer to the user’s query based on relevant text chunks. It constructs a detailed prompt for an LLM, including the query, context from chunks, and instructions for citing sources, then returns the LLM’s response.
Instance Attribute Summary collapse
-
#query ⇒ Object
readonly
Returns the value of attribute query.
-
#relevant_chunks ⇒ Object
readonly
Returns the value of attribute relevant_chunks.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(query:, relevant_chunks:) ⇒ Process
constructor
A new instance of Process.
Constructor Details
#initialize(query:, relevant_chunks:) ⇒ Process
Returns a new instance of Process.
15 16 17 18 |
# File 'lib/deepsearch/engine/steps/summarization/process.rb', line 15 def initialize(query:, relevant_chunks:) @query = query @relevant_chunks = relevant_chunks end |
Instance Attribute Details
#query ⇒ Object (readonly)
Returns the value of attribute query.
13 14 15 |
# File 'lib/deepsearch/engine/steps/summarization/process.rb', line 13 def query @query end |
#relevant_chunks ⇒ Object (readonly)
Returns the value of attribute relevant_chunks.
13 14 15 |
# File 'lib/deepsearch/engine/steps/summarization/process.rb', line 13 def relevant_chunks @relevant_chunks end |
Instance Method Details
#execute ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/deepsearch/engine/steps/summarization/process.rb', line 20 def execute return Result.new(summary: "No relevant content found to summarize.") if relevant_chunks.empty? prompt = build_summary_prompt Deepsearch.configuration.logger.debug("Summarizing content with LLM...") response = RubyLLM.chat.ask(prompt) Deepsearch.configuration.logger.debug("Summarization complete.") Result.new(summary: response.content) rescue StandardError => e Deepsearch.configuration.logger.debug("Error during summarization: #{e.message}") Result.new(summary: nil, error: e.) end |