diff --git a/src/renderer/src/pages/home/RightSidebar/SettingsTab.tsx b/src/renderer/src/pages/home/RightSidebar/SettingsTab.tsx index 3b5bba5e..ed6c9acd 100644 --- a/src/renderer/src/pages/home/RightSidebar/SettingsTab.tsx +++ b/src/renderer/src/pages/home/RightSidebar/SettingsTab.tsx @@ -8,8 +8,7 @@ import { useAppDispatch } from '@renderer/store' import { setMessageFont, setShowInputEstimatedTokens, setShowMessageDivider } from '@renderer/store/settings' import { Assistant, AssistantSettings } from '@renderer/types' import { Col, Row, Select, Slider, Switch, Tooltip } from 'antd' -import { debounce } from 'lodash' -import { FC, useCallback, useEffect, useState } from 'react' +import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import styled from 'styled-components' @@ -30,39 +29,29 @@ const SettingsTab: FC = (props) => { const { showMessageDivider, messageFont, showInputEstimatedTokens, sendMessageShortcut, setSendMessageShortcut } = useSettings() - const onUpdateAssistantSettings = useCallback( - debounce( - (settings: Partial) => { - updateAssistantSettings({ - temperature: settings.temperature ?? temperature, - contextCount: settings.contextCount ?? contextCount, - enableMaxTokens: settings.enableMaxTokens ?? enableMaxTokens, - maxTokens: settings.maxTokens ?? maxTokens - }) - }, - 1000, - { leading: true, trailing: false } - ), - [temperature, contextCount, enableMaxTokens, maxTokens] - ) + const onUpdateAssistantSettings = (settings: Partial) => { + updateAssistantSettings({ + temperature: settings.temperature ?? temperature, + contextCount: settings.contextCount ?? contextCount, + enableMaxTokens: settings.enableMaxTokens ?? enableMaxTokens, + maxTokens: settings.maxTokens ?? maxTokens + }) + } const onTemperatureChange = (value) => { if (!isNaN(value as number)) { - setTemperature(value) onUpdateAssistantSettings({ temperature: value }) } } const onConextCountChange = (value) => { if (!isNaN(value as number)) { - setConextCount(value) onUpdateAssistantSettings({ contextCount: value }) } } const onMaxTokensChange = (value) => { if (!isNaN(value as number)) { - setMaxTokens(value) onUpdateAssistantSettings({ maxTokens: value }) } } @@ -109,7 +98,8 @@ const SettingsTab: FC = (props) => { @@ -126,7 +116,8 @@ const SettingsTab: FC = (props) => { @@ -154,7 +145,8 @@ const SettingsTab: FC = (props) => { diff --git a/src/renderer/src/pages/settings/AssistantSettings.tsx b/src/renderer/src/pages/settings/AssistantSettings.tsx index 33e58b0a..2ae15d37 100644 --- a/src/renderer/src/pages/settings/AssistantSettings.tsx +++ b/src/renderer/src/pages/settings/AssistantSettings.tsx @@ -5,8 +5,7 @@ import { useDefaultAssistant } from '@renderer/hooks/useAssistant' import { AssistantSettings as AssistantSettingsType } from '@renderer/types' import { Button, Col, Input, InputNumber, Row, Slider, Switch, Tooltip } from 'antd' import TextArea from 'antd/es/input/TextArea' -import { debounce } from 'lodash' -import { FC, useCallback, useState } from 'react' +import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import styled from 'styled-components' @@ -21,43 +20,33 @@ const AssistantSettings: FC = () => { const { t } = useTranslation() - const onUpdateAssistantSettings = useCallback( - debounce( - (settings: Partial) => { - updateDefaultAssistant({ - ...defaultAssistant, - settings: { - ...defaultAssistant.settings, - temperature: settings.temperature ?? temperature, - contextCount: settings.contextCount ?? contextCount, - enableMaxTokens: settings.enableMaxTokens ?? enableMaxTokens, - maxTokens: settings.maxTokens ?? maxTokens - } - }) - }, - 1000, - { leading: false, trailing: true } - ), - [temperature, contextCount, enableMaxTokens, maxTokens] - ) + const onUpdateAssistantSettings = (settings: Partial) => { + updateDefaultAssistant({ + ...defaultAssistant, + settings: { + ...defaultAssistant.settings, + temperature: settings.temperature ?? temperature, + contextCount: settings.contextCount ?? contextCount, + enableMaxTokens: settings.enableMaxTokens ?? enableMaxTokens, + maxTokens: settings.maxTokens ?? maxTokens + } + }) + } const onTemperatureChange = (value) => { if (!isNaN(value as number)) { - setTemperature(value) onUpdateAssistantSettings({ temperature: value }) } } const onConextCountChange = (value) => { if (!isNaN(value as number)) { - setConextCount(value) onUpdateAssistantSettings({ contextCount: value }) } } const onMaxTokensChange = (value) => { if (!isNaN(value as number)) { - setMaxTokens(value) onUpdateAssistantSettings({ maxTokens: value }) } } @@ -121,7 +110,8 @@ const AssistantSettings: FC = () => { { min={0} max={20} marks={{ 0: '0', 5: '5', 10: '10', 15: '15', 20: t('chat.settings.max') }} - onChange={onConextCountChange} + onChange={setConextCount} + onChangeComplete={onConextCountChange} value={typeof contextCount === 'number' ? contextCount : 0} step={1} /> @@ -188,7 +179,8 @@ const AssistantSettings: FC = () => {