This commit is contained in:
55
docs/snippets/swift/plugins/plugin_validator.md
Normal file
55
docs/snippets/swift/plugins/plugin_validator.md
Normal file
@@ -0,0 +1,55 @@
|
||||
```swift title="Swift"
|
||||
import Kreuzberg
|
||||
|
||||
final class MinLengthValidator: Validator {
|
||||
func name() -> String {
|
||||
"min_length"
|
||||
}
|
||||
|
||||
func version() -> String {
|
||||
"1.0.0"
|
||||
}
|
||||
|
||||
func priority() -> Int32 {
|
||||
50
|
||||
}
|
||||
|
||||
func validate(result: ExtractionResult, config: ExtractionConfig) -> String {
|
||||
let contentLength = result.content().count
|
||||
if contentLength < 50 {
|
||||
let message = "Content too short: \(contentLength)"
|
||||
return "{\"err\": \"\(message)\"}"
|
||||
}
|
||||
return "{\"ok\": null}"
|
||||
}
|
||||
|
||||
func shouldValidate(result: ExtractionResult, config: ExtractionConfig) -> Bool {
|
||||
true
|
||||
}
|
||||
|
||||
func initialize() -> String {
|
||||
"{\"ok\": null}"
|
||||
}
|
||||
|
||||
func shutdown() -> String {
|
||||
"{\"ok\": null}"
|
||||
}
|
||||
}
|
||||
|
||||
let validator = MinLengthValidator()
|
||||
try Kreuzberg.registerValidator(validator)
|
||||
|
||||
// Extract a file; the validator runs in-pipeline during extraction
|
||||
let config = ExtractionConfig(
|
||||
useCache: false,
|
||||
enableQualityProcessing: false,
|
||||
resultFormat: .unified,
|
||||
outputFormat: .markdown
|
||||
)
|
||||
let result = try extractFileSync(
|
||||
path: "document.pdf",
|
||||
mimeType: nil,
|
||||
config: config
|
||||
)
|
||||
print("Content length: \(result.content().count)")
|
||||
```
|
||||
Reference in New Issue
Block a user