Spaces:
Paused
Paused
| # 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. | |
| ```python | |
| 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 | |