Files
fil/docs/snippets/ruby/plugins/min_length_validator.md
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

879 B

require "kreuzberg"

# Custom validator ensuring extracted content meets minimum length requirement
class MinLengthValidator
  def initialize(min_length: 100)
    @min_length = min_length
  end

  def call(result)
    content_length = result["content"].length
    if content_length < @min_length
      raise StandardError,
            "Content too short: #{content_length} < #{@min_length}"
    end
  end
end

# Register the validator with priority
validator = MinLengthValidator.new(min_length: 100)
Kreuzberg.register_validator("min_length_validator", validator, 100)

# Usage in extraction
config = Kreuzberg::ExtractionConfig.new

begin
  result = Kreuzberg.extract_file_sync("document.pdf", config: config)
  puts "Extraction successful: #{result["content"].length} characters"
rescue StandardError => e
  puts "Validation failed: #{e.message}"
end