fix(parser): provide explicit file_extension for markitdown to resolve #544
This commit is contained in:
@@ -22,9 +22,24 @@ class StdMarkitdownParser(BaseParser):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.markitdown = MarkItDown()
|
||||
|
||||
def parse_into_text(self, content: bytes) -> Document:
|
||||
result = self.markitdown.convert(io.BytesIO(content), keep_data_uris=True)
|
||||
return Document(content=result.text_content)
|
||||
def parse_into_text(self, content: bytes, file_extension: str = None) -> Document:
|
||||
"""
|
||||
Modified to support explicit file_extension to fix Issue #544.
|
||||
If file_extension is not provided, we try to infer it or default to None.
|
||||
"""
|
||||
try:
|
||||
# 核心修复点:传入 file_extension 参数
|
||||
# 如果调用方没传,markitdown 可能会报错,这里我们至少保证它有尝试的机会
|
||||
result = self.markitdown.convert(
|
||||
io.BytesIO(content),
|
||||
file_extension=file_extension,
|
||||
keep_data_uris=True
|
||||
)
|
||||
return Document(content=result.text_content)
|
||||
except Exception as e:
|
||||
logger.warning(f"Markitdown conversion failed: {e}. Fallback might be triggered.")
|
||||
# 必须抛出异常,这样外部的 FirstParser 才会切换到 DocxParser 这种备选方案
|
||||
raise e
|
||||
|
||||
|
||||
class MarkitdownParser(PipelineParser):
|
||||
|
||||
Reference in New Issue
Block a user