跳到主要内容

将配置迁移到 YAML

Continue 的 YAML 配置格式提供了更具可读性、更易维护、更一致的配置文件,以及新的配置选项并移除了一些旧的配置选项。YAML 是首选格式,将用于与未来的 Continue 产品集成。以下是从 config.json 迁移到 config.yaml 的简要指南。

另请参阅

创建 YAML 文件

在您的 Continue 全局目录(Mac 上为 ~/.continue,Windows 上为 %USERPROFILE%\.continue)中,与当前的 config.json 文件并排放置创建一个 config.yaml 文件。如果存在 config.yaml 文件,将加载该文件而不是 config.json

为您的配置设置 nameversion

config.yaml
name: my-configuration
version: 0.0.1
schema: v1

模型

config.json 中的所有模型配置,包括 modelstabAutocompleteModelembeddingsProviderreranker 中的模型,添加到新的 YAML 配置文件中的 models 部分。新的 roles YAML 字段指定了模型可以用于哪些角色,可能的值包括 chatautocompleteembedrerankeditapplysummarize

  • config 中的 models 应该具有 roles: [chat]
  • config 中的 tabAutocompleteModel(s) 应该具有 roles: [autocomplete]
  • config 中的 embeddingsProvider 应该具有 roles: [embed]
  • config 中的 reranker 应该具有 roles: [rerank]
  • experimental.modelRoles 被替换为直接向模型添加角色
    • inlineEdit -> 例如 roles: [chat, edit]
    • applyCodeBlock -> 例如 roles: [chat, apply]

模型级别的 requestOptions 保留,但有微小更改。请参阅YAML Continue 配置参考

模型级别的 completionOptionsdefaultCompletionOptions 替换,但有微小更改。请参阅YAML Continue 配置参考

之前

config.json
{
"models": [
{
"title": "GPT-4",
"provider": "openai",
"model": "gpt-4",
"apiKey": "<YOUR_OPENAI_API_KEY>",
"completionOptions": {
"temperature": 0.5,
"maxTokens": 2000
}
},
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"title": "My Open AI Compatible Model",
"provider": "openai",
"apiBase": "http://3.3.3.3/v1",
"model": "my-openai-compatible-model",
"requestOptions": {
"headers": { "X-Auth-Token": "<API_KEY>" }
}
}
],
"tabAutocompleteModel": {
"title": "My Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
},
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-ada-002",
"apiKey": "<YOUR_OPENAI_API_KEY>",
"maxEmbeddingChunkSize": 256,
"maxEmbeddingBatchSize": 5
},
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<YOUR_VOYAGE_API_KEY>"
}
}
}

之后

config.yaml
models:
- name: GPT-4
provider: openai
model: gpt-4
apiKey: <YOUR_OPENAI_KEY>
defaultCompletionOptions:
temperature: 0.5
maxTokens: 2000
roles:
- chat
- edit

- name: My Voyage Reranker
provider: voyage
apiKey: <YOUR_VOYAGE_KEY>
roles:
- rerank

- name: My Starcoder
provider: ollama
model: starcoder2:3b
roles:
- autocomplete

- name: My Ada Embedder
provider: openai
apiKey: <YOUR_ADA_API_KEY>
roles:
- embed
embedOptions:
- maxChunkSize: 256
- maxBatchSize: 5

- name: Ollama Autodetect
provider: ollama
model: AUTODETECT

- name: My Open AI Compatible Model - Apply
provider: openai
model: my-openai-compatible-model
apiBase: http://3.3.3.3/v1
requestOptions:
headers:
X-Auth-Token: <MY_API_KEY>
roles:
- chat
- apply

请注意,repoMapFileSelection 实验性模型角色已被弃用,仅在 config.json 中可用。

上下文提供者

JSON 的 contextProviders 字段被 YAML 的 context 数组替换。

  • JSON 的 name 映射到 provider
  • JSON 的 params 映射到 params

之前

config.json
{
"contextProviders": [
{
"name": "docs"
},
{
"name": "codebase",
"params": {
"nRetrieve": 30,
"nFinal": 3
}
},
{
"name": "diff",
"params": {}
}
]
}

之后

config.yaml
context:
- provider: docs

- provider: codebase
params:
nRetrieve: 30
nFinal: 3

- provider: diff

系统消息

systemMessage 属性已被替换为 rules 属性,后者接受一个字符串数组。

之前

config.json
{
"systemMessage": "Always give concise responses"
}

之后

config.yaml
rules:
- Always give concise responses

提示

不再使用 customCommands,您现在可以使用 prompts 字段来定义自定义提示。

之前

config.json
{
"customCommands": [
{
"name": "check",
"description": "Check for mistakes in my code",
"prompt": "{{{ input }}}\n\nPlease read the highlighted code and check for any mistakes. You should look for the following, and be extremely vigilant:\n- Syntax errors\n- Logic errors\n- Security vulnerabilities\n- Performance issues\n- Anything else that looks wrong\n\nOnce you find an error, please explain it as clearly as possible, but without using extra words. For example, instead of saying 'I think there is a syntax error on line 5', you should say 'Syntax error on line 5'. Give your answer as one bullet point per mistake found."
}
]
}

之后

config.yaml
prompts:
- name: check
description: Check for mistakes in my code
prompt: |
Please read the highlighted code and check for any mistakes. You should look for the following, and be extremely vigilant:
- Syntax errors
- Logic errors
- Security vulnerabilities
- Performance issues
- Anything else that looks wrong

Once you find an error, please explain it as clearly as possible, but without using extra words. For example, instead of saying 'I think there is a syntax error on line 5', you should say 'Syntax error on line 5'. Give your answer as one bullet point per mistake found.

文档

文档配置大致相同,但 title 属性已被替换为 namestartUrlrootUrlfaviconUrl 属性保持不变。

之前

config.json
{
"docs": [
{
"startUrl": "https://docs.nestjs.com/",
"title": "nest.js"
},
{
"startUrl": "https://mysite.com/docs/",
"title": "My site"
}
]
}

之后

config.yaml
docs:
- name: nest.js
startUrl: https://docs.nestjs.com/

- name: My site
startUrl: https://mysite.com/docs/

MCP 服务器

属性

  • name必填):MCP 服务器的名称。
  • command必填):用于启动服务器的命令。
  • args:命令的可选参数数组。
  • env:服务器进程的可选环境变量映射。

之前

config.json
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/NAME/test.db"],
"env": {
"KEY": "<VALUE>"
}
}
}
]
}
}

之后

config.yaml
mcpServers:
- name: My MCP Server
command: uvx
args:
- mcp-server-sqlite
- --db-path
- /Users/NAME/test.db
env:
KEY: <VALUE>

已弃用的配置选项

一些已弃用的 config.json 设置不再存储在配置文件中,已移至通过用户设置页面(齿轮图标)进行编辑。如果在 config.json 中发现这些设置,它们将被自动迁移到用户设置并从 config.json 中移除。

有关完全弃用的选项的更多信息,请参阅JSON 配置参考

使用 config.json 时,config.json 中的以下顶级字段仍然有效,但已被弃用且没有对应的 YAML 字段

  • 斜杠命令 (JSON slashCommands)
  • 顶级 requestOptions
  • 顶级 completionOptions
  • tabAutocompleteOptions
    • disable
    • maxPromptTokens
    • debounceDelay
    • maxSuffixPercentage
    • prefixPercentage
    • template
    • onlyMyCode
  • analytics

config.json 中的以下顶级字段已被弃用。大多数与 UI 相关和用户特定的选项将移至 UI 中的设置页面

  • customCommands
  • experimental
  • userToken

新的配置选项

YAML 配置格式提供了 JSON 格式中没有的新配置选项。有关更多信息,请参阅YAML 配置参考