切分模块的输入与输出
输入为知识库正文 body_text,以及本次请求指定的策略;输出为若干条切片,包含切片文本、序号及其在待切分文本中的位置。原始文件与 body_text 保持上传时的原样。切分模块不调用嵌入服务,也不写入 Qdrant;这两步在其返回之后由检索模块继续执行。
切片是检索的最小单位。切分过长,单个切片会混入多件互不相关的事;切分过短,则一个完整句子会被拆散。上传与重建索引使用同一组参数;未指定策略时按自动切分处理,种子材料启动时补齐索引同样采用自动切分。
| 策略 | 适合 | 规则 |
|---|---|---|
auto |
讲义、规章制度一类常规正文 | 最大 800 字,重叠 80 字;优先在空行、换行、句号处断开。请求中另行填写的长度与预处理参数不生效 |
custom |
希望按换行、空行或句号控制粒度 | 最大长度 100 至 2000 字,重叠比例 0% 至 50%;无断点处按最大长度强制截断。可预先移除 URL 与邮箱,或将连续空白折叠为单个空格 |
hierarchy |
含 Markdown 标题的课程资料 | 按 #、##、### 层级分章,标题保留在该章切片内;某章过长时,再按自动窗口规则切分 |
输入为知识库正文 body_text,以及本次请求指定的策略;输出为若干条切片,包含切片文本、序号及其在待切分文本中的位置。原始文件与 body_text 保持上传时的原样。切分模块不调用嵌入服务,也不写入 Qdrant;这两步在其返回之后由检索模块继续执行。
移除链接、折叠空白等预处理仅作用于待切分与待嵌入的文本。knowledge_entries.body_text 仍为上传原文。此时切片偏移量是相对于预处理后文本计算的,不能再视作原文件中的字符下标。
已入库材料不会自动重新切分。重建索引采用的是本次请求中的策略,而非上传时使用的策略。若已将连续空白折叠为空格,则换行符不复存在,再以换行作为分隔符将无法切分。