Class: LangExtract::Core::PromptBuilder
- Inherits:
-
Object
- Object
- LangExtract::Core::PromptBuilder
- Defined in:
- lib/langextract/core/prompting.rb
Instance Method Summary collapse
- #build(document:, chunk:, prompt_description:, examples: [], additional_context: nil, context_window_chars: 0, pass_index: nil, total_passes: 1) ⇒ Object
-
#initialize(validation_mode: :warning, warning_io: $stderr) ⇒ PromptBuilder
constructor
A new instance of PromptBuilder.
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 |