```go title="Go" package main import ( "fmt" "log" "github.com/kreuzberg-dev/kreuzberg/packages/go/v5" ) func main() { maxChars := 500 maxOverlap := 50 normalize := true batchSize := int32(16) config := &kreuzberg.ExtractionConfig{ Chunking: &kreuzberg.ChunkingConfig{ MaxChars: &maxChars, MaxOverlap: &maxOverlap, Embedding: &kreuzberg.EmbeddingConfig{ Model: kreuzberg.EmbeddingModelType_Preset("all-mpnet-base-v2"), Normalize: &normalize, BatchSize: &batchSize, }, }, } result, err := kreuzberg.ExtractFileSync("research_paper.pdf", config) if err != nil { log.Fatalf("RAG extraction failed: %v", err) } chunks := result.Chunks fmt.Printf("Found %d chunks for RAG pipeline\n", len(chunks)) for i := 0; i < len(chunks) && i < 3; i++ { chunk := chunks[i] content := chunk.Content if len(content) > 80 { content = content[:80] } fmt.Printf("Chunk %d: %s...\n", i, content) } } ```