Skip to content

Commit b8bb229

Browse files
authored
Fix Markdown parser, the table should be inside chunk (infiniflow#17477)
1 parent 675c35a commit b8bb229

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

deepdoc/parser/markdown_parser.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ def replace_tables_with_rendered_html(pattern, table_list, render=True):
5555
table_list.append(raw_table)
5656
if separate_tables:
5757
# Skip this match (i.e., remove it)
58-
new_text += working_text[last_end : match.start()] + "\n\n"
58+
new_text += working_text[last_end : match.start()] + "\n"
5959
else:
6060
# Replace with rendered HTML
6161
html_table = markdown(raw_table, extensions=["markdown.extensions.tables"]) if render else raw_table
62-
new_text += working_text[last_end : match.start()] + html_table + "\n\n"
62+
new_text += working_text[last_end : match.start()] + html_table + "\n"
6363
last_end = match.end()
6464
new_text += working_text[last_end:]
6565
return new_text
@@ -75,7 +75,7 @@ def replace_tables_with_rendered_html(pattern, table_list, render=True):
7575
""",
7676
re.VERBOSE,
7777
)
78-
working_text = replace_tables_with_rendered_html(border_table_pattern, tables, render=separate_tables)
78+
working_text = replace_tables_with_rendered_html(border_table_pattern, tables)
7979

8080
# Borderless Markdown table
8181
no_border_table_pattern = re.compile(
@@ -87,7 +87,7 @@ def replace_tables_with_rendered_html(pattern, table_list, render=True):
8787
""",
8888
re.VERBOSE,
8989
)
90-
working_text = replace_tables_with_rendered_html(no_border_table_pattern, tables, render=separate_tables)
90+
working_text = replace_tables_with_rendered_html(no_border_table_pattern, tables)
9191

9292
# Replace any TAGS e.g. <table ...> to <table>
9393
TAGS = ["table", "td", "tr", "th", "tbody", "thead", "div"]
@@ -139,9 +139,9 @@ def replace_html_tables():
139139
raw_table = match.group()
140140
tables.append(raw_table)
141141
if separate_tables:
142-
new_text += working_text[last_end : match.start()] + "\n\n"
142+
new_text += working_text[last_end : match.start()] + "\n"
143143
else:
144-
new_text += working_text[last_end : match.start()] + raw_table + "\n\n"
144+
new_text += working_text[last_end : match.start()] + raw_table + "\n"
145145
last_end = match.end()
146146
new_text += working_text[last_end:]
147147
working_text = new_text

rag/app/naive.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,7 @@ def __call__(self, filename, binary=None, separate_tables=True, delimiter=None,
899899
txt = f.read()
900900

901901
remainder, tables = self.extract_tables_and_remainder(f"{txt}\n", separate_tables=separate_tables)
902-
parsing_text = remainder if separate_tables else txt
902+
parsing_text = remainder
903903
extractor = MarkdownElementExtractor(parsing_text)
904904
image_refs = self.extract_image_urls_with_lines(parsing_text)
905905
element_sections = extractor.extract_elements(delimiter, include_meta=True)
@@ -922,8 +922,9 @@ def __call__(self, filename, binary=None, separate_tables=True, delimiter=None,
922922
section_images.append(combined_image)
923923

924924
tbls = []
925-
for table in tables:
926-
tbls.append(((None, markdown(table, extensions=["markdown.extensions.tables"])), ""))
925+
if separate_tables:
926+
for table in tables:
927+
tbls.append(((None, markdown(table, extensions=["markdown.extensions.tables"])), ""))
927928
if return_section_images:
928929
return sections, tbls, section_images
929930
return sections, tbls
@@ -1128,7 +1129,7 @@ def chunk(filename, binary=None, from_page=0, to_page=MAXIMUM_PAGE_NUMBER, lang=
11281129
sections, tables, section_images = markdown_parser(
11291130
filename,
11301131
binary,
1131-
separate_tables=True,
1132+
separate_tables=False,
11321133
delimiter=parser_config.get("delimiter", "\n!?;。;!?"),
11331134
return_section_images=True,
11341135
)

rag/flow/parser/parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1074,7 +1074,7 @@ def _markdown(self, name, blob, **kwargs):
10741074
sections, tables, section_images = markdown_parser(
10751075
name,
10761076
blob,
1077-
separate_tables=True,
1077+
separate_tables=False,
10781078
delimiter=conf.get("delimiter"),
10791079
return_section_images=True,
10801080
)

0 commit comments

Comments
 (0)