用途:把源代码按语法边界切成适合塞进 LLM 上下文窗口的块,避免按固定字节或行数切分导致函数被截断、上下文丢失。
主要能力:命令 ts-pack process <file> --chunk-size <bytes> 会按语法单元(完整函数、类、代码块)切分,每块为语义连贯的整体,输出在 process JSON 的 chunks 数组中。--chunk-size 是字节上限,切分器把完整语法单元打包到该上限;单个超大的语法结构会各自成块而不被切开。每个 chunk 含源码文本与跨度信息(行/字节偏移),可引用或回定位到原文件。分块可与其他 process 功能组合,例如配合 --structure 附加结构元数据。
使用方式:估算大小可参考代码约 bytes ÷ 4 ≈ tokens,如 --chunk-size 4000 约为 1k tokens。切块更大保留更多局部上下文但每请求块数更少;要为提示词、周边消息和回复留出余量,不要按整个上下文窗口设定块大小。组合结构信息示例:ts-pack process src/service.py --structure --chunk-size 3000 | jq '{chunks: (.chunks | length), functions: (.structure | length)}'。逐块送入 LLM 示例:ts-pack process big_module.py --chunk-size 2500 | jq -c '.chunks[]'。SDK 通过 ProcessConfig 的 chunk_max_size 字段(字节)设置,等价于 CLI 的 --chunk-size:from tree_sitter_language_pack import process, ProcessConfig;config = ProcessConfig("python", chunk_max_size=2500);result = process(source_code, config);再遍历 result.chunks 取 chunk.content。
适用场景:文件较大、批量文件建 RAG 索引,或需要稳定、语法连贯的单元用于引用时。
限制:若单个小文件已能装入上下文窗口,则无需分块,整文件传入即可。资料未提供支持的语言范围、性能与收费信息。