Skip to content

代码库索引

代码库索引是 Dish AI Commit Gen 的一项核心实验性功能。它通过扫描、解析您的项目代码,并利用 Embedding 技术将其转换为向量存储起来,从而为 AI 提供强大的全项目上下文理解能力。

工作原理

当您启用此功能后,插件会在后台执行以下操作:

  1. 文件扫描: 扫描您的整个工作区,识别出所有可供索引的文件。
  2. 代码解析: 使用 tree-sitter 将代码文件分解为更小的、有意义的语义块(如函数、类、接口等)。
  3. 向量生成 (Embedding): 将这些语义块通过您选择的 Embedding 服务(如 OpenAI 或 Ollama)转换为向量。
  4. 数据存储: 将生成的向量和相关的元数据(如文件名、代码片段)存储在 Qdrant 向量数据库中。

在您生成提交信息时,插件会利用这个索引来查找与您当前代码变更最相关的上下文信息,并将其提供给 AI,从而生成更精准、更贴切的提交消息。

如何配置和使用

配置代码库索引功能完全通过插件的设置页面完成。

1. 打开设置页面

  • Ctrl+Shift+PCmd+Shift+P 打开命令面板。
  • 输入 Dish AI Commit: 打开设置页面 并选择。

2. 启用并配置索引

在设置页面的“实验性功能” -> “代码库索引”部分,您可以找到所有相关配置:

  • 启用代码库索引 (enabled): 勾选此项以启用功能。
  • 嵌入服务提供商 (embeddingProvider): 选择一个服务,如 OpenAIOllama
  • 嵌入模型 (embeddingModel): 根据所选提供商,选择一个合适的模型。
  • Qdrant URL (qdrantUrl): 填入您的 Qdrant 实例地址。您可以本地运行 Qdrant,或使用云服务。对于本地实例,通常是 http://localhost:6333
  • Qdrant API 密钥 (qdrantApiKey): 如果您的 Qdrant 实例需要认证,请填入 API 密钥。

3. 测试连接

在填写完 Qdrant 和 Ollama (如果使用) 的 URL 后,可以点击旁边的“测试连接”按钮,确保插件可以成功访问这些服务。

4. 开始索引

配置完成后,点击“开始索引”按钮。您将在设置页面看到详细的索引进度,包括已处理的文件、已索引的块数和总块数。状态栏也会显示索引的实时状态。

5. 清除索引

如果您想重新索引或停用该功能,可以随时点击“清除索引”按钮来删除所有已存储的向量数据。

用户界面反馈

在整个过程中,插件会提供丰富的 UI 反馈:

  • 进度更新: 实时显示索引进度和当前正在处理的文件。
  • 错误提示: 如果在索引或连接测试过程中出现任何问题(如网络错误、API 密钥无效),设置页面会显示详细的错误信息,帮助您快速定位问题。
  • 索引状态: 您可以随时在设置页面看到当前工作区是否已建立索引,以及索引的向量总数。

使用 MIT 许可发布