AST感知分块

AST感知分块

AST感知分块

AST感知分块(AST-aware Chunking)是一种代码索引技术,在函数、类、模块等语法边界上切分代码,而非使用固定长度切分。这是SocratiCode索引管道的核心优势,确保每个chunk是完整的语义单元。

原理

  • 使用ast-grep对JS/TS、Python、Java、Go、Rust等18+语言进行AST解析
  • 在函数定义、类声明、模块边界等语法结构边界处切分
  • 对于不支持AST的语言,退回到行式分块策略
  • 对TypeScript项目,额外支持tsconfig.json路径别名解析

优势

  • 避免固定长度分块将函数或类切分成无关片段的问题
  • 每个chunk保持完整的结构语义,提升嵌入向量质量
  • 直接影响后续检索的准确性和相关性
  • 使AI能够理解代码的完整语义单元,而非碎片化片段
分享到