Fix: resolve model_id to model before judge parse method (#17493)

This commit is contained in:
Lynn
2026-07-29 09:34:52 +08:00
committed by GitHub
parent 75836cfc10
commit 8d1eff6ea2
11 changed files with 91 additions and 8 deletions

View File

@@ -25,6 +25,7 @@ from pypdf import PdfReader as pdf2_read
from deepdoc.parser import PdfParser, PlainParser
from deepdoc.parser.ppt_parser import RAGFlowPptParser
from rag.app.naive import by_plaintext, PARSERS
from api.db.joint_services.tenant_model_service import get_composite_model_name_by_id
from common.constants import MAXIMUM_PAGE_NUMBER
from common.parser_config_utils import normalize_layout_recognizer
from rag.nlp import rag_tokenizer
@@ -195,7 +196,14 @@ def chunk(filename, binary=None, from_page=0, to_page=MAXIMUM_PAGE_NUMBER, lang=
logging.warning(error_msg)
raise NotImplementedError(error_msg)
elif re.search(r"\.pdf$", filename, re.IGNORECASE):
layout_recognizer, parser_model_name = normalize_layout_recognizer(parser_config.get("layout_recognize", "DeepDOC"))
layout_recognize_raw = parser_config.get("layout_recognize", "DeepDOC")
tenant_id = kwargs.get("tenant_id")
if tenant_id and isinstance(layout_recognize_raw, str):
try:
layout_recognize_raw = get_composite_model_name_by_id(layout_recognize_raw)
except LookupError:
pass
layout_recognizer, parser_model_name = normalize_layout_recognizer(layout_recognize_raw)
if isinstance(layout_recognizer, bool):
layout_recognizer = "DeepDOC" if layout_recognizer else "Plain Text"