Files
ragflow/internal/parser/parser/pdf_parser_nocgo.go
Jack 902d05b22b feat: parser component param check and family mapping fixes (#17312)
## Summary

Adds construction-time parameter validation to the ingestion
`ParserComponent` (mirroring the applicable subset of Python
`ParserParam.check()`), fixes a family-mapping mismatch that silently
skipped `output_format` validation and setup configuration for
image/audio files, and aligns the no-CGO parser stubs with the CGO
variants by threading `context.Context` through `ParseWithResult`.
2026-07-23 22:06:22 +08:00

37 lines
937 B
Go

//go:build !cgo
package parser
import (
"context"
"fmt"
)
func (p *PDFParser) ParseWithResult(ctx context.Context, filename string, data []byte) ParseResult {
if err := p.validateParseMethod(); err != nil {
return ParseResult{Err: err}
}
switch normalizePDFParseMethod(p.ParseMethod) {
case "plain_text":
return parsePDFWithPlainText(filename, data, p)
case "mineru":
return parsePDFWithMinerU(ctx, filename, data, p)
case "paddleocr":
return parsePDFWithPaddleOCR(ctx, filename, data, p)
case "docling":
return parsePDFWithDocling(ctx, filename, data, p)
case "opendataloader":
return parsePDFWithOpenDataLoader(ctx, filename, data, p)
case "somark":
return parsePDFWithSoMark(filename, data, p)
case "tcadp":
return parsePDFWithTCADP(filename, data, p)
}
if len(data) == 0 {
return emptyPDFResult(filename)
}
return ParseResult{
Err: fmt.Errorf("%w: %s", ErrPDFEngineUnavailable, filename),
}
}