Files
wehub-resource-sync da6a09ff09
Auto Bump and Release / auto-bump-and-release (push) Has been cancelled
style-check / pre-commit (push) Has been cancelled
unit-test / unit testing with python (push) Has been cancelled
unit-test / unit testing with python 3.10 (push) Has been cancelled
unit-test / unit testing with python 3.11 (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:49 +08:00

1.4 KiB

User settings

ktem allows developers to extend the index and the reasoning pipeline. In many cases, these components can have settings that should be modified by users at run-time, (e.g. topk, chunksize...). These are the user settings.

ktem allows developers to declare such user settings in their code. Once declared, ktem will render them in a Settings page.

There are 2 places that ktem looks for declared user settings. You can refer to the respective pages.

  • In the index.
  • In the reasoning pipeline.

Syntax of a settings

A collection of settings is a dictionary of type dict[str, dict], where the key is a setting id, and the value is the description of the setting.

settings = {
    "topk": {
        "name": "Top-k chunks",
        "value": 10,
        "component": "number",
    },
    "lang": {
        "name": "Languages",
        "value": "en",
        "component": "dropdown",
        "choices": [("en", "English"), ("cn", "Chinese")],
    }
}

Each setting description must have:

  • name: the human-understandable name of the settings.

  • value: the default value of the settings.

  • component: the UI component to render such setting on the UI. Available:

    • "text": single-value
    • "number": single-value
    • "checkbox": single-value
    • "dropdown": choices
    • "radio": choices
    • "checkboxgroup": choices
  • choices: the list of choices, if the component type allows.

Settings page structure