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

Справочник 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).

Пример:

config.json
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"model": "gpt-4o",
"contextLength": 128000,
"title": "GPT-4o",
"provider": "openai",
"apiKey": "YOUR_API_KEY"
}
]
}

tabAutocompleteModel

Указывает модель или модели для автодополнения по табуляции, по умолчанию экземпляр Ollama. Это свойство использует тот же формат, что и models. Может быть массивом моделей или объектом для одной модели.

Пример

config.json
{
"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).

Пример

config.json
{
"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.

Пример:

config.json
{
"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 этот параметр позволяет модели быть отображенной в памяти. Если отключено, может улучшить время отклика на устройствах низкого класса, но замедлит поток.

Пример

config.json
{
"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: Необязательная парольная фраза для файла ключа клиентского сертификата.

Пример

config.json
{
"requestOptions": {
"headers": {
"X-Auth-Token": "xxx"
}
}
}

reranker

Конфигурация для модели reranker, используемой в ранжировании ответов.

Свойства:

  • name (обязательно): Имя reranker, например, cohere, voyage, llm, huggingface-tei, bedrock
  • params:
    • model: Имя модели
    • apiKey: Api ключ
    • region: Регион (только для Bedrock)

Пример

config.json
{
"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.

Пример

config.json
"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 транскрипцию вашей текущей истории чата.

config.json
{
"slashCommands": [
{
"name": "share",
"description": "Export the current chat session to markdown",
"params": { "outputDir": "~/.continue/session-transcripts" }
}
]
}

Используйте параметр outputDir для указания, где вы хотите сохранить markdown файл.

/cmd

Генерирует shell команду из естественного языка и (только в VS Code) автоматически вставляет ее в терминал.

config.json
{
"slashCommands": [
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}

/commit

Показывает LLM ваш текущий git diff и просит ее сгенерировать сообщение коммита.

config.json
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message for the current changes"
}
]
}

/http

Напишите пользовательскую slash команду на своей собственной HTTP конечной точке. Установите 'url' в объекте params для конечной точки, которую вы настроили. Конечная точка должна возвращать последовательность строковых обновлений, которые будут переданы потоково в боковую панель Continue. См. наш базовый пример FastAPI для справки.

config.json
{
"slashCommands": [
{
"name": "http",
"description": "Does something custom",
"params": { "url": "<my server endpoint>" }
}
]
}

/issue

Опишите проблему, которую вы хотели бы создать, и Continue превратит ее в хорошо отформатированный заголовок и тело, затем даст вам ссылку на черновик, чтобы вы могли отправить. Убедитесь, что установили URL репозитория, для которого вы хотите генерировать проблемы.

config.json
{
"slashCommands": [
{
"name": "issue",
"description": "Generate a link to a drafted GitHub issue",
"params": { "repositoryUrl": "https://github.com/continuedev/continue" }
}
]
}

/onboard

Команда onboard помогает ознакомиться с новым проектом, анализируя структуру проекта, README и файлы зависимостей. Она идентифицирует ключевые папки, объясняет их назначение и выделяет популярные используемые пакеты. Дополнительно она предлагает понимание архитектуры проекта.

config.json
{
"slashCommands": [
{
"name": "onboard",
"description": "Familiarize yourself with the codebase"
}
]
}

Пример:

config.json
{
"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: Краткое описание, объясняющее функцию команды.

Пример:

config.json
{
"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: Специфичная для поставщика контекста запись параметров для настройки поведения контекста

Пример

config.json
{
"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

Пример

config.json
{
"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

    См. Страницу пользовательских настроек для получения дополнительной информации о каждой опции.