From 36caf28e6baef9d9fe35b0013d18695221f4f4de Mon Sep 17 00:00:00 2001
From: wb200 <45331952+wb200@users.noreply.github.com>
Date: Sat, 30 Mar 2024 01:35:54 +0800
Subject: [PATCH] Update llama_parse_json_element.py to fix error exception
 caused by certain PDF (#12402)

* Update llama_parse_json_element.py

Please refer to https://github.com/run-llama/llama_index/issues/12314 for a detailed explanation of the bug fix.

* cr

---------

Co-authored-by: Haotian Zhang <socool.king@gmail.com>
---
 .../node_parser/relational/llama_parse_json_element.py     | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/llama-index-core/llama_index/core/node_parser/relational/llama_parse_json_element.py b/llama-index-core/llama_index/core/node_parser/relational/llama_parse_json_element.py
index c92c7534eb..013db27743 100644
--- a/llama-index-core/llama_index/core/node_parser/relational/llama_parse_json_element.py
+++ b/llama-index-core/llama_index/core/node_parser/relational/llama_parse_json_element.py
@@ -260,7 +260,12 @@ class LlamaParseJsonNodeParser(BaseElementNodeParser):
                 and element.type == "text"
                 and merged_elements[-1].type == "text"
             ):
-                merged_elements[-1].element += "\n" + element.element
+                if isinstance(element.element, list):
+                    merged_elements[-1].element += "\n" + " ".join(
+                        str(e) for e in element.element
+                    )
+                else:
+                    merged_elements[-1].element += "\n" + element.element
             else:
                 merged_elements.append(element)
         elements = merged_elements
-- 
GitLab