Справочник config.json (устарел)
config.json
устарел. Пожалуйста, используйте config.yaml
.
Ниже приведены детали для каждого свойства, которое можно установить в config.json
. Код схемы конфигурации находится в extensions/vscode/config_schema.json
.
topLevelProperties
models
models
- это массив объектов Model
, которые определяют модели, которые вы хотите использовать в Koda. Подробнее см. в разделе Настройка модели.
customCommands
customCommands
- это массив объектов SlashCommand
, которые определяют пользовательские команды, которые вы хотите использовать в Koda. Подробнее см. в разделе Пользовательские команды.
contextProviders
contextProviders
- это массив объектов ContextProvider
, которые определяют поставщиков контекста, которые вы хотите использовать в Koda. Подробнее см. в разделе Поставщики контекста.
disableIndexing
Если disableIndexing
установлен в true
, Koda не будет индексировать вашу кодовую базу. Это может быть полезно, если вы хотите отключить функции поиска и контекста.
completionOptions
completionOptions
- это объект, который определяет настройки автодополнения. Подробнее см. в разделе Настройка автодополнения.
promptTemplates
promptTemplates
- это объект, который сопоставляет имена шаблонов промптов (например, edit
) со строками шаблонов. Подробнее см. в разделе Настройка промптов.
tabAutocompleteModel
tabAutocompleteModel
- это объект Model
, который определяет модель, используемую для автодополнения по Tab. Подробнее см. в разделе Настройка автодополнения.
embeddingsProvider
embeddingsProvider
- это объект EmbeddingsProvider
, который определяет поставщика эмбеддингов, используемый для поиска. Подробнее см. в разделе Настройка поиска.
templateMessages
templateMessages
- это массив объектов Message
, которые определяют шаблоны сообщений, используемых в Koda.
slashCommands
slashCommands
- это массив объектов SlashCommand
, которые определяют команды, доступные через слеш в Koda.
context
context
- это массив объектов ContextProvider
, которые определяют поставщиков контекста, используемых в Koda.
model
title
title
- это строка, которая определяет название модели в Koda.
Пример:
"title": "Koda",
provider
provider
- это строка, которая определяет поставщика модели. Возможные значения: openai
, anthropic
, ollama
, и т.д.
model
model
- это строка, которая определяет имя модели, например gpt-4
или claude-2
.
apiKey
apiKey
- это строка, которая определяет API ключ для поставщика модели.
apiBase
apiBase
- это строка, которая определяет базовый URL для API поставщика модели.
contextLength
contextLength
- это число, которое определяет максимальную длину контекста для модели.
template
template
- это объект, который определяет шаблон промпта для модели.
completionOptions
completionOptions
- это объект, который определяет настройки завершения для модели.
requestOptions
requestOptions
- это объект, который определяет настройки запроса для модели.
slashCommand
name
name
- это строка, которая определяет имя команды.
description
description
- это строка, которая определяет описание команды.
params
params
- это объект, который определяет параметры команды.
run
run
- это функция, которая определяет выполнение команды.
contextProvider
name
name
- это строка, которая определяет имя поставщика контекста.
description
description
- это строка, которая определяет описание поставщика контекста.
type
type
- это строка, которая определяет тип поставщика контекста.
embeddingsProvider
provider
provider
- это строка, которая определяет поставщика эмбеддингов.
model
model
- это строка, которая определяет модель эмбеддингов.
Пример config.json
{
"models": [
{
"title": "Koda",
"provider": "openai",
"model": "gpt-4",
"apiKey": "YOUR_OPENAI_API_KEY"
}
],
"customCommands": [
{
"name": "koda",
"description": "Koda with the current task",
"params": {},
"run": "function"
}
],
"contextProviders": [],
"disableIndexing": false,
"completionOptions": {
"temperature": 0.5,
"maxTokens": 1000
},
"promptTemplates": {
"edit": "Edit the following code:
{{code}}
Make the following changes:
{{changes}}"
},
"tabAutocompleteModel": {
"title": "Koda Autocomplete",
"provider": "openai",
"model": "gpt-3.5-turbo",
"apiKey": "YOUR_OPENAI_API_KEY"
},
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-ada-002"
},
"templateMessages": [],
"slashCommands": [],
"context": []
}
Специальные команды
explain
Команда /explain
объясняет выбранный код. Просто выделите фрагмент кода и введите /explain
, чтобы получить объяснение.
improve
Команда /improve
предлагает улучшения для выбранного кода. Просто выделите фрагмент кода и введите /improve
, чтобы получить предложения по улучшению.
addComments
Команда /addComments
добавляет комментарии к выбранному коду. Просто выделите фрагмент кода и введите /addComments
, чтобы получить комментированный код.
addTypes
Команда /addTypes
добавляет типы к выбранному коду. Просто выделите фрагмент кода и введите /addTypes
, чтобы получить код с типами.
fix
Команда /fix
исправляет ошибки в выбранном коде. Просто выделите фрагмент кода и введите /fix
, чтобы получить исправленный код.
refactor
Команда /refactor
рефакторит выбранный код. Просто выделите фрагмент кода и введите /refactor
, чтобы получить рефакторингованный код.
optimize
Команда /optimize
оптимизирует выбранный код. Просто выделите фрагмент кода и введите /optimize
, чтобы получить оптимизированный код.
findBugs
Команда /findBugs
находит баги в выбранном коде. Просто выделите фрагмент кода и введите /findBugs
, чтобы получить список найденных багов.
generateUnitTest
Команда /generateUnitTest
генерирует юнит-тесты для выбранного кода. Просто выделите фрагмент кода и введите /generateUnitTest
, чтобы получить юнит-тесты.
generateDocs
Команда /generateDocs
генерирует документацию для выбранного кода. Просто выделите фрагмент кода и введите /generateDocs
, чтобы получить документацию.
translate
Команда /translate
переводит выбранный код с одного языка программирования на другой. Просто выделите фрагмент кода и введите /translate [language]
, чтобы получить переведенный код.
gitCommit
Команда /gitCommit
генерирует сообщение коммита для текущих изменений. Просто введите /gitCommit
, чтобы получить сообщение коммита.
gitDescribe
Команда /gitDescribe
описывает текущие изменения в репозитории. Просто введите /gitDescribe
, чтобы получить описание изменений.
cmd
Команда /cmd
выполняет shell-команду. Просто введите /cmd [command]
, чтобы выполнить команду.
web
Команда /web
ищет информацию в интернете. Просто введите /web [query]
, чтобы получить результаты поиска.
createIssue
Команда /createIssue
создает issue на GitHub. Просто введите /createIssue [title] [body]
, чтобы создать issue.
Напишите пользовательскую slash команду на своей собственной HTTP конечной точке. Установите 'url' в объекте params для конечной точки, которую вы настроили. Конечная точка должна возвращать последовательность строковых обновлений, которые будут переданы потоково в боковую панель Koda. См. наш базовый пример FastAPI для справки.
createIssue
Опишите проблему, которую вы хотели бы создать, и Koda превратит ее в хорошо отформатированный заголовок и тело, затем даст вам ссылку на черновик, чтобы вы могли отправить. Убедитесь, что установили URL репозитория, для которого вы хотите генерировать проблемы.
{
"name": "createIssue",
"description": "Создать проблему на GitHub",
"params": { "repositoryUrl": "https://github.com/continuedev/continue" }
}
Ниже приведены детали для каждого свойства, которое можно установить в config.json
. Код схемы конфигурации находится в extensions/vscode/config_schema.json
.
Все свойства на всех уровнях являются необязательными, если только они явно не помечены как обязательные
models
Ваши chat модели определены здесь, которые используются для Chat, Edit и VS Code actions.
Каждая модель имеет специфичные опции конфигурации, адаптированные к ее поставщику и функциональности, которые можно увидеть в виде предложений при редактировании json.
Свойства:
title
(обязательно): Название для присвоения вашей модели, показывается в выпадающих списках и т.д.provider
(обязательно): Поставщик модели, который определяет тип и метод взаимодействия. Опции включаютopenai
,ollama
,xAI
и т.д., см. предложения IntelliJ.model
(обязательно): Имя модели, используется для автоопределения шаблона промпта. Используйте специальное имяAUTODETECT
для получения всех доступных моделей.apiKey
: API ключ, требуемый поставщиками, такими как OpenAI, Anthropic, Cohere и xAI.apiBase
: Базовый URL LLM API.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
: Engine для запросов Azure OpenAI.capabilities
: Переопределить автоопределенные возможности:uploadImage
: Boolean, указывающий, поддерживает ли модель загрузку изображений.tools
: Boolean, указывающий, поддерживает ли модель использование инструментов.
(Только для 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
).maxPromptTokens
: Максимальное количество токенов для промпта (по умолчанию:1024
).debounceDelay
: Задержка (в мс) перед активацией автодополнения (по умолчанию:350
).maxSuffixPercentage
: Максимальный процент промпта для суффикса (по умолчанию:0.2
).prefixPercentage
: Процент ввода для префикса (по умолчанию:0.3
).template
: Строка шаблона для автодополнения, используя шаблонизацию Mustache. Вы можете использовать переменные{{{ prefix }}}
,{{{ suffix }}}
,{{{ filename }}}
,{{{ reponame }}}
и{{{ language }}}
.onlyMyCode
: Еслиtrue
, включает только код в пределах репозитория (по умолчанию:true
).
Пример
{
"tabAutocompleteOptions": {
"debounceDelay": 500,
"maxPromptTokens": 1500,
"disableInFiles": ["*.md"]
}
}
embeddingsProvider
Настройки модели embeddings - модель, используемая для @Codebase и @docs.
Свойства:
provider
(обязательно): Указывает поставщика embeddings, с опциями, включающимиtransformers.js
,ollama
,openai
,cohere
,gemini
и т.д.model
: Имя модели для embeddings.apiKey
: API ключ для поставщика.apiBase
: Базовый URL для API запросов.requestOptions
: Дополнительные настройки HTTP запросов, специфичные для поставщика embeddings.maxEmbeddingChunkSize
: Максимальное количество токенов на чанк документа. Минимум 128 токенов.maxEmbeddingBatchSize
: Максимальное количество чанков на запрос. Минимум 1 чанк.
(ТОЛЬКО AWS)
region
: Указывает регион, где размещена модель.profile
: Профиль безопасности AWS.
Пример:
{
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-ada-002",
"apiKey": "<API_KEY>",
"maxEmbeddingChunkSize": 256,
"maxEmbeddingBatchSize": 5
}
}
completionOptions
Параметры, которые контролируют поведение генерации текста и настройки завершения. completionOptions
верхнего уровня применяются ко всем моделям, если только не переопределены на уровне модели.
Свойства:
stream
: Потоковая ли передача ответа LLM. В настоящее время соблюдается только поставщикамиanthropic
иollama
; другие поставщики всегда будут передавать потоково (по умолчанию:true
).temperature
: Контролирует случайность завершения. Более высокие значения приводят к более разнообразным выходам.topP
: Кумулятивная вероятность для nucleus sampling. Более низкие значения ограничивают ответы токенами в пределах верхней вероятностной массы.topK
: Максимальное количество токенов, рассматриваемых на каждом шаге. Ограничивает сгенерированный текст токенами в пределах этой вероятности.presencePenalty
: Препятствует модели генерировать токены, которые уже появились в выводе.frequencyPenalty
: Штрафует токены на основе их частоты в тексте, уменьшая повторения.mirostat
: Включает Mirostat sampling, которая контролирует perplexity во время генерации текста. Поддерживается поставщиками 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
: Путь к пользовательскому пакету CA для HTTP запросов - путь к файлу.pem
(или массив путей) -
proxy
: Proxy URL для использования в HTTP запросах. -
headers
: Пользовательские заголовки для HTTP запросов. -
extraBodyProperties
: Дополнительные свойства для слияния с телом HTTP запроса. -
noProxy
: Список имен хостов, которые должны обходить указанный прокси. -
clientCertificate
: Клиентский сертификат для HTTP запросов.cert
: Путь к файлу клиентского сертификата.key
: Путь к файлу ключа клиентского сертификата.passphrase
: Необязательная парольная фраза для файла ключа клиентского сертификата.
Пример
{
"requestOptions": {
"headers": {
"X-Auth-Token": "xxx"
}
}
}
reranker
Конфигурация для модели reranker, используемой в ранжировании ответов.
Свойства:
name
(обязательно): Имя reranker, например,cohere
,voyage
,llm
,huggingface-tei
,bedrock
params
:model
: Имя моделиapiKey
: Api ключregion
: Регион (только для Bedrock)
Пример
{
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<VOYAGE_API_KEY>"
}
}
}
docs
Список сайтов документации для индексации.
Свойства:
title
(обязательно): Заголовок сайта документации, отображается в выпадающих списках и т.д.startUrl
(обязательно): Начальная страница для crawling - обычно корневая или вводная страница для документации
maxDepth
: Максимальная глубина ссылок для crawling. По умолчанию4
favicon
: URL для favicon сайта (по умолчанию/favicon.ico
изstartUrl
).useLocalCrawling
: Пропустить стандартный crawler и crawl только с использованием локального crawler.
Пример
"docs": [
{
"title": "Koda",
"startUrl": "https://docs.continue.dev/intro",
"faviconUrl": "https://docs.continue.dev/favicon.ico",
}
]
slashCommands
Пользовательские команды, инициируемые вводом "/" в боковой панели. Команды включают предопределенную функциональность или могут быть определены пользователем.
Свойства:
name
: Имя команды. Опции включают "issue", "share", "cmd", "http", "commit" и "review".description
: Краткое описание команды.step
: (Устарело) Используется для встроенных команд; установите имя для предварительно настроенных опций.params
: Дополнительные параметры для настройки поведения команды (специфичные для команды - см. код для команды)
Следующие команды являются встроенными и могут быть добавлены в config.json
, чтобы сделать их видимыми:
/share
Генерирует разделяемую markdown транскрипцию вашей текущей истории чата.
{
"slashCommands": [
{
"name": "share",
"description": "Export the current chat session to markdown",
"params": { "outputDir": "~/.continue/session-transcripts" }
}
]
}
Используйте параметр outputDir
для указания, где вы хотите сохранить markdown файл.
/cmd
Генерирует shell команду из естественного языка и (только в VS Code) автоматически вставляет ее в терминал.
{
"slashCommands": [
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
/commit
Показывает LLM ваш текущий git diff и просит ее сгенерировать сообщение коммита.
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message for the current changes"
}
]
}
/http
Напишите пользовательскую slash команду на своей собственной HTTP конечной точке. Установите 'url' в объекте params для конечной точки, которую вы настроили. Конечная точка должна возвращать последовательность строковых обновлений, которые будут переданы потоково в боковую панель Continue. См. наш базовый пример FastAPI для справки.
{
"slashCommands": [
{
"name": "http",
"description": "Does something custom",
"params": { "url": "<my server endpoint>" }
}
]
}
/issue
Опишите проблему, которую вы хотели бы создать, и Continue превратит ее в хорошо отформатированный заголовок и тело, затем даст вам ссылку на черновик, чтобы вы могли отправить. Убедитесь, что установили URL репозитория, для которого вы хотите генерировать проблемы.
{
"slashCommands": [
{
"name": "issue",
"description": "Generate a link to a drafted GitHub issue",
"params": { "repositoryUrl": "https://github.com/continuedev/continue" }
}
]
}
/onboard
Команда onboard помогает ознакомиться с новым проектом, анализируя структуру проекта, README и файлы зависимостей. Она идентифицирует ключевые папки, объясняет их назначение и выделяет популярные используемые пакеты. Дополнительно она предлагает понимание архитектуры проекта.
{
"slashCommands": [
{
"name": "onboard",
"description": "Familiarize yourself with the codebase"
}
]
}
Пример:
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message"
},
{
"name": "share",
"description": "Export this session as markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
Вы также можете добавить свою собственную slash команду, следуя этому туториалу.
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
илиweb
params
: Специфичная для поставщика контекста запись параметров для настройки поведения контекста
Пример
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "open",
"params": {}
}
]
}
userToken
Необязательный токен, который идентифицирует пользователя, в основном для аутентифицированных сервисов.
systemMessage
Определяет системное сообщение, которое появляется перед каждым ответом от языковой модели, предоставляя руководство или контекст.
experimental
Доступно несколько экспериментальных параметров конфигурации, как описано ниже:
experimental
:
defaultContext
: Определяет контекст по умолчанию для LLM. Использует тот же формат, что иcontextProviders
, но включает дополнительное свойствоquery
для указания пользовательских параметров запроса.=modelRoles
:inlineEdit
: Название модели для встроенного редактирования.applyCodeBlock
: Название модели для применения блоков кода.repoMapFileSelection
: Название модели для выбора файлов repo map.
quickActions
: Массив пользовательских быстрых действийtitle
(обязательно): Отображаемый заголовок для быстрого действия.prompt
(обязательно): Промпт для быстрого действия.sendToChat
: Еслиtrue
, отправляет результат в чат; иначе вставляет в документ. По умолчаниюfalse
.
contextMenuPrompts
:comment
: Промпт для комментирования кода.docstring
: Промпт для добавления docstrings.fix
: Промпт для исправления кода.optimize
: Промпт для оптимизации кода.
modelContextProtocolServers
: См. Model Context Protocol
Пример
{
"experimental": {
"modelRoles": {
"inlineEdit": "Edit Model"
},
"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."
},
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/NAME/test.db"]
}
}
]
}
}
Полностью устаревшие настройки
Некоторые устаревшие настройки config.json
больше не хранятся в конфигурации и были перемещены для редактирования через Страницу пользовательских настроек. Если они найдены в config.json
, они будут автоматически мигрированы в пользовательские настройки и удалены из config.json
.
-
allowAnonymousTelemetry
: Это значение будет мигрировано к самому безопасному объединенному значению (false
, если любое из нихfalse
). -
promptPath
: Это значение будет переопределено во время миграции. -
disableIndexing
: Это значение будет мигрировано к самому безопасному объединенному значению (true
, если любое из нихtrue
). -
disableSessionTitles
/ui.getChatTitles
: Это значение будет мигрировано к самому безопасному объединенному значению (true
, если любое из нихtrue
).getChatTitles
имеет приоритет, если установлено в false -
tabAutocompleteOptions
useCache
: Это значение будет переопределено во время миграции.disableInFiles
: Это значение будет мигрировано к самому безопасному объединенному значению (массивы совпадений файлов объединены/дедуплицированы)multilineCompletions
: Это значение будет переопределено во время миграции.
-
experimental
useChromiumForDocsCrawling
: Это значение будет переопределено во время миграции.readResponseTTS
: Это значение будет переопределено во время миграции.
-
ui
- все будут переопределены во время миграцииcodeBlockToolbarPosition
fontSize
codeWrap
displayRawMarkdown
showChatScrollbar
См. Страницу пользовательских настроек для получения дополнительной информации о каждой опции.