迁移指南
如果您目前正在使用 @Docs 上下文提供程序,请迁移到我们代码库和文档感知指南中概述的新方法。新方法提供
- 与 Continue 代理模式功能的更好集成
- 更智能的上下文选择
- 改进的性能和准确性
遗留文档
以下是 @Docs 上下文提供程序的原始文档,保留以供参考 @Docs 上下文提供程序允许您在 Continue 中高效地直接引用文档。如何启用 @Docs 上下文提供程序
要启用 @Docs 上下文提供程序,请将其添加到 config.json 文件中的上下文提供程序列表中。
name: My Config
version: 0.0.1
schema: v1
context:
- provider: docs
{
"contextProviders": [
{
"name": "docs"
}
]
}
@Docs 上下文提供程序的工作原理
@Docs 上下文提供程序的工作原理是
- 爬取指定的文档站点
- 为分块内容生成嵌入
- 将嵌入本地存储在您的机器上
- 嵌入聊天输入以包含相似的文档块作为上下文
如何索引您自己的文档
注意:文档配置现在应该直接在您的 config.yaml 文件中完成。以前的 docs 块功能已废弃。
如何通过 @Docs 上下文提供程序添加文档
要添加单个文档站点,我们建议使用 GUI 中的添加文档表单。可以通过以下方式访问:
- 从
@Docs 上下文提供程序 - 在聊天中键入 @Docs,按 Enter,然后搜索 添加文档
- 从
更多 页面(三个点图标)在 @docs 索引 部分的 @Docs 上下文提供程序中。
在添加文档表单中,输入站点的标题和起始 URL。
标题:文档站点的名称,用于 UI 中的识别。
起始 URL:索引过程应开始的 URL。
提交后将开始索引。进度可以在表单中查看,或者稍后在更多页面的@docs 索引部分中查看。 文档源可能会根据您的仓库中的包文件进行建议。目前这适用于 Python requirements.txt 文件和 Node.js (Javascript/Typescript) package.json 文件。
- 带有有效文档 URL(带
+ 图标)的包可以单击以立即开始索引
- 带有部分信息(带铅笔图标)的包可以单击以用可用信息填充表单
- 请注意,您可以将鼠标悬停在信息图标上以查看包建议的来源。
如何在配置文件中添加文档
对于批量添加或编辑文档站点,我们建议直接编辑您的全局配置文件。文档站点以数组形式存储在全局配置的 docs 中,如下所示:
name: My Config
version: 0.0.1
schema: v1
docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/
faviconUrl: https://docs.nestjs.com/favicon.ico
{
"docs": [
{
"title": "Nest.js",
"startUrl": "https://docs.nestjs.com/",
"faviconUrl": "https://docs.nestjs.com/favicon.ico"
}
]
}
请参阅配置参考以获取所有文档站点配置选项。 保存配置文件后,索引将重新同步。
如何使用您的自定义嵌入提供程序
如果您已设置嵌入提供程序,@docs 将使用您的嵌入提供程序。切换嵌入提供程序将触发对配置中所有文档站点的重新索引。
与@Codebase 上下文提供程序配置一样,您可以使用 nRetrieve、nFinal 和 useReranking 调整 @Docs 上下文提供程序的重新排序行为。
name: My Config
version: 0.0.1
schema: v1
context:
- provider: docs
params:
nRetrieve: 25 # The number of docs to retrieve from the embeddings query
nFinal: 5 # The number of docs chunks to return IF reranking
useReranking: true # use reranking if a reranker is configured (defaults to true)
{
"contextProviders": [
{
"name": "docs",
"params": {
"nRetrieve": 25, // The number of docs to retrieve from the embeddings query
"nFinal": 5, // The number of docs chunks to return IF reranking
"useReranking": true // use reranking if a reranker is configured (defaults to true)
}
}
]
}
如何为 GitHub 文档设置 GitHub 令牌
GitHub API 将公共请求的速率限制为每小时 60 次。如果您希望可靠地索引 GitHub 仓库,可以将 GitHub 令牌添加到您的配置文件中
name: My Config
version: 0.0.1
schema: v1
context:
- provider: docs
params:
githubToken: <GITHUB_TOKEN>
{
"contextProviders": [
{
"name": "docs",
"params": {
"githubToken": "github_..."
}
}
]
}
如何为私有文档启用本地爬取
默认情况下,Continue 使用专门的爬取服务爬取文档站点,该服务为大多数用户和文档站点提供最佳体验。 如果您的文档是私有的,您可以跳过默认爬虫,通过将 useLocalCrawling 设置为 true 来改为使用本地爬虫。name: My Config
version: 0.0.1
schema: v1
docs:
- title: My Private Docs
startUrl: http://10.2.1.2/docs
faviconUrl: http://10.2.1.2/docs/assets/favicon.ico,
useLocalCrawling: true
{
"docs": [
{
"title": "My Private Docs",
"startUrl": "http://10.2.1.2/docs",
"faviconUrl": "http://10.2.1.2/docs/assets/favicon.ico",
"useLocalCrawling": true
}
]
}
默认的本地爬虫是一个轻量级工具,无法渲染使用 JavaScript 动态生成的站点。如果您的站点需要渲染,您可以从用户设置页面启用实验性的“使用 Chromium 进行文档爬取”功能。这将下载并将 Chromium 安装到 ~/.continue/.utils,并将其用作本地爬虫。注意:Chromium 爬取支持正在废弃,并可能在未来版本中移除。
进一步说明
- 如果站点只能在本地访问,默认爬虫无论如何都会失败并回退到本地爬虫。如果 URL 本身是机密的,
useLocalCrawling 特别有用。
- 对于 GitHub 仓库,这没有效果,因为只会使用 GitHub 爬虫,如果仓库是私有的,无论如何都只能使用特权 GitHub 令牌访问。
如何管理您的文档索引
您可以从“更多”页面(三个点)的 @docs 索引部分查看索引状态并管理您的文档站点
- Continue 不会自动重新索引您的文档。使用
单击重新索引 触发特定来源的重新索引
- 当站点正在索引时,单击
取消索引 以取消该过程
- 失败的索引尝试将显示错误状态栏和图标
- 使用垃圾桶图标从配置中删除文档站点
您还可以从聊天页面底部可隐藏的进度条中查看当前正在索引的文档的整体状态
您还可以使用以下 IDE 命令强制重新索引所有文档:Continue: Docs Force Re-Index。不同设置的配置示例
如何在 VS Code 中设置 @Docs(最小配置)
以下配置示例在 VS Code 中开箱即用。它使用内置的嵌入提供程序,不进行重新排序。
name: My Config
version: 0.0.1
schema: v1
context:
- provider: docs
docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/
{
"contextProviders": [
{
"name": "docs",
}
],
"docs": [
{
"title": "Nest.js",
"startUrl": "https://docs.nestjs.com/",
},
]
}
如何在 JetBrains IDE 中设置 @Docs(最小配置)
这是 Jetbrains 的等效最小示例,需要设置一个嵌入提供程序。
name: My Config
version: 0.0.1
schema: v1
models:
- name: LMStudio embedder
provider: lmstudio
model: nomic-ai/nomic-embed-text-v1.5-GGUF
roles:
- embed
context:
- provider: docs
docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/
{
"contextProviders": [
{
"name": "docs",
}
],
"docs": [
{
"title": "Nest.js",
"startUrl": "https://docs.nestjs.com/",
},
],
"embeddingsProvider": {
"provider": "lmstudio",
"model": "nomic-ai/nomic-embed-text-v1.5-GGUF"
}
}
如何使用高级功能设置 @Docs(VS Code 或 JetBrains)
以下配置示例包括
- 公共和私人文档源的示例
- 自定义嵌入提供程序
- 可用的重新排序模型,并自定义重新排序参数
- GitHub 令牌,用于启用 GitHub 爬取
name: My Config
version: 0.0.1
schema: v1
models:
- name: LMStudio Nomic Text
provider: lmstudio
model: nomic-ai/nomic-embed-text-v1.5-GGUF
roles:
- embed
- name: Voyage Rerank-2
provider: voyage
apiKey: <VOYAGE_API_KEY>
model: rerank-2
roles:
- rerank
context:
- provider: docs
params:
githubToken: <GITHUB_TOKEN>
nRetrieve: 25
nFinal: 5
useReranking: true
docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/
- title: My Private Docs
startUrl: http://10.2.1.2/docs
faviconUrl: http://10.2.1.2/docs/assets/favicon.ico
useLocalCrawling: true
{
"contextProviders": [
{
"name": "docs",
"params": {
"githubToken": "github_...",
"nRetrieve": 25,
"nFinal": 5,
"useReranking": true
}
}
],
"docs": [
{
"title": "Nest.js",
"startUrl": "https://docs.nestjs.com/"
},
{
"title": "My Private Docs",
"startUrl": "http://10.2.1.2/docs",
"faviconUrl": "http://10.2.1.2/docs/assets/favicon.ico",
"maxDepth": 4,
"useLocalCrawling": true
}
],
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<YOUR_VOYAGE_API_KEY>"
}
},
"embeddingsProvider": {
"provider": "lmstudio",
"model": "nomic-ai/nomic-embed-text-v1.5-GGUF"
}
}
此设置还可能涉及通过用户设置页面(齿轮图标)启用 Chromium 作为本地文档的备份。