Files
fil/docs/snippets/go/advanced/token_reduction_example.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

895 B

package main

import (
	"fmt"
	"log"

	"github.com/kreuzberg-dev/kreuzberg/packages/go/v5"
)

func main() {
	preserveMarkdown := true
	mode := "moderate"

	config := &kreuzberg.ExtractionConfig{
		TokenReduction: &kreuzberg.TokenReductionConfig{
			Mode:             &mode,
			PreserveMarkdown: &preserveMarkdown,
		},
	}

	result, err := kreuzberg.ExtractFileSync("verbose_document.pdf", config)
	if err != nil {
		log.Fatalf("extraction failed: %v", err)
	}

	original := 0
	reduced := 0
	ratio := 0.0

	if val, ok := result.Metadata["original_token_count"]; ok {
		original = val.(int)
	}

	if val, ok := result.Metadata["token_count"]; ok {
		reduced = val.(int)
	}

	if val, ok := result.Metadata["token_reduction_ratio"]; ok {
		ratio = val.(float64)
	}

	fmt.Printf("Reduced from %d to %d tokens\n", original, reduced)
	fmt.Printf("Reduction: %.1f%%\n", ratio*100)
}