+
+ {
+ if (typeof x === 'undefined') return;
+
+ const value = getRealValue(x);
+
+ if (value < 1000) return value.toFixed(0) + 'K';
+
+ return (value / 1000).toFixed(0) + 'M';
+ },
+ }}
+ value={powValue}
+ />
+
+
+ {
+ if (!e) return;
+
+ updateWithRealValue(e);
+ }}
+ step={1024}
+ value={token}
+ />
+
+
+ );
+});
+export default MaxTokenSlider;
diff --git a/src/app/settings/llm/components/ProviderModelList/ModelConfigModal.tsx b/src/app/settings/llm/components/ProviderModelList/ModelConfigModal.tsx
index 61538e06d9d2..975c7178002c 100644
--- a/src/app/settings/llm/components/ProviderModelList/ModelConfigModal.tsx
+++ b/src/app/settings/llm/components/ProviderModelList/ModelConfigModal.tsx
@@ -1,81 +1,108 @@
-import { Modal, SliderWithInput } from '@lobehub/ui';
+import { Modal } from '@lobehub/ui';
import { Checkbox, Form, Input } from 'antd';
+import isEqual from 'fast-deep-equal';
import { memo } from 'react';
import { useTranslation } from 'react-i18next';
-import { GlobalLLMProviderKey } from '@/types/settings';
+import { useGlobalStore } from '@/store/global';
+import { modelConfigSelectors } from '@/store/global/slices/settings/selectors';
-interface ModelConfigModalProps {
- id: string;
- onOpenChange: (open: boolean) => void;
- open?: boolean;
- provider: GlobalLLMProviderKey;
-}
-const ModelConfigModal = memo