跳到主要内容

@代码库

Continue 会对您的代码库进行索引,以便稍后可以自动从您的工作空间中提取最相关的上下文。这是通过结合使用基于嵌入的检索和关键词搜索来完成的。默认情况下,所有嵌入都在本地使用 transformers.js 计算,并存储在本地 ~/.continue/index 中。

transformers.js 无法在 JetBrains 中使用

目前,transformers.js 无法在 JetBrains IDE 中使用。但是,您可以从 此处的列表 中选择不同的嵌入模型。

目前,代码库检索功能作为“代码库”和“文件夹”上下文提供程序可用。您可以通过在输入框中键入 @Codebase@Folder,然后提出问题来使用它们。输入框中的内容将与代码库(或文件夹)其余部分的嵌入进行比较,以确定相关文件。

以下是一些常见的使用场景,它可以在这些场景中发挥作用

  • 询问有关代码库的高层次问题
    • “如何向服务器添加新的端点?”
    • “我们在哪里使用了 VS Code 的 CodeLens 功能吗?”
    • “是否已经有代码可以用来将 HTML 转换为 Markdown?”
  • 使用现有示例作为参考生成代码
    • “使用现有组件的模式生成一个新的带有日期选择器的 React 组件”
    • “使用 Python 的 argparse 为本项目编写一个 CLI 应用程序草稿”
    • “实现 bar 类中的 foo 方法,遵循 baz 的其他子类中的模式。”
  • 使用 @Folder 询问特定文件夹的问题,增加获得相关结果的可能性
    • “这个文件夹的主要用途是什么?”
    • “我们如何使用 VS Code 的 CodeLens API?”
    • 或者以上任何示例,但使用 @Folder 代替 @Codebase

以下是它不适用的使用场景

  • 当您需要 LLM 查看代码库中字面意义上的每个文件时
    • “查找所有调用 foo 函数的地方”
    • “检查我们的代码库并查找任何拼写错误”
  • 重构
    • “向 bar 函数添加一个新的参数并更新用法”

配置

有几个选项可以让您配置 @codebase 上下文提供程序的行为,这些选项与 @folder 上下文提供程序的选项相同

config.yaml
context:
- provider: codebase
params:
nRetrieve: 25
nFinal: 5
useReranking: true

nRetrieve

从向量数据库中初步检索的结果数量(默认值:25)

nFinal

重新排序后使用的最终结果数量(默认值:5)

useReranking

是否使用重新排序,这将允许初步选择 nRetrieve 个结果,然后将使用 LLM 选择前 nFinal 个结果(默认值:true)

索引时忽略文件

Continue 遵守 .gitignore 文件以确定哪些文件不应被索引。如果您想排除其他文件,可以将其添加到 .continueignore 文件中,该文件的规则与 .gitignore 完全相同。

Continue 还支持一个全局 .continueignore 文件,该文件将在所有工作空间中生效,可以在 ~/.continue/.continueignore 创建。

如果您想确切地查看 Continue 索引了哪些文件,元数据存储在 ~/.continue/index/index.sqlite 中。您可以使用 DB Browser for SQLite 等工具查看此文件中的 tag_catalog 表。

如果您需要强制刷新索引,请使用 cmd/ctrl + shift + p + “Reload Window”重新加载 VS Code 窗口。

仓库映射

Claude 3、Llama 3.1/3.2、Gemini 1.5 和 GPT-4o 系列中的模型在代码库检索期间会自动使用仓库映射,这使得模型能够理解您的代码库结构并使用它来回答问题。目前,仓库映射仅包含代码库中的文件路径。