```swift title="Swift" import Foundation import Kreuzberg import RustBridge struct VectorRecord { let id: String let content: String let embedding: [Float] let metadata: [String: String] } let configJson = """ { "chunking": { "max_characters": 512, "overlap": 50, "embedding": { "model": {"preset": {"name": "balanced"}}, "batch_size": 32, "normalize": true } } } """ let documentId = "doc_001" let config = try extractionConfigFromJson(configJson) let result = try extractFileSync("document.pdf", nil, config) var records: [VectorRecord] = [] if let chunks = result.chunks() { for (index, chunk) in chunks.enumerated() { guard let embedding = chunk.embedding() else { continue } let content = chunk.content().toString() let vector = embedding.map { $0 } var metadata: [String: String] = [:] metadata["document_id"] = documentId metadata["chunk_index"] = String(index) metadata["content_length"] = String(content.count) records.append(VectorRecord( id: "\(documentId)_chunk_\(index)", content: content, embedding: vector, metadata: metadata )) } } print("Generated \(records.count) vector records") ```