40 lines
1.2 KiB
Elixir
40 lines
1.2 KiB
Elixir
```elixir title="Elixir"
|
|
alias Kreuzberg.ExtractionConfig
|
|
|
|
# Process document with quality filtering
|
|
config = %ExtractionConfig{
|
|
quality_processing: %{
|
|
"enabled" => true,
|
|
"min_quality_score" => 0.8
|
|
}
|
|
}
|
|
|
|
case Kreuzberg.extract_file("document.pdf", nil, config) do
|
|
{:ok, result} ->
|
|
IO.puts("=== Quality Processing ===\n")
|
|
|
|
# Display quality metrics if available
|
|
quality_score = result.quality_score
|
|
if quality_score && quality_score > 0 do
|
|
IO.puts("Quality Score: #{quality_score}")
|
|
IO.puts("Content Quality: #{quality_status(quality_score)}")
|
|
end
|
|
|
|
# Display content with quality assurance
|
|
IO.puts("\n--- Extracted Content ---")
|
|
content_preview = String.slice(result.content, 0..200)
|
|
IO.puts(content_preview)
|
|
IO.puts("\nTotal size: #{byte_size(result.content)} bytes")
|
|
|
|
{:error, reason} ->
|
|
IO.puts("Extraction failed!")
|
|
IO.puts("Error: #{inspect(reason)}")
|
|
end
|
|
|
|
# Helper function to determine quality status
|
|
defp quality_status(score) when score >= 0.9, do: "Excellent"
|
|
defp quality_status(score) when score >= 0.8, do: "Good"
|
|
defp quality_status(score) when score >= 0.7, do: "Fair"
|
|
defp quality_status(_score), do: "Poor"
|
|
```
|