d0fa2c9fbb
* webui: send reasoning_content back to model in context Preserve assistant reasoning across turns by extracting it from internal tags and sending it as a separate reasoning_content field in the API payload. The server and Jinja templates handle native formatting (e.g. <think> tags for Qwen, GLM, DeepSeek...). Adds "Exclude reasoning from context" toggle in Settings > Developer (off by default, so reasoning is preserved). Includes unit tests. * webui: add syncable parameter for excludeReasoningFromContext * chore: update webui build output
61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
/**
|
|
* Settings key constants for ChatSettings configuration.
|
|
*
|
|
* These keys correspond to properties in SettingsConfigType and are used
|
|
* in settings field configurations to ensure consistency.
|
|
*/
|
|
export const SETTINGS_KEYS = {
|
|
// General
|
|
THEME: 'theme',
|
|
API_KEY: 'apiKey',
|
|
SYSTEM_MESSAGE: 'systemMessage',
|
|
PASTE_LONG_TEXT_TO_FILE_LEN: 'pasteLongTextToFileLen',
|
|
COPY_TEXT_ATTACHMENTS_AS_PLAIN_TEXT: 'copyTextAttachmentsAsPlainText',
|
|
ENABLE_CONTINUE_GENERATION: 'enableContinueGeneration',
|
|
PDF_AS_IMAGE: 'pdfAsImage',
|
|
ASK_FOR_TITLE_CONFIRMATION: 'askForTitleConfirmation',
|
|
// Display
|
|
SHOW_MESSAGE_STATS: 'showMessageStats',
|
|
SHOW_THOUGHT_IN_PROGRESS: 'showThoughtInProgress',
|
|
KEEP_STATS_VISIBLE: 'keepStatsVisible',
|
|
AUTO_MIC_ON_EMPTY: 'autoMicOnEmpty',
|
|
RENDER_USER_CONTENT_AS_MARKDOWN: 'renderUserContentAsMarkdown',
|
|
DISABLE_AUTO_SCROLL: 'disableAutoScroll',
|
|
ALWAYS_SHOW_SIDEBAR_ON_DESKTOP: 'alwaysShowSidebarOnDesktop',
|
|
AUTO_SHOW_SIDEBAR_ON_NEW_CHAT: 'autoShowSidebarOnNewChat',
|
|
FULL_HEIGHT_CODE_BLOCKS: 'fullHeightCodeBlocks',
|
|
SHOW_RAW_MODEL_NAMES: 'showRawModelNames',
|
|
// Sampling
|
|
TEMPERATURE: 'temperature',
|
|
DYNATEMP_RANGE: 'dynatemp_range',
|
|
DYNATEMP_EXPONENT: 'dynatemp_exponent',
|
|
TOP_K: 'top_k',
|
|
TOP_P: 'top_p',
|
|
MIN_P: 'min_p',
|
|
XTC_PROBABILITY: 'xtc_probability',
|
|
XTC_THRESHOLD: 'xtc_threshold',
|
|
TYP_P: 'typ_p',
|
|
MAX_TOKENS: 'max_tokens',
|
|
SAMPLERS: 'samplers',
|
|
BACKEND_SAMPLING: 'backend_sampling',
|
|
// Penalties
|
|
REPEAT_LAST_N: 'repeat_last_n',
|
|
REPEAT_PENALTY: 'repeat_penalty',
|
|
PRESENCE_PENALTY: 'presence_penalty',
|
|
FREQUENCY_PENALTY: 'frequency_penalty',
|
|
DRY_MULTIPLIER: 'dry_multiplier',
|
|
DRY_BASE: 'dry_base',
|
|
DRY_ALLOWED_LENGTH: 'dry_allowed_length',
|
|
DRY_PENALTY_LAST_N: 'dry_penalty_last_n',
|
|
// MCP
|
|
AGENTIC_MAX_TURNS: 'agenticMaxTurns',
|
|
ALWAYS_SHOW_AGENTIC_TURNS: 'alwaysShowAgenticTurns',
|
|
AGENTIC_MAX_TOOL_PREVIEW_LINES: 'agenticMaxToolPreviewLines',
|
|
SHOW_TOOL_CALL_IN_PROGRESS: 'showToolCallInProgress',
|
|
// Developer
|
|
DISABLE_REASONING_PARSING: 'disableReasoningParsing',
|
|
EXCLUDE_REASONING_FROM_CONTEXT: 'excludeReasoningFromContext',
|
|
SHOW_RAW_OUTPUT_SWITCH: 'showRawOutputSwitch',
|
|
CUSTOM: 'custom'
|
|
} as const;
|