From cafe758d4c5ffc95796f87c6d3cd933e95307157 Mon Sep 17 00:00:00 2001 From: Michele Dolfi Date: Mon, 10 Feb 2025 15:51:37 +0100 Subject: [PATCH] update docling and test results Signed-off-by: Michele Dolfi --- .../language/doc_chunk/requirements.txt | 4 ++-- .../test-data/expected/metadata.json | 21 +++++++++--------- .../test-data/expected/test1.parquet | Bin 14363 -> 16705 bytes 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/transforms/language/doc_chunk/requirements.txt b/transforms/language/doc_chunk/requirements.txt index c24f0113b..b458ca98c 100644 --- a/transforms/language/doc_chunk/requirements.txt +++ b/transforms/language/doc_chunk/requirements.txt @@ -1,3 +1,3 @@ -docling-core==2.3.0 -pydantic>=2.0.0,<2.10.0 +docling-core==2.18.0 +pydantic>=2.0.0 llama-index-core>=0.11.22,<0.12.0 diff --git a/transforms/language/doc_chunk/test-data/expected/metadata.json b/transforms/language/doc_chunk/test-data/expected/metadata.json index e83a0375b..69a62dd7b 100644 --- a/transforms/language/doc_chunk/test-data/expected/metadata.json +++ b/transforms/language/doc_chunk/test-data/expected/metadata.json @@ -5,8 +5,8 @@ "job name": "doc_chunk", "job type": "pure python", "job id": "job_id", - "start_time": "2024-10-30 18:38:40", - "end_time": "2024-10-30 18:38:40", + "start_time": "2025-02-10 15:20:06", + "end_time": "2025-02-10 15:20:07", "status": "success" }, "code": { @@ -25,6 +25,7 @@ "output_bbox_column_name": "bbox", "chunk_size_tokens": 128, "chunk_overlap_tokens": 30, + "dl_min_chunk_len": null, "checkpointing": false, "max_files": -1, "random_samples": -1, @@ -34,9 +35,9 @@ "num_processors": 0 }, "execution_stats": { - "cpus": 19.5, + "cpus": 25.8, "gpus": 0, - "memory": 27.48, + "memory": 24.41, "object_store": 0, "execution time, min": 0.001 }, @@ -44,19 +45,19 @@ "source_files": 1, "source_size": 12073, "result_files": 1, - "result_size": 14363, - "processing_time": 0.043, + "result_size": 16705, + "processing_time": 0.044, "nfiles": 1, - "nrows": 39, + "nrows": 29, "source_doc_count": 1, - "result_doc_count": 39 + "result_doc_count": 29 }, "source": { - "name": "/Users/dol/codes/data-prep-kit/transforms/language/doc_chunk/python/test-data/input", + "name": "/Users/dol/codes/data-prep-kit/transforms/language/doc_chunk/test-data/input", "type": "path" }, "target": { - "name": "/Users/dol/codes/data-prep-kit/transforms/language/doc_chunk/python/output", + "name": "/Users/dol/codes/data-prep-kit/transforms/language/doc_chunk/output", "type": "path" } } \ No newline at end of file diff --git a/transforms/language/doc_chunk/test-data/expected/test1.parquet b/transforms/language/doc_chunk/test-data/expected/test1.parquet index 46714dde7b3d7623a2840b84998608fc57a669d7..72d6fd06d9b99df9836cf9c3bfaecce7762680a1 100644 GIT binary patch literal 16705 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 delta 6944 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°0}+YM8A| z2IbVldY89@-jNGo#4UsE-%yZQVjJyjJoUW3>GUSsSnr%W@Ugr8OiS;SC~nYzl}OWi zrR-GrhNN$AyDgKme7N_V}bXN?VMab(^kcPuif= zySlq8f_}|0a+sORtDiQx0Du7|k=b}vuZBBL$<8c0Zbe*d7ldEFT5c*^`~HMx-2U z62rvsyrSvja=hx(ZMxUCv4|s@<`|a;eG}!jnJ+z1F|fV_txM0jvYGNyGRw~SUNz8E zQ595UzTc<2+xV!>NoP;%ynM;Ltz8=?0bWC9raa^}O)OOM%2~F|?-=i{f8C2B5W+tyhPo9Tc45qRXF@q6qWDe(EWzcb)R?blp7k@$`aLsCgg57hkUP}; zBhoAkE$35Gosm`H{07D2-PtD@!Zs z&}%;Qoas;bK6qK&~5wcb37n=i9q_(`w(tWxk#ToO=&G&Yk5v2Sz zhQ@tZN>*wz{H~5vN<#S+y6eT|?y5iL1(xv}1gu3|1T)w2u`iqkSLhU7m?!NA8qNMJIJ$F2-CrSs(twnn@%ELq!CKBt2QxPF?5 zzUUqj7F>bKdD|IF%a>|9HLog-X}^9FHzDIFpKx01T;aiQ_3>e^#JOdArVW0{r zU=08V0ek@vpi03`Q&Tqi--d({%D(m=8q)u(ZPyh6|MqQaCvV3)k(ZlnJ|Bi1FtyFPl zqE#xcLc|%eDtw{@lxP)6xDoM~!U}IM$@3piDkO;UJxO;Wu29`Z{C95_|KBeb%%K0K zBQv7^H|_Q^=zr8Fm<5slbI$R$!uiy&k^>;j2nmLzV_SU`o{@pO=m7v@Ra5c*0