From 792fb69d6d25c85e38baf788142c8adce3939cf7 Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:23:05 +0800 Subject: [PATCH] perf: allow zero chunk overlap in recursive chunker (#4258) * Allow zero chunk overlap * Validate recursive chunking bounds --- astrbot/core/knowledge_base/chunking/recursive.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/astrbot/core/knowledge_base/chunking/recursive.py b/astrbot/core/knowledge_base/chunking/recursive.py index 3f4aabb57..3882b0871 100644 --- a/astrbot/core/knowledge_base/chunking/recursive.py +++ b/astrbot/core/knowledge_base/chunking/recursive.py @@ -149,8 +149,16 @@ class RecursiveCharacterChunker(BaseChunker): 分割后的文本块列表 """ - chunk_size = chunk_size or self.chunk_size - overlap = overlap or self.chunk_overlap + if chunk_size is None: + chunk_size = self.chunk_size + if overlap is None: + overlap = self.chunk_overlap + if chunk_size <= 0: + raise ValueError("chunk_size must be greater than 0") + if overlap < 0: + raise ValueError("chunk_overlap must be non-negative") + if overlap >= chunk_size: + raise ValueError("chunk_overlap must be less than chunk_size") result = [] for i in range(0, len(text), chunk_size - overlap): end = min(i + chunk_size, len(text))