SuperAPI AI 工具集

xberg-chunking

智能体与模型

查看项目

更新于 10-16 09:49

技能介绍

用途:将文档文本切分成适合 LLM 上下文窗口或向量库入库的块。可在抽取时内联切分(结果写入文档的 chunks 字段),也可用 chunk 命令对已有文本独立切分。默认按字符计大小,提供 tokenizer 模型时按 token 计。

主要能力:--chunk 开启抽取内联分块,默认 1000 字符、200 字符重叠:xberg extract report.pdf --chunk --format json。可用 --chunk-size 与 --chunk-overlap 显式指定。独立命令:xberg chunk --text "..." --chunk-size 800 --chunk-overlap 100,或从 stdin 管道输入。输出默认 JSON,含 chunks、chunk_count、解析后的配置和 input_size_bytes;--format text 输出可读分块,带 --- chunk N --- 分隔。

切分策略由 --chunker-type 选择:text(默认,字符窗口加重叠)、markdown(按标题和块等结构切分)、yaml(结构化配置/数据)、semantic(按主题边界,配合 --topic-threshold,取值 0.0–1.0,默认 0.75,阈值越低块越多越小)。

按 token 计大小:传入 --chunking-tokenizer 与 HuggingFace tokenizer id,如 Xenova/gpt-4o;在 extract 上会隐式开启分块,此时 --chunk-size 按 token 解释。需要 chunking-tokenizers 特性,默认 CLI 构建已包含。

配置与编程:配置文件在 [chunking] 下使用 snake_case,如 max_characters、overlap、chunker_type,用 --config 指定。CLI 的 --chunk-size 对应 max_characters,--chunk-overlap 对应 overlap。Python 通过 ExtractionConfig 的 ChunkingConfig(max_characters=..., overlap=...) 开启并读取 result.results[0].chunks。注意 JSON 输出中 chunker_type 首字母大写(Text、Markdown、Yaml、Semantic),而输入标志为小写。

参数建议(资料给出):RAG/向量库用 500–1000 字符或 256–512 token,重叠 10–20%,文档可用 markdown 分块保持小节完整;LLM 摘要用较大块 1500–4000 字符、小重叠,按 token 控制不超窗口;主题分段用 semantic 调阈值。

限制与常见问题:重叠必须小于块大小,extract 会拒绝 --chunk-overlap >= --chunk-size;仅改重叠且大于已有配置的块大小时会被截断为 chunk_size/4。缺少 tokenizer 特性时 --chunking-tokenizer 报错。独立 chunk 命令遇到空文本会失败,需提供 --text 或非空 stdin。更多 [chunking] 配置与全部标志见其 references 文档。