Class: LangExtract::Core::PromptBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/langextract/core/prompting.rb

Instance Method Summary collapse

Constructor Details

#initialize(validation_mode: :warning, warning_io: $stderr) ⇒ PromptBuilder

Returns a new instance of PromptBuilder.



11
12
13
# File 'lib/langextract/core/prompting.rb', line 11

def initialize(validation_mode: :warning, warning_io: $stderr)
  @validator = PromptValidation.new(mode: validation_mode, warning_io: warning_io)
end

Instance Method Details

#build(document:, chunk:, prompt_description:, examples: [], additional_context: nil, context_window_chars: 0, pass_index: nil, total_passes: 1) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/langextract/core/prompting.rb', line 15

def build(document:, chunk:, prompt_description:, examples: [], additional_context: nil,
          context_window_chars: 0, pass_index: nil, total_passes: 1)
  normalized_examples = examples.map { |example| normalize_example(example) }
  validator.validate!(normalized_examples)

  sections = []
  sections << "Task: #{prompt_description}"
  sections << "Additional context: #{additional_context}" if additional_context
  sections << pass_section(pass_index, total_passes) if total_passes.to_i > 1
  sections << context_section(document, chunk, context_window_chars) if context_window_chars.positive?
  sections << examples_section(normalized_examples) unless normalized_examples.empty?
  sections << "Text:\n#{chunk.text}"
  sections << output_contract
  sections.join("\n\n")
end