Class: LangExtract::Core::PromptValidation

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

Constant Summary collapse

MODES =
%i[off warning error].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mode: :warning, warning_io: $stderr) ⇒ PromptValidation

Returns a new instance of PromptValidation.

Raises:

  • (ArgumentError)


11
12
13
14
15
# File 'lib/langextract/core/prompt_validation.rb', line 11

def initialize(mode: :warning, warning_io: $stderr)
  @mode = mode.to_sym
  @warning_io = warning_io
  raise ArgumentError, "invalid prompt validation mode" unless MODES.include?(@mode)
end

Instance Method Details

#validate!(examples) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/langextract/core/prompt_validation.rb', line 17

def validate!(examples)
  return if mode == :off

  issues = examples.flat_map.with_index { |example, index| issues_for(example, index) }
  return if issues.empty?

  message = "Prompt examples failed validation: #{issues.join('; ')}"
  raise PromptValidationError, message if mode == :error

  warning_io.puts(message)
end