Files

38 lines
1.2 KiB
Ruby
Raw Permalink Normal View History

2026-06-01 23:40:55 +02:00
```ruby title="disk_cache.rb"
require 'kreuzberg'
require 'fileutils'
cache_dir = File.expand_path('~/.cache/kreuzberg')
FileUtils.mkdir_p(cache_dir)
config = Kreuzberg::ExtractionConfig.new(
use_cache: true,
cache_config: Kreuzberg::CacheConfig.new(
cache_path: cache_dir,
max_cache_size: 500 * 1024 * 1024,
cache_ttl_seconds: 7 * 86400,
enable_compression: true,
)
)
kreuzberg = Kreuzberg::Client.new(config)
puts "First extraction (will be cached)..."
result1 = kreuzberg.extract_file('document.pdf')
puts " - Content length: #{result1.content.length}"
puts " - Cached: #{result1.metadata['was_cached']}"
puts "\nSecond extraction (from cache)..."
result2 = kreuzberg.extract_file('document.pdf')
puts " - Content length: #{result2.content.length}"
puts " - Cached: #{result2.metadata['was_cached']}"
puts "\nResults are identical: #{result1.content == result2.content}"
cache_stats = kreuzberg.get_cache_stats
puts "\nCache Statistics:"
puts " - Total entries: #{cache_stats['total_entries']}"
puts " - Cache size: #{(cache_stats['cache_size_bytes'] / 1024.0 / 1024.0).round(1)} MB"
puts " - Hit rate: #{(cache_stats['hit_rate'] * 100).round(1)}%"
```