kotaemon/docs/pages/app/settings/user-settings.md
Duc Nguyen (john) cb01d27d19 Fix integrating indexing and retrieval pipelines to FileIndex (#155)
* Add docs for settings
* Add mdx_truly_sane_lists to doc requirements
2024-03-10 16:41:42 +07: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