SuperAPI AI 工具集

chunking

通用与其它

查看项目

更新于 10-16 03:35

技能介绍

用途:把文档文本切分成块,供向量库或 LLM 上下文窗口使用。Xberg 提供两种方式:抽取时内联分块(结果写入文档的 chunks 字段),或用独立的 chunk 命令处理已有文本。默认按字符计量,提供 tokenizer 模型时可按 token 计量。

主要能力:可用 --chunk 在抽取时启用分块;独立 chunk 命令支持从 --text 或标准输入读取。输出默认 JSON,含 chunks(字符串数组)、chunk_count、解析后的配置(max_characters、overlap、chunker_type)与 input_size_bytes;--format text 输出带 --- chunk N --- 分隔的可读文本。chunker_type 可选 text(默认,按字符窗口加重叠)、markdown(按标题、块等结构切分)、yaml(面向结构化配置/数据文档)、semantic(由 --topic-threshold 控制主题边界,0.0–1.0,默认 0.75)。

用法要点:内联示例 xberg extract report.pdf --chunk --format json;显式设置如 --chunk-size 1500 --chunk-overlap 300。独立命令如 xberg chunk --text "..." --chunk-size 800 --chunk-overlap 100,或 xberg extract notes.md | xberg chunk --chunk-size 500 --format json。按 token 计量需传 --chunking-tokenizer(HuggingFace tokenizer id,如 Xenova/gpt-4o),在 extract 上会隐式启用分块,需 chunking-tokenizers 特性(默认 CLI 构建已包含)。配置文件用 [chunking] 段,字段为 max_characters、overlap、chunker_type;CLI 的 --chunk-size 对应 max_characters,--chunk-overlap 对应 overlap。Python 可通过 ChunkingConfig(max_characters=1000, overlap=200) 配置,并从 result.results[0].chunks 读取。

限制与注意:overlap 必须小于 chunk size,CLI 会拒绝 --chunk-overlap >= --chunk-size;仅修改 overlap 且超过 size 时会被截为 chunk_size / 4。JSON 输出的 chunker_type 因 Rust Debug 格式首字母大写,而输入参数为小写。无 tokenizer 特性时使用 --chunking-tokenizer 会报错。独立 chunk 命令遇空文本会失败,需提供 --text 或非空标准输入。参数建议(如 RAG 500–1000 字符或 256–512 token、10–20% 重叠)为资料给出的参考,非强制。