跳到主内容

@Docs

The @Docs 上下文提供者 允许您在 Continue 中高效地直接引用文档。

启用 @Docs 上下文提供者

要启用 @Docs 上下文提供者,请将其添加到您的 config.json 文件中的上下文提供者列表中。

config.yaml
context:
- provider: docs

工作原理

@Docs 上下文提供者的工作方式是

  1. 抓取指定的文档站点
  2. 为分块内容生成嵌入向量
  3. 将嵌入向量本地存储在您的机器上
  4. 嵌入聊天输入,以包含相似的文档块作为上下文

索引您自己的文档

Hub docs

@Docs 在 Hub 的助手中使用 docs。访问 Hub 探索 docs创建您自己的

通过 @Docs 上下文提供者

要添加单个文档站点,我们建议使用 GUI 中的添加文档表单。可通过以下方式访问

  • @Docs 上下文提供者 - 在聊天中输入 @Docs,按 Enter 键,然后搜索 Add Docs
  • 更多 页面(三个点图标)中 @docs indexes 部分的 @Docs 上下者提供者。

添加文档表单中,输入站点的 标题起始 URL

  • 标题:文档站点的名称,用于在 UI 中标识。
  • 起始 URL:索引过程应开始的 URL。

提交后将开始索引。进度可在表单中查看,或稍后在 更多 页面的 @docs indexes 部分查看。

文档源可能会根据您仓库中的包文件进行建议。目前支持 Python 的 requirements.txt 文件和 Node.js(Javascript/Typescript)的 package.json 文件。

  • 具有有效文档 URL 的包(带 + 图标)可以点击,立即启动索引
  • 信息不完整的包(带笔图标)可以点击,用可用信息填充表单
  • 请注意,您可以将鼠标悬停在信息图标上,查看包建议的来源。

Add documentation form

在配置文件中

对于批量添加或编辑文档站点,我们建议直接编辑您的全局配置文件。文档站点存储在全局配置中的 docs 数组中,如下所示

config.yaml
docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/
faviconUrl: https://docs.nestjs.com/favicon.ico

有关所有文档站点配置选项,请参阅配置参考

保存配置文件后,索引将重新同步。

配置

使用您的嵌入向量提供者

如果您已设置嵌入向量提供者,@docs 将使用您的嵌入向量提供者。切换嵌入向量提供者将触发配置中所有文档站点的重新索引。

重新排序

@Codebase 上下文提供者配置一样,您可以使用 nRetrievenFinaluseReranking 调整 @Docs 上下文提供者的重新排序行为。

config.yaml
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)

GitHub

GitHub API 将公共请求的速率限制为每小时 60 次。如果您想可靠地索引 GitHub 仓库,可以在配置文件中添加一个 github token

config.yaml
context:
- provider: docs
params:
githubToken: <GITHUB_TOKEN>

本地抓取

默认情况下,Continue 使用一种专门的抓取服务抓取文档站点,这种服务为大多数用户和文档站点提供了最佳体验。

如果您的文档是私有的,可以通过将 useLocalCrawling 设置为 true 来跳过默认抓取器,转而使用本地抓取器。

config.yaml
docs:
- title: My Private Docs
startUrl: http://10.2.1.2/docs
faviconUrl: http://10.2.1.2/docs/assets/favicon.ico,
useLocalCrawling: true
info

Chromium 抓取功能已弃用

进一步说明

  • 如果站点只能在本地访问,默认抓取器无论如何都会失败并回退到本地抓取器。useLocalCrawling 特别有用,如果 URL 本身是保密的。
  • 对于 GitHub 仓库,这没有效果,因为只会使用 GitHub 抓取器,而且如果仓库是私有的,无论如何只能通过具有特权的 GitHub token 访问。

管理您的 docs 索引

您可以从 更多 页面(三个点)的 @docs indexes 部分查看索引状态并管理您的文档站点

  • Continue 不会自动重新索引您的文档。使用 Click to re-index 来触发特定源的重新索引
  • 当站点正在索引时,点击 Cancel indexing 来取消该过程
  • 索引尝试失败将显示错误状态栏和图标
  • 使用垃圾桶图标从配置中删除一个文档站点

More Page @docs indexes section

您还可以从聊天页面底部的可隐藏进度条查看当前索引文档的总体状态

Documentation indexing peek

您还可以使用以下 IDE 命令强制重新索引所有文档:Continue: Docs Force Re-Index

示例

VS Code 最小设置

以下配置示例开箱即用于 VS Code。这使用了内置的嵌入向量提供者,没有重新排序。

config.yaml
context:
- provider: docs

docs:
- title: Nest.js
startUrl: https://docs.nestjs.com/

Jetbrains 最小设置

这是 Jetbrains 的等效最小示例,需要设置嵌入向量提供者

config.yaml
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/

全功能设置 (VS Code 或 Jetbrains)

以下配置示例包括

  • 公共和私有文档源的示例
  • 一个自定义的嵌入向量提供者
  • 一个可用的重新排序模型,并自定义了重新排序参数
  • 一个 GitHub token 以启用 GitHub 抓取
config.yaml
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
maxDepth: 4
useLocalCrawling: true