mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-11 06:05:45 +08:00
Ports remaining Go parser wiring and PDF backends, adds tenant-aware VLM dispatch, aligns post-processing with Python, and adds end-to-end pipeline coverage with a generated six-page PDF.
36 lines
885 B
Go
36 lines
885 B
Go
//go:build !cgo
|
|
|
|
package parser
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func (p *PDFParser) ParseWithResult(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(filename, data, p)
|
|
case "paddleocr":
|
|
return parsePDFWithPaddleOCR(filename, data, p)
|
|
case "docling":
|
|
return parsePDFWithDocling(filename, data, p)
|
|
case "opendataloader":
|
|
return parsePDFWithOpenDataLoader(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),
|
|
}
|
|
}
|