config.json 参考
以下是可以在config.json中设置的每个属性的详细信息。配置模式代码可以在extensions/vscode/config_schema.json中找到。
除非明确标记为必需,否则所有级别的所有属性都是可选的
models
您的聊天模型在此定义,这些模型用于聊天、编辑和操作。 每个模型都有针对其提供者和功能定制的特定配置选项,这些选项在编辑json时可以作为建议查看。
属性:
title(必填): 分配给模型的标题,显示在下拉菜单等中。provider(必填): 模型的提供者,决定了类型和交互方式。选项包括openai,ollama等,请参考 intelliJ 的建议。model(必填): 模型的名称,用于提示模板的自动检测。使用AUTODETECT特殊名称以获取所有可用的模型。apiKey: 提供者如OpenAI、Anthropic和Cohere所需的API密钥。apiBase: LLM API 的基础 URL。contextLength: 模型的最大上下文长度,通常以标记为单位(默认值:2048)。maxStopWords: 允许的最大停用词数量,以避免因列表过长导致的API错误。template: 用于格式化消息的聊天模板。大多数模型会自动检测,但可以手动覆盖。请参阅intelliJ的建议。promptTemplates: 提示模板名称(例如,edit)到模板字符串的映射。自定义指南。completionOptions: 模型特定的完成选项,与顶层的completionOptions格式相同,它们会覆盖顶层的选项。systemMessage: 一个系统消息,将在LLM的响应之前显示。requestOptions: 模型特定的HTTP请求选项,格式与顶层的requestOptions相同,它们会覆盖顶层的选项。apiType: 指定API的类型(openai或azure)。apiVersion: Azure API 版本(例如,2023-07-01-preview)。engine: 用于Azure OpenAI请求的引擎。capabilities: 覆盖自动检测到的功能:uploadImage: 布尔值,指示模型是否支持图片上传。
(仅限AWS)
profile: 用于授权的AWS安全配置文件。modelArn: 导入模型的AWS ARN(例如,对于bedrockimport提供者)。region: 模型托管的区域(例如,us-east-1,eu-central-1)。
示例:
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"model": "gpt-4o",
"contextLength": 128000,
"title": "GPT-4o",
"provider": "openai",
"apiKey": "YOUR_API_KEY"
}
]
}
tabAutocompleteModel
指定用于标签自动完成的模型或模型,默认为Ollama实例。此属性使用与models相同的格式。可以是模型数组或单个模型的对象。
示例
{
"tabAutocompleteModel": {
"title": "My Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
}
}
tabAutocompleteOptions
指定选项卡自动完成行为的选项。
属性:
disable: 如果为true,则禁用标签自动完成(默认值:false)。useFileSuffix: 如果为true,则在提示中包含文件后缀。maxPromptTokens: 提示的最大令牌数。debounceDelay: 在触发自动完成之前的延迟(以毫秒为单位)。maxSuffixPercentage: 后缀提示的最大百分比。prefixPercentage: 输入的前缀百分比。template: 自动补全的模板字符串,使用Mustache模板。你可以使用{{{ prefix }}}、{{{ suffix }}}、{{{ filename }}}、{{{ reponame }}}和{{{ language }}}变量。multilineCompletions: 控制多行补全 ("always","never", 或"auto").useCache: 如果为true,则缓存补全结果。onlyMyCode: 如果为true,则仅包含仓库内的代码。disableInFiles: 用于禁用自动补全的文件全局模式数组。
示例
{
"tabAutocompleteOptions": {
"debounceDelay": 500,
"maxPromptTokens": 1500,
"disableInFiles": ["*.md"]
}
}
embeddingsProvider
嵌入模型设置 - 用于@Codebase和@docs的模型。
属性:
provider(必填): 指定嵌入提供者,选项包括transformers.js,ollama,openai,cohere,free-trial,gemini等model: 用于嵌入的模型名称。apiKey: 提供商的API密钥。apiBase: API请求的基础URL。requestOptions: 特定于嵌入提供程序的额外HTTP请求设置。maxChunkSize: 每个文档块的最大令牌数。最小为128个令牌。maxBatchSize: 每个请求的最大块数。最小为1块。
(仅限AWS)
region: 指定托管模型的区域。profile: AWS 安全配置文件。
示例:
{
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-ada-002",
"apiKey": "<API_KEY>",
"maxChunkSize": 256,
"maxBatchSize": 5
}
}
completionOptions
控制文本生成和完成设置行为的参数。顶层的completionOptions适用于所有模型,除非在模型级别被覆盖。
属性:
stream: 是否流式传输LLM响应。目前仅anthropic和ollama提供者支持;其他提供者将始终流式传输(默认值:true)。temperature: 控制生成的随机性。值越高,输出结果越多样化。topP: 用于核心采样的累积概率。较低的值将响应限制在顶部概率质量内的标记。topK: 每一步考虑的最大令牌数。将生成的文本限制在此概率内的令牌。presencePenalty: 阻止模型生成已经在输出中出现过的标记。frequencePenalty: 根据文本中标记的频率进行惩罚,减少重复。mirostat: 启用Mirostat采样,控制文本生成过程中的困惑度。由Ollama、LM Studio和llama.cpp提供商支持(默认值:0,其中0= 禁用,1= Mirostat,2= Mirostat 2.0)。stop: 一个停止标记数组,当遇到这些标记时,将终止补全。允许指定多个结束条件。maxTokens: 在完成中生成的最大令牌数(默认值:2048)。numThreads: 生成过程中使用的线程数。仅在 Ollama 中可用为num_thread。keepAlive: 对于Ollama,此参数设置最后一次请求后保持模型加载的秒数,如果处于非活动状态则从内存中卸载(默认:1800秒,或30分钟)。useMmap: 对于Ollama,此参数允许模型映射到内存中。如果禁用,可以在低端设备上提高响应时间,但会减慢流的速度。
示例
{
"completionOptions": {
"stream": false,
"temperature": 0.5
}
}
requestOptions
默认的HTTP请求选项,适用于所有模型和上下文提供者,除非在模型级别被覆盖。
属性:
-
timeout: 每次请求LLM的超时时间(默认:7200秒)。 -
verifySsl: 是否验证请求的SSL证书。 -
caBundlePath: 用于HTTP请求的自定义CA捆绑包的路径 - 指向.pem文件的路径(或路径数组) -
proxy: 用于HTTP请求的代理URL。 -
headers: 用于HTTP请求的自定义头部。 -
extraBodyProperties: 与HTTP请求体合并的额外属性。 -
noProxy: 应绕过指定代理的主机名列表。 -
clientCertificate: 用于HTTP请求的客户端证书。cert: 客户端证书文件的路径。key: 客户端证书密钥文件的路径。passphrase: 客户端证书密钥文件的可选密码。
示例
{
"requestOptions": {
"headers": {
"X-Auth-Token": "xxx"
}
}
}
reranker
用于响应排序的重新排序模型的配置。
属性:
name(必填): 重排序器名称,例如cohere,voyage,llm,free-trial,huggingface-tei,bedrockparams:model: 模型名称apiKey: Api keyregion: 区域(仅适用于Bedrock)
示例
{
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<VOYAGE_API_KEY>"
}
}
}
docs
要索引的文档站点列表。
属性:
title(必填): 文档站点的标题,显示在下拉菜单等位置。startUrl(必填): 爬虫的起始页面 - 通常是文档的根页面或介绍页面rootUrl: 爬虫将仅索引此域名内的文档 - 包含此URL的页面maxDepth: 爬取的最大深度。默认值为3favicon: 网站图标的URL(默认是从startUrl获取的/favicon.ico)。
示例
"docs": [
{
"title": "Continue",
"startUrl": "https://docs.continue.dev/intro",
"rootUrl": "https://docs.continue.dev",
"faviconUrl": "https://docs.continue.dev/favicon.ico",
}
]
analytics
分析跟踪的配置。
属性:
provider: 分析提供商 ("posthog"或"logstash").url: 分析数据的URL。clientKey: 用于分析的用户密钥。
slashCommands
通过在侧边栏输入“/”来启动自定义命令。命令包括预定义的功能或可能是用户定义的。
属性:
name: 命令名称。选项包括 "issue", "share", "cmd", "http", "commit", 和 "review"。description: 命令的简要描述。step: (已弃用)用于内置命令;设置预配置选项的名称。params: 配置命令行为的附加参数(特定于命令 - 请参阅命令的代码)
示例:
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message"
},
{
"name": "share",
"description": "Export this session as markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
customCommands
侧边栏中的用户定义命令用于提示快捷方式,允许快速访问常见操作。
属性:
name: 自定义命令的名称。prompt: 命令的文本提示。description: 简要描述解释命令的功能。
示例:
{
"customCommands": [
{
"name": "test",
"prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
"description": "Write unit tests for highlighted code"
}
]
}
contextProviders
预定义的上下文提供者列表,这些提供者将在聊天输入时显示为选项,以及它们使用params进行的自定义。
属性:
name: 上下文提供者的名称,例如docs或webparams: 一个特定于上下文提供者的参数记录,用于配置上下文行为
示例
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "open",
"params": {}
}
]
}
disableSessionTitles
当设置为true时,防止为每个聊天会话生成摘要标题。
ui
可自定义的UI设置,用于控制界面外观和行为。
属性:
codeBlockToolbarPosition: 设置工具栏在代码块中的位置,可以是top(默认)或bottom。fontSize: 指定UI元素的字体大小。displayRawMarkdown: 如果为true,则在响应中显示原始 markdown。showChatScrollbar: 如果为true,则在聊天窗口中启用滚动条。codeWrap: 如果为true,则启用代码块中的文本换行。
示例:
{
"ui": {
"codeBlockToolbarPosition": "bottom",
"fontSize": 14,
"displayRawMarkdown": false,
"showChatScrollbar": false,
"codeWrap": false
}
}
allowAnonymousTelemetry
当true时,使用Posthog收集匿名使用数据,以改进功能。默认值为true。
userToken
一个可选的令牌,用于识别用户,主要用于认证服务。
systemMessage
定义一个系统消息,该消息在语言模型的每次响应之前出现,提供指导或上下文。
disableIndexing
防止代码库被索引,主要用于调试目的。
experimental
以下是几个可用的实验性配置参数:
experimental:
defaultContext: 定义LLM的默认上下文。使用与contextProviders相同的格式,但包括一个额外的query属性来指定自定义查询参数。modelRoles:inlineEdit: 内联编辑的模型标题。applyCodeBlock: 应用代码块的模型标题。repoMapFileSelection: 仓库地图选择的模型标题。
readResponseTTS: 如果为true,则使用 TTS 朗读 LLM 的响应。默认值为true。promptPath: 将自定义提示文件的路径从默认的 ".prompts" 更改quickActions: 自定义快速操作数组title(必填): 快速操作的显示标题。prompt(必填): 快速操作的提示。sendToChat: 如果为true,则将结果发送到聊天;否则插入到文档中。默认为false。
contextMenuPrompts:comment: 提示用于注释代码。docstring: 提示用于添加文档字符串。fix: 提示用于修复代码。optimize: 提示用于优化代码。fixGrammar: 提示用于修复语法或拼写。
useChromiumForDocsCrawling: 使用 Chromium 在本地爬取文档。如果默认的 Cheerio 爬虫在需要 JavaScript 渲染的网站上失败时,这很有用。下载并安装 Chromium 到~/.continue/.utils。
示例
{
"experimental": {
"modelRoles": {
"inlineEdit": "Edit Model"
},
"promptPath": "custom/.prompts",
"quickActions": [
{
"title": "Tags",
"prompt": "Return a list of any function and class names from the included code block",
"sendToChat": true
}
],
"contextMenuPrompts": {
"fixGrammar": "Fix grammar in the above but allow for typos."
},
"readResponseTTS": false,
"useChromiumForDocsCrawling": true
}
}