Перейти к основному содержимому
Версия: v0.3.0

Миграция с JSON на YAML

YAML формат конфигурации Koda обеспечивает более читаемые, поддерживаемые, согласованные файлы конфигурации, а также новые опции конфигурации и удаление некоторых старых опций конфигурации. YAML является предпочтительным форматом и будет использоваться для интеграции с будущими продуктами Koda. Ниже приведено краткое руководство по миграции из config.json в config.yaml.

Ресурсы

Начало работы

Создайте файл config.yaml в вашем глобальном каталоге Koda (~/.continue на Mac, %USERPROFILE%\.continue) рядом с вашим текущим файлом config.json. Если файл config.yaml присутствует, он будет загружен вместо config.json.

Дайте вашей конфигурации name и version:

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

Модели

Добавьте все конфигурации моделей из config.json, включая модели в models, tabAutocompleteModel, embeddingsProvider и reranker, в секцию models вашего нового YAML файла конфигурации. Новое поле roles в YAML указывает, для каких ролей модель может использоваться, с возможными значениями chat, autocomplete, embed, rerank, edit, apply, summarize.

  • models в конфигурации должны иметь roles: [chat]
  • tabAutocompleteModel(s) в конфигурации должны иметь roles: [autocomplete]
  • embeddingsProvider в конфигурации должен иметь roles: [embed]
  • reranker в конфигурации должен иметь roles: [rerank]
  • experimental.modelRoles заменяется простым добавлением ролей к модели
    • inlineEdit -> например, roles: [chat, edit]
    • applyCodeBlock -> например, roles: [chat, apply]

requestOptions на уровне модели остаются, с незначительными изменениями. См. Справочник YAML конфигурации Continue

completionOptions на уровне модели заменяются на defaultCompletionOptions, с незначительными изменениями. См. Справочник 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 заменено на name. Свойства startUrl, rootUrl и faviconUrl остаются.

До

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:

  • Slash команды (JSON slashCommands)
  • requestOptions верхнего уровня
  • completionOptions верхнего уровня
  • tabAutocompleteOptions
    • disable
    • maxPromptTokens
    • debounceDelay
    • maxSuffixPercentage
    • prefixPercentage
    • template
    • onlyMyCode
  • analytics

Следующие поля верхнего уровня из config.json были объявлены устаревшими. Большинство опций, связанных с UI и пользователем, переместятся на страницу настроек в UI

  • customCommands
  • experimental
  • userToken

Новые опции конфигурации

YAML формат конфигурации предлагает новые опции конфигурации, недоступные в JSON формате. См. Справочник YAML конфигурации для получения дополнительной информации.