在Cursor公司发布的安全声明中,无意中透露了其代码库索引技术的一些细节。可以在https://www.cursor.com/security#certifications 看到。
虽然描述较为简略,但仍然可以看到Cursor实现代码检索增强生成(RAG)的基本方法,值得我们学习借鉴:
他们采用Turbopuffer技术,将代码分割成块并生成向量嵌入,这是代码RAG的基础。
Cursor每隔10分钟就会利用Merkle树结构检测代码是否发生变化,如有更新则刷新相应的嵌入。
为了优化性能和降低成本,当代码发生改动时,系统只会为新增的代码块创建索引,而保留旧有代码块的缓存。
这种方法既保证了索引的及时更新,又避免了不必要的重复计算。
流程图:@LinearUncle