@代码库
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
上下文提供程序的选项相同
- YAML
- JSON
context:
- provider: codebase
params:
nRetrieve: 25
nFinal: 5
useReranking: true
{
"contextProviders": [
{
"name": "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 系列中的模型在代码库检索期间会自动使用仓库映射,这使得模型能够理解您的代码库结构并使用它来回答问题。目前,仓库映射仅包含代码库中的文件路径。