jay77721
70b09ce5af
fix(chunk): replace chunk image on edit instead of appending ( #22175 )
2026-11-09 19:18:32 +08:00
jay77721
2b4d628d51
refactor(ingestion): drop inert parser family setup keys ( #22163 )
2026-11-09 17:38:59 +08:00
jay77721
d4ff41a57d
refactor(ingestion): remove retired parser config references ( #22153 )
2026-11-09 17:37:53 +08:00
jay77721
64bc9f3f40
refactor(ingestion): remove retired parser options ( #22147 )
2026-11-09 14:33:43 +08:00
jay77721
eeeda36046
refactor(ingestion): remove media flattening option ( #22144 )
2026-11-09 13:47:50 +08:00
jay77721
8ba216b1c1
fix(deepdoc): preserve missed PDF table rows and merged headers ( #22073 )
2026-11-06 18:03:00 +08:00
jay77721
3a6b6dca78
refactor(ingestion): centralize component names and identity checks ( #22081 )
2026-11-06 17:03:32 +08:00
jay77721
4d20ef45f6
docs: record name column widening in database change log ( #22030 )
2026-11-05 18:04:41 +08:00
jay77721
afd9a7f1da
fix(parser): preserve Office table cell spans ( #22012 )
2026-11-05 15:41:17 +08:00
jay77721
6ece20514f
fix(core): enforce consistent name and alias length limits ( #22020 )
2026-11-05 15:32:06 +08:00
jay77721
aed68a2697
fix(ingestion): preserve PDF sentences across page boundaries ( #21982 )
2026-11-05 14:49:43 +08:00
jay77721
b2cf72d714
fix(deepdoc): keep DLA-labeled body prose out of table captions ( #21979 )
2026-11-04 19:53:45 +08:00
jay77721
5b54cb0dad
feat(ingestion): record pipeline version on operation logs ( #21916 )
2026-11-04 18:31:42 +08:00
jay77721
bb5437e693
perf(pdf): read page directives once per document ( #21950 )
2026-11-04 15:34:02 +08:00
jay77721
9ed193674c
feat(ingestion): recognize image tables through the DeepDoc page pipeline ( #21911 )
2026-11-04 13:14:38 +08:00
jay77721
8d44dca39b
fix(ingestion): share extractor concurrency across tag extraction ( #21891 )
2026-11-03 18:48:40 +08:00
jay77721
5dc7683aa4
fix(parser): detect Office content before selecting Go parsers ( #21909 )
2026-11-03 17:38:56 +08:00
jay77721
8e0ed2bc15
fix(chunker): align PDF child previews with source positions ( #21853 )
2026-11-02 19:17:20 +08:00
jay77721
0c7fb3d7d7
perf(chunker): coalesce PDF renders and share crop workers ( #21850 )
2026-11-02 17:46:55 +08:00
jay77721
c6c9df03a2
test(mediacache): cover real Kvrocks lifecycle and index boundary ( #21851 )
2026-11-02 16:10:16 +08:00
jay77721
08460530d5
feat(parser): hand off Markdown and HTML remote images as media refs ( #21764 )
2026-11-02 11:59:01 +08:00
jay77721
1191d500a6
fix(chunker): prevent PDF child chunks from overwriting each other ( #21773 )
2026-11-02 10:44:29 +08:00
jay77721
dce85b3043
fix(parser): keep recovered PDF TOC leader lines out of the body guard ( #21768 )
2026-10-30 20:05:23 +08:00
jay77721
41753ee5a1
fix(chunker): drop DOCX custom-delimiter record prefix ( #21760 )
2026-10-30 16:50:12 +08:00
jay77721
aaa8e05354
feat(parser): hand off Office images as media refs ( #21700 )
2026-10-30 16:48:51 +08:00
jay77721
9ba49c523e
feat(media): harden run media cache lifecycle and limits ( #21694 )
2026-10-30 12:41:23 +08:00
jay77721
5b397cecd2
feat(parser): hand off EPUB images as media refs ( #21677 )
2026-10-29 17:20:44 +08:00
jay77721
fc766ce3d7
fix(parser): remove duplicate figures for extracted PDF tables ( #21673 )
2026-10-29 16:37:23 +08:00
jay77721
4b69a7f41c
fix(parser): preserve Markdown image references in chunk text ( #21608 )
2026-10-29 11:05:48 +08:00
jay77721
d697b0410a
feat(parser): add media references for on-demand image materialization ( #21561 )
2026-10-28 19:47:53 +08:00
jay77721
6e2214aaa8
fix(parser): preserve table structure across document formats ( #21504 )
2026-10-27 16:54:40 +08:00
jay77721
292db08b91
fix(preview): highlight all spreadsheet chunk ranges ( #21511 )
2026-10-27 14:22:02 +08:00
jay77721
1a6a382a2f
fix(deepdoc): preserve table rows before cell assignment ( #21489 )
2026-10-27 11:55:17 +08:00
jay77721
3e313daf6f
fix(ingestion): support legacy .xls BIFF8 as tag source ( #21483 )
...
## Summary
Tag files with `.xls` extension were accepted by the extension check in
`parseTagSourceByFilename` but always produced an empty tag index:
`parseXLSXTagSource` used only `excelize.OpenReader`, which rejects OLE
BIFF workbooks (`unsupported workbook file format`). This makes legacy
Excel 97-2003 tag files unusable while the docs claim `XLSX, XLS, CSV,
TXT` support.
This PR routes OLE-magic `.xls` bytes to a new BIFF8 reader
(`go-excel-reader`, already used by the document `XLSParser`), applying
the identical per-row rule as `.xlsx`.
## Related Issue
None (follow-up of #10602 / #10660 which fixed document-side `.xls`; tag
side was left behind).
## Changes
- `internal/ingestion/component/tag_source.go`
- Detect OLE compound-document magic and route to new
`parseBIFF8TagSource` (fallback to `excelize` for OOXML-renamed `.xls`).
- `parseBIFF8TagSource`: per-sheet, no-header, first two non-empty cells
form `(content, tags)`; single-cell rows accumulate; extra cells
ignored.
- Extract shared `accumulateTagCells` helper (removes xlsx/BIFF8 loop
duplication); simplify `tagCellString` (drop redundant `string` case).
- Fix `unsupported extension` error text to include `.xls`.
- `internal/ingestion/component/tag_biff8_test.go` (new):
`TestParseBIFF8TagSource` with an xlwt-generated BIFF8 fixture (3
examples incl. single-cell accumulation).
## Test Plan
- `bash build.sh --test ./internal/ingestion/component/ -run
'TestParseBIFF8TagSource|TestParseTagSourceByFilename$|TestParseXLSXTagSource'
-v` — all PASS.
- `bash build.sh --test ./internal/ingestion/component/` — full package
PASS (~16s).
- Real-file check: document `XLSParser` parses 4 genuine `.xls` fixtures
(`produced=true`); same bytes via tag path previously returned
`count=0`, now return 3 tag examples.
2026-10-26 17:34:59 +08:00
jay77721
bea5b62faa
fix(ingestion): contain process-fatal errors and bound parser work ( #21480 )
2026-10-26 17:32:47 +08:00
jay77721
b5e8a0a2c3
refactor(parser): carry spreadsheet merge geometry through chunkers ( #21463 )
2026-10-26 14:23:47 +08:00
jay77721
2fc2b8888d
fix(document): persist parser models with the selected pipeline ( #21418 )
2026-10-26 13:34:44 +08:00
jay77721
914bcb0307
fix(deepdoc): resolve conflicting caption labels by confidence ( #21415 )
2026-10-26 11:18:27 +08:00
jay77721
1b8ab33c2c
fix(deepdoc): keep native PDF text when OCR detection misses it ( #21399 )
2026-10-26 11:17:28 +08:00
jay77721
651a1c65fc
fix(deepdoc): crop clean media previews without context bands ( #21412 )
2026-10-23 19:09:58 +08:00
jay77721
fd675ebde2
fix(deepdoc): preserve complete PDF figures ( #21390 )
2026-10-23 17:06:46 +08:00
jay77721
17f173c288
refactor(parser): remove dead output_format readers ( #21336 )
2026-10-22 17:40:41 +08:00
jay77721
c34e873824
fix(sdk): align Python SDK with RAGFlow 1.0 dataset API ( #21319 )
2026-10-22 15:45:08 +08:00
jay77721
9cb5539c01
docs(api): fix dataset parse_type examples and selection rules ( #21333 )
2026-10-22 15:14:58 +08:00
jay77721
7aac10a22b
refactor(ingestion): remove all ck_type tombstones ( #21317 )
2026-10-22 14:34:28 +08:00
jay77721
d4dd1eeb28
fix(parser): normalize inline image base64 before chunk upload ( #21286 )
2026-10-21 19:22:51 +08:00
jay77721
93b314f306
fix(chunker): preserve list-form PDF positions in title chunkers ( #21258 )
2026-10-21 18:41:31 +08:00
jay77721
32f0114c95
refactor(parser): unify PDF JSON post-processing ( #21228 )
2026-10-21 17:46:25 +08:00
jay77721
11ca59d511
refactor(ingestion): retire ck_type in favor of layout and doc_type ( #21259 )
2026-10-21 17:01:20 +08:00
jay77721
b84cadea97
fix(ingestion): block video parse while keeping visual upload routing ( #21245 )
2026-10-21 16:16:39 +08:00
jay77721
18d3da2756
refactor(pipeline): remove dead output_format from ingestion templates ( #21266 )
2026-10-21 13:57:02 +08:00
jay77721
ac6876d9e4
fix(ingestion): migrate composite PaddleOCR layout selectors ( #21236 )
2026-10-20 17:30:09 +08:00
jay77721
f402c001be
fix(parser): preserve PaddleOCR PDF highlight positions ( #21205 )
2026-10-20 15:46:31 +08:00
jay77721
f42999e01a
fix(web): correct PaddleOCR provider links to AI Studio ( #21196 )
2026-10-20 11:10:50 +08:00
jay77721
cfd41e569f
feat(pipeline): support image and email in general template ( #21072 )
2026-10-19 14:37:44 +08:00
jay77721
1d2d049702
fix(ingestion): document and validate extractor timeout env ( #21119 )
2026-10-19 13:07:23 +08:00
jay77721
0ad97e70af
fix(chunker): keep structured tables and images in the title family ( #21040 )
2026-10-16 18:37:03 +08:00
jay77721
a2f22bebb5
fix(parser): grow truncated rows to host inherited merge values ( #21044 )
2026-10-16 12:29:39 +08:00
jay77721
78faa36bd6
fix(ingestion): scope extractor timeout to single LLM call ( #21003 )
2026-10-16 09:44:39 +08:00
jay77721
89a7734408
fix(parser): inherit merged data cells, strip invisible chars, trim dataless columns ( #20996 )
2026-10-15 19:17:53 +08:00
jay77721
5753d7b27f
fix(parser): keep short-line body pages out of PDF TOC removal ( #20988 )
2026-10-15 19:06:26 +08:00
jay77721
b859e0460e
fix(dao): migrate Python-era flat ingestion config onto pipeline components ( #20986 )
2026-10-15 19:03:57 +08:00
jay77721
9f94f13cd4
fix(chunker): keep ancestor headings on every cap-split hierarchy piece ( #20953 )
2026-10-15 14:02:08 +08:00
jay77721
a2a629e972
fix(chunker): stop charging the replicated table header against the split budget ( #20845 )
2026-10-15 11:43:27 +08:00
jay77721
09ef155b0c
fix(web): filter empty metadata values in dataset meta_fields count ( #20933 )
2026-10-14 16:34:54 +08:00
jay77721
a93f416558
fix(ingestion): report knowledge compiler progress fractions ( #20902 )
2026-10-13 21:09:28 +08:00
jay77721
8efbe73da0
fix(chunker): preserve whole lines in PDF text previews ( #20890 )
2026-10-13 16:54:19 +08:00
jay77721
c80d15b37c
fix(ingestion): fetch a PDF source before image admission in VLM enhancement ( #20846 )
2026-10-13 16:06:34 +08:00
jay77721
db125c7188
fix(syncer): fail closed on non-positive connector refresh freq ( #20871 )
2026-10-13 15:30:24 +08:00
jay77721
deb1235be4
feat(parser): require a text source for images when vision enhancement is off ( #20839 )
2026-10-12 20:18:01 +08:00
jay77721
0ae367476b
fix(chunker): slice General split positions by visible-text ratio ( #20827 )
2026-10-12 17:49:13 +08:00
jay77721
ccb78ef37d
fix(ingestion): preserve spreadsheet identity in rebuilt chunks ( #20825 )
2026-10-12 17:37:39 +08:00
jay77721
030d08ac5d
fix(deepdoc): keep an attached figure caption on its own line ( #20819 )
2026-10-12 17:31:45 +08:00
jay77721
5fc413b957
fix(ingestion): preserve typed metadata during merges ( #20808 )
2026-10-12 17:14:26 +08:00
jay77721
845e94d701
fix(chunker): preserve PDF and Markdown sentence delimiters ( #20812 )
2026-10-12 16:51:05 +08:00
jay77721
35de240c39
feat(ingestion): add progress fraction reporting to VisionEnhancement and cropImageChunks ( #20800 )
2026-10-12 13:47:54 +08:00
jay77721
877138c98e
fix(web): restrict spreadsheet parser methods to supported options ( #20749 )
2026-10-12 10:29:06 +08:00
jay77721
bb18560be8
fix(chunker): preserve punctuation in general TXT and DOCX chunks ( #20751 )
2026-10-12 10:15:25 +08:00
jay77721
95df031cb0
refactor(parser): split image OCR into an independent switch ( #20683 )
2026-10-12 10:12:44 +08:00
jay77721
829aeb2f29
fix(deepdoc): stop PDF caption merge from dropping text and figures ( #20650 )
2026-10-10 13:34:48 +08:00
jay77721
e8f7f97237
fix(ingestion): persist and honor global vision settings ( #20474 )
2026-10-09 13:15:48 +08:00
jay77721
4071451ea4
refactor(deps): use Go dependency downloader as sole entrypoint ( #20360 )
2026-09-30 18:02:03 +08:00
jay77721
285b2c2903
fix(parser): restore picture OCR independently of VLM enhancement ( #20424 )
2026-09-30 14:32:48 +08:00
jay77721
6304825676
fix(parser): preserve DOCX XML character references ( #20359 )
2026-09-30 12:03:58 +08:00
jay77721
83b8e2ca24
fix(document): clone parser_config to break dataset aliasing; drop dead parser-config helpers ( #20381 )
2026-09-29 19:05:42 +08:00
jay77721
31fd92c2fa
feat(parser): add opt-in VLM enhancement for images ( #20166 )
2026-09-29 15:54:28 +08:00
jay77721
9b67a4112a
refactor(parser): unify spreadsheet tables on a segmented HTML wire ( #20358 )
2026-09-29 15:00:46 +08:00
jay77721
78154e1e28
fix(ingestion): read Python logs in Go backend ( #20214 )
2026-09-28 13:06:54 +08:00
jay77721
2be666b44a
fix(router): accept beta tokens on document image routes for shared chats ( #20185 )
2026-09-24 19:20:52 +08:00
jay77721
b227b950db
fix(dataset): read document-declared tag sources in tag aggregation ( #20119 )
2026-09-24 11:50:13 +08:00
jay77721
efd15d1851
fix(chunk): support image updates on the chunk PATCH endpoint ( #20107 )
2026-09-23 19:58:30 +08:00
jay77721
328fadf1f8
fix(parser): replace slog.Debug with common.Debug+zap in toc_header_footer ( #20071 )
2026-09-23 10:16:00 +08:00
jay77721
83635b5ad6
refactor(parser): drop unreachable headerColEnd fallbacks from XLSX table items ( #20053 )
2026-09-23 09:45:59 +08:00
jay77721
dae8016532
fix(parser): catch tight page numbers and site-promo headers/footers ( #20019 )
2026-09-23 09:45:34 +08:00
jay77721
ee5c314c14
fix(ingestion): derive component param whitelist from component schemas ( #20060 )
2026-09-23 09:43:10 +08:00
jay77721
a4c0fc8e76
fix(document): route image and presentation uploads to their dedicated parsers ( #20061 )
2026-09-23 09:41:49 +08:00
jay77721
338703565a
refactor(go): unify Go logging on the zap logger ( #20026 )
2026-09-22 19:40:08 +08:00
jay77721
82b45422e0
fix(ingestion, web): converge cancels fast and stop logging them as errors ( #19992 )
2026-09-22 14:02:34 +08:00
jay77721
83c47d0251
fix(parser): route UI "Plain Text" PDF method to the plain-text parser ( #19979 )
2026-09-21 17:32:36 +08:00
jay77721
12e6d888db
feat(ingestion): report sub-component parsing progress instead of a frozen 20% ( #19965 )
2026-09-21 17:26:07 +08:00