Files
fil/docs/snippets/ruby/llm/structured_extraction.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

662 B

require 'kreuzberg'
require 'json'

schema = {
  type: 'object',
  properties: {
    title: { type: 'string' },
    authors: { type: 'array', items: { type: 'string' } },
    date: { type: 'string' }
  },
  required: %w[title authors date],
  additionalProperties: false
}

config = Kreuzberg::ExtractionConfig.new(
  structured_extraction: Kreuzberg::StructuredExtractionConfig.new(
    schema: JSON.generate(schema),
    schema_name: 'PaperMetadata',
    strict: true,
    llm: Kreuzberg::LlmConfig.new(model: 'openai/gpt-4o-mini')
  )
)

result = Kreuzberg.extract_file_sync('paper.pdf', config: config)
puts result.structured_output