通义灵码的代码库索引(Codebase Indexing)是其实现跨文件上下文感知的核心机制。它通过自动扫描并分析你的本地项目文件,构建一个向量化的知识库,让AI助手能够"读懂"整个项目的结构,从而提供更精准的代码补全和问答服务。
核心机制
- 自动向量化与增量更新
- 当你打开一个项目时,通义灵码会自动对本地工程进行向量化处理,创建代码库索引。
- 索引过程是增量式的,这意味着新建或修改的文件会被实时处理,无需手动干预,确保AI始终基于最新的代码状态进行推理。
- 编写的文件保存后就会触发增量更新
- 抑制代码幻觉
- 通过索引,通义灵码能自动找到当前上下文引用的类型和方法定义。
- 例如,在编写Java代码时,它能感知到项目中其他文件里的类型具有哪些成员,方法具有哪些参数,从而避免生成不存在的字段或方法(即"幻觉")。
- 工程级问答与检索
- 在智能问答中,你可以使用
@workspace指令,通义灵码会利用代码库索引快速检索整个工程,结合当前仓库进行工程理解、代码查询,甚至生成跨文件的修改建议。
- 在智能问答中,你可以使用
使用
限制
- 文件限制
- 代码库最多索引 6000个文件。
- 对于大型项目,建议通过忽略文件配置来优化索引范围
- 编辑器限制
- 该功能目前主要支持 Lingma IDE 和 JetBrains IDE 插件(如 IntelliJ IDEA)
- 不适用于 Visual Studio Code
配置文件
- 通义灵码默认会忽略
.gitignore目录下的文件 .tongyiignore中列举的文件- 忽略的规则与
.gitignore规则相同,如可以配置dist/目录或*.log文件,提高开发索引构建效率。
配置示例
| 示例 | 描述 |
|---|---|
| config.json | 忽略指定的config.json文件 |
| dist/ | 忽略dist目录及目录下的文件 |
| *.log | 忽略所有.log扩展名的文件 |
| **/logs | 忽略任意级别嵌套的logs目录 |
检查
检查某个特定的文件是否被忽略
bash
git check-ignore -v [file]
这是git的一条命令,具体可以查询git的命令使用规则
查看
IDE
- 打开通义灵码的对话框
- 点击右上角 我的 图标,点击
个人设置
- 往下滑动,就可以看到代码库索引

- 点击
代码库索引构建已完成,
- 我们可以手动更新代码库索引,也可以选择自动更新代码库索引
- 在这里也可以配置相应的忽略文件。