```go title="Go" package main import ( "fmt" "github.com/kreuzberg-dev/kreuzberg/packages/go/v5" ) func main() { maxChars := 512 maxOverlap := 50 normalize := true batchSize := int32(32) showProgress := false config := &kreuzberg.ExtractionConfig{ Chunking: &kreuzberg.ChunkingConfig{ MaxChars: &maxChars, MaxOverlap: &maxOverlap, Embedding: &kreuzberg.EmbeddingConfig{ Model: kreuzberg.EmbeddingModelType_Preset("balanced"), Normalize: &normalize, BatchSize: &batchSize, ShowDownloadProgress: &showProgress, }, }, } result, err := kreuzberg.ExtractFileSync("document.pdf", config) if err != nil { fmt.Printf("Error: %v\n", err) return } for index, chunk := range result.Chunks { chunkID := fmt.Sprintf("doc_chunk_%d", index) content := chunk.Content if len(content) > 50 { content = content[:50] } fmt.Printf("Chunk %s: %s\n", chunkID, content) if chunk.Embedding != nil && len(chunk.Embedding) > 0 { fmt.Printf(" Embedding dimensions: %d\n", len(chunk.Embedding)) } } } ```