@Docs
The @Docs
上下文提供者 允许您在 Continue 中高效地直接引用文档。
启用 @Docs
上下文提供者
要启用 @Docs
上下文提供者,请将其添加到您的 config.json
文件中的上下文提供者列表中。
- YAML
- JSON
context:
- provider: docs
{
"contextProviders": [
{
"name": "docs"
}
]
}
工作原理
@Docs
上下文提供者的工作方式是
- 抓取指定的文档站点
- 为分块内容生成嵌入向量
- 将嵌入向量本地存储在您的机器上
- 嵌入聊天输入,以包含相似的文档块作为上下文
索引您自己的文档
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 的包(带
+
图标)可以点击,立即启动索引 - 信息不完整的包(带笔图标)可以点击,用可用信息填充表单
- 请注意,您可以将鼠标悬停在信息图标上,查看包建议的来源。
在配置文件中
对于批量添加或编辑文档站点,我们建议直接编辑您的全局配置文件。文档站点存储在全局配置中的 docs
数组中,如下所示
- YAML
- JSON
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
上下文提供者的重新排序行为。
- YAML
- JSON
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 API 将公共请求的速率限制为每小时 60 次。如果您想可靠地索引 GitHub 仓库,可以在配置文件中添加一个 github token
- YAML
- JSON
context:
- provider: docs
params:
githubToken: <GITHUB_TOKEN>
{
"contextProviders": [
{
"name": "docs",
"params": {
"githubToken": "github_..."
}
}
]
}
本地抓取
默认情况下,Continue 使用一种专门的抓取服务抓取文档站点,这种服务为大多数用户和文档站点提供了最佳体验。
如果您的文档是私有的,可以通过将 useLocalCrawling
设置为 true
来跳过默认抓取器,转而使用本地抓取器。
- YAML
- JSON
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
}
]
}
Chromium 抓取功能已弃用
进一步说明
- 如果站点只能在本地访问,默认抓取器无论如何都会失败并回退到本地抓取器。
useLocalCrawling
特别有用,如果 URL 本身是保密的。 - 对于 GitHub 仓库,这没有效果,因为只会使用 GitHub 抓取器,而且如果仓库是私有的,无论如何只能通过具有特权的 GitHub token 访问。
管理您的 docs 索引
您可以从 更多
页面(三个点)的 @docs indexes
部分查看索引状态并管理您的文档站点
- Continue 不会自动重新索引您的文档。使用
Click to re-index
来触发特定源的重新索引 - 当站点正在索引时,点击
Cancel indexing
来取消该过程 - 索引尝试失败将显示错误状态栏和图标
- 使用垃圾桶图标从配置中删除一个文档站点
您还可以从聊天页面底部的可隐藏进度条查看当前索引文档的总体状态
您还可以使用以下 IDE 命令强制重新索引所有文档:Continue: Docs Force Re-Index
。
示例
VS Code 最小设置
以下配置示例开箱即用于 VS Code。这使用了内置的嵌入向量提供者,没有重新排序。
- YAML
- JSON
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 最小设置
这是 Jetbrains 的等效最小示例,需要设置嵌入向量提供者。
- YAML
- JSON
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"
}
}
全功能设置 (VS Code 或 Jetbrains)
以下配置示例包括
- 公共和私有文档源的示例
- 一个自定义的嵌入向量提供者
- 一个可用的重新排序模型,并自定义了重新排序参数
- 一个 GitHub token 以启用 GitHub 抓取
- YAML
- JSON
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
{
"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"
}
}