代码库索引
你可以为项目构建索引,来提升AI在代码库中的检索速度与准确度,使结果更贴合你的需求。
索引分类
本地索引与代码库索引的核心能力差异如下:
| 对比维度 | 本地索引 | 代码库索引 |
|---|---|---|
| 存储位置 | 索引文件存储在你的本地设备(当前项目根目录的“.codegraph”路径下) | 首次构建索引,完整索引包上传存储至云端;代码变更生成的增量索引,保存在本地设备(当前项目根目录的“.codeartsdoer/.codebase”路径下) |
| 搜索能力 | 支持关键词、符号、文件名检索 | 语义理解,全库代码逻辑分析 |
| 构建规则 |
| |
| 更新规则 | 文件发生变更自动更新 | 开启自动更新且代码库文件数量小于50000时自动更新,其余场景需手动操作 |
约束与限制
| 限制类别 | 具体限制 |
|---|---|
| 语言 | 支持Java、JavaScript、TypeScript、Go、ArkTS、C、C++、Python、Vue和Lua。 |
| 代码文件总数 |
|
| 功能限制 | 仅基础版和专业版支持创建云端团队级和企业级代码库索引。 |
本地索引
你可以通过本地索引构建图谱索引,解析本地项目代码文件,精准检索函数、类、文件之间的调用、依赖与继承关系。
- 参考快速启动操作,登录华为云码道代码智能体IDE。
- 单击右上角的设置图标
,进入全局设置页面。 - 选择“代码库索引”,系统会自动对你项目中的代码文件构建本地索引。
- 验证索引是否构建成功。 输入你需要查找的函数名、变量名、文件路径等精确内容。系统将调用GraphExplore工具,基于代码知识图谱进行检索与分析。
探索代码库中所有调用is_input_required的位置,包括跨文件调用关系
图1 本地索引检索效果
代码库索引
你可以借助代码库索引构建向量索引,基于代码语义,实现功能维度的智能检索与精准匹配。请确保你的账号已启用席位,若席位未启用,将导致代码库索引创建失败。
- 使用已授权企业成员或企业管理员角色的账号登录码道代码智能体控制台。
- 选择“智能体设置 > 代码库索引”,进入代码库索引页面。
- 单击“新建索引”,设置索引基本信息,完成后单击“下一步”。
表3 代码库索引参数说明 参数
说明
可见范围
定义代码库索引的可见范围。仅华为云码道代码智能体基础版和专业版,支持创建云端团队和企业代码库索引。
- 个人:仅成员本人可用。
- 团队:仅本团队成员可用,由企业管理员、团队管理员或团队成员创建。
- 企业:所有企业成员都可用,由企业管理员、团队管理员、团队成员或企业成员创建。
可用团队
“可见范围”设置为“团队”时,才会显示该配置项。
企业管理员可查看所有团队,但只能选择其中一个团队,团队管理员仅可查看并选择其所属团队。
代码源
选择您想要索引的代码仓库来源。
- Repo:代码托管(CodeArts Repo)中的仓库。
- Git:通用Git仓库。
- Github:GitHub平台仓库,支持公开仓库及经授权的私有仓库。
选择项目
“代码源”设置为“Repo”时,才会显示该配置项。
从已关联的代码源中,选择具体要索引的项目。
获取授权
选择一种方式来授权系统访问你的代码源。
- 通过服务授权:在下拉框中选择服务扩展点,该扩展点对应Repo、Github或Git仓库的连接信息。
若还未创建服务扩展点,单击“添加”,参考表4创建服务扩展点。
- 通过个人访问令牌:使用你个人账户生成的访问令牌进行认证。
默认分支
“代码源”设置为“Git”时,才会显示该配置项。
输入Git仓库的分支名称,分支名称不能超过200个字符。
表4 服务扩展点参数说明 参数
说明
连接名称
自定义连接仓库的名称。
命名规范:由中文、英文、数字、下划线和中划线组成,不能以下划线开头。
Git仓库Url
“代码源”设置为“Repo”或“Git”时,才显示该配置项。
Repo/Git仓库的HTTPS访问地址。
用户名
“代码源”设置为“Repo”或“Git”时,才显示该配置项。
Repo/Git仓库HTTPS协议的认证用户名。
密码或Access Token
“代码源”设置为“Git”时,才显示该配置项。
Git仓库HTTPS协议的认证密码或Access Token。
Access Token
“代码源”设置为“Repo”或“Github”时,才显示该配置项。
Repo/Github仓库HTTPS协议的Access Token。
- 选择你的代码库和语言,单击“确定”,完成代码库索引的创建。
当该代码库索引的状态由“解析中”变为“解析完成”时,说明代码解析并构建索引成功。
- 返回到客户端,打开目标仓库项目,系统会自动从云端同步代码库索引。
当进度显示为100%,说明代码库索引已同步完成。
图2 代码库索引同步完成
- 验证索引是否构建成功。
直接用自然语言描述你的诉求。系统会调用CodeSemanticSearch工具,基于自然语言语义进行深度代码检索,突破关键词限制。
请求状态处理是如何实现的
图3 代码库索引检索结果
管理代码库索引
代码库索引除了创建外,还支持重启、删除等操作,具体参见表5。
| 操作 | 操作指导 |
|---|---|
| 暂停索引 | 在代码库索引构建过程中,如果您想停止构建,可以单击“暂停”。 |
| 重启索引 | 如果需要恢复已暂停的索引构建,可单击“重启”继续执行。 |
| 同步更新 | 执行增量索引更新,即系统会对比当前状态与上一次增量更新的结果,仅对新增或修改过的代码文件进行索引,跳过未变更文件以节省时间。 |
| 重新索引 | 如果需要从头开始重建索引,可单击“重新索引”触发完整索引流程。 |
| 删除索引 | 如果需要清除当前所有索引数据,可单击“删除索引”进行清理。 除了在客户端删除代码库索引,你还可以到控制台执行删除操作,详细介绍请参见删除云端代码库索引。 |
| 忽略当前目录中的文件 | 如果您期望忽略指定代码文件的索引,可以单击“配置”,在“.codebaseignore”中指定当前目录下希望忽略的代码文件。 |