```elixir title="Elixir" alias Kreuzberg.ExtractionConfig # Load configuration from file # Automatically discovers and loads configuration from the user's config directory config_path = Path.expand("~/.kreuzberg/config.json") config = if File.exists?(config_path) do config_data = config_path |> File.read!() |> Jason.decode!() struct(ExtractionConfig, Map.new(config_data, fn {k, v} -> {String.to_atom(k), v} end)) else IO.puts("Config file not found at #{config_path}. Using defaults.") %ExtractionConfig{} end IO.puts("Configuration Source: #{if File.exists?(config_path), do: "#{config_path} (file)", else: "defaults"}") IO.puts("OCR Enabled: #{inspect(config.ocr["enabled"])}") IO.puts("Chunking Max Characters: #{inspect(config.chunking["max_characters"])}") IO.puts("Use Cache: #{inspect(config.use_cache)}") {:ok, result} = Kreuzberg.extract_file("document.pdf", nil, config) IO.puts("Document extraction complete") IO.puts("Content length: #{byte_size(result.content)} bytes") IO.puts("Languages detected: #{inspect(result.detected_languages)}") ```