Миграция с 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
:
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
До
{
"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>"
}
}
}
После
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
До
{
"contextProviders": [
{
"name": "docs"
},
{
"name": "codebase",
"params": {
"nRetrieve": 30,
"nFinal": 3
}
},
{
"name": "diff",
"params": {}
}
]
}
После
context:
- provider: docs
- provider: codebase
params:
nRetrieve: 30
nFinal: 3
- provider: diff
Системное сообщение
Свойство systemMessage
заменено свойством rules
, которое принимает массив строк.
До
{
"systemMessage": "Always give concise responses"
}
После
rules:
- Always give concise responses
Промпты
Вместо customCommands
теперь вы можете использовать поле prompts
для определения пользовательских промптов.
До
{
"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."
}
]
}
После
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
остаются.
До
{
"docs": [
{
"startUrl": "https://docs.nestjs.com/",
"title": "nest.js"
},
{
"startUrl": "https://mysite.com/docs/",
"title": "My site"
}
]
}
После
docs:
- name: nest.js
startUrl: https://docs.nestjs.com/
- name: My site
startUrl: https://mysite.com/docs/
MCP серверы
Свойства:
name
(обязательно): Имя MCP сервера.command
(обязательно): Команда, используемая для запуска сервера.args
: Необязательный массив аргументов для команды.env
: Необязательная карта переменных окружения для серверного процесса.
До
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/NAME/test.db"],
"env": {
"KEY": "<VALUE>"
}
}
}
]
}
}
После
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 конфигурации для получения дополнительной информации.