Миграция с 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верхнего уровняtabAutocompleteOptionsdisablemaxPromptTokensdebounceDelaymaxSuffixPercentageprefixPercentagetemplateonlyMyCode
analytics
Следующие поля верхнего уровня из config.json были объявлены устаревшими. Большинство опций, связанных с UI и пользователем, переместятся на страницу настроек в UI
customCommandsexperimentaluserToken
Новые опции конфигурации
YAML формат конфигурации предлагает новые опции конфигурации, недоступные в JSON формате. См. Справочник YAML конфигурации для получения дополнительной информации.