From 619553021e4972a4292175069a2be2f4f6650714 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 14 Sep 2025 12:23:48 +0800 Subject: [PATCH] Fix delimiter processing and optimize case-sensitive handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Fix completion_delimiter reference bug • Add case check before lowercase conversion • Improve delimiter corruption handling • Optimize redundant processing logic --- lightrag/operate.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lightrag/operate.py b/lightrag/operate.py index 6a8d446a..b87ac37f 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -879,7 +879,7 @@ async def _process_extraction_result( # Split LLL output result to records by "\n" records = split_string_by_multi_markers( result, - ["\n", completion_delimiter], + ["\n", completion_delimiter, completion_delimiter.lower()], ) # Fix LLM output format error which use tuple_delimiter to seperate record instead of "\n" @@ -926,9 +926,12 @@ async def _process_extraction_result( # Fix various forms of tuple_delimiter corruption from the LLM output using the dedicated function delimiter_core = tuple_delimiter[2:-2] # Extract "#" from "<|#|>" record = fix_tuple_delimiter_corruption(record, delimiter_core, tuple_delimiter) - # change delimiter_core to lower case, and fix again - delimiter_core = delimiter_core.lower() - record = fix_tuple_delimiter_corruption(record, delimiter_core, tuple_delimiter) + if delimiter_core != delimiter_core.lower(): + # change delimiter_core to lower case, and fix again + delimiter_core = delimiter_core.lower() + record = fix_tuple_delimiter_corruption( + record, delimiter_core, tuple_delimiter + ) record_attributes = split_string_by_multi_markers(record, [tuple_delimiter])