diff --git a/src/pages/benchmark/hooks/use-column-settings.tsx b/src/pages/benchmark/hooks/use-column-settings.tsx index f8ed0f21..ac4622e6 100644 --- a/src/pages/benchmark/hooks/use-column-settings.tsx +++ b/src/pages/benchmark/hooks/use-column-settings.tsx @@ -383,15 +383,6 @@ const useColumnSettings = (options: { ) }, - { - title: renderTitle(intl.formatMessage({ id: 'benchmark.table.dataset' })), - dataIndex: 'dataset_name', - render: (text: string) => ( - - {text} - - ) - }, { title: ( @@ -406,6 +397,15 @@ const useColumnSettings = (options: { ) }, + { + title: renderTitle(intl.formatMessage({ id: 'benchmark.table.dataset' })), + dataIndex: 'dataset_name', + render: (text: string) => ( + + {text} + + ) + }, { title: renderTitle(intl.formatMessage({ id: 'benchmark.table.gpu' })), dataIndex: 'gpu_summary', diff --git a/src/pages/llmodels/forms/backend.tsx b/src/pages/llmodels/forms/backend.tsx index 5a710af4..90282f3f 100644 --- a/src/pages/llmodels/forms/backend.tsx +++ b/src/pages/llmodels/forms/backend.tsx @@ -10,6 +10,7 @@ import { backendTipsList } from '../config'; import { backendOptionsMap } from '../config/backend-parameters'; import { useFormContext } from '../config/form-context'; import useCompareEnvs from '../hooks/use-compare-envs'; +import EnvsOverridePopover from './envs-override-popover'; const CaretDownWrapper = styled.span` display: flex; @@ -30,6 +31,7 @@ const BackendFields: React.FC = () => { const form = Form.useFormInstance(); const { action, + initialValues, onValuesChange, backendOptions, flatBackendOptions, @@ -37,9 +39,15 @@ const BackendFields: React.FC = () => { } = useFormContext(); const backend = Form.useWatch('backend', form); const [showDeprecated, setShowDeprecated] = React.useState(false); - const { openTips, handleToggleTips, handleCompareEnvs } = useCompareEnvs(); + const { openTips, diffEnvs, handleCloseTips, handleCompareEnvs } = + useCompareEnvs(); const handleBackendVersionOnChange = (value: any, option: any) => { + // const oldEnvs = _.get(initialValues, 'env', {}); + // const newEnvs = option.data?.env || {}; + + // handleCompareEnvs(oldEnvs, newEnvs); + if (Object.keys(option.data?.env || {}).length > 0) { form.setFieldValue('env', { ...(option?.data?.env || {}) }); } @@ -160,6 +168,14 @@ const BackendFields: React.FC = () => { ); }; + const handleOnSaveEnvsOverride = (envs: Record) => { + form.setFieldsValue({ + env: { ...envs } + }); + onValuesChange?.({}, form.getFieldsValue()); + handleCloseTips(); + }; + const optionRender = (option: any) => { return option.data.title; }; @@ -198,7 +214,17 @@ const BackendFields: React.FC = () => { > {backendOptionsMap.custom !== backend && ( - + + ) + } + > void; + diffEnvs: { + old: Record; + new: Record; + } | null; + onSave: (data: Record) => void; } const EnvsOverridePopover: React.FC = (props) => { - const { open, onToggle } = props; + const { diffEnvs, onSave } = props; + const [open, setOpen] = React.useState(false); + const containerRef = React.useRef(null); + const [checkedEnvs, setCheckedEnvs] = React.useState>({}); + const intl = useIntl(); + + const handleSelectValue = ( + e: any, + { env_name, value }: { env_name: string; value: any } + ) => { + setCheckedEnvs((prev) => ({ + ...prev, + [env_name]: value + })); + }; + + const columns: ColumnProps[] = [ + { + title: 'Environment Variable', + key: 'env_name' + }, + { + title: 'Old Value', + key: 'old', + render: ({ row }) => { + return ( + + handleSelectValue(e, { env_name: row.env_name, value: row.old }) + } + checked={row.checkedValue === row.old} + > + {row.old} + + ); + } + }, + { + title: 'New Value', + key: 'new', + render: ({ row }) => { + return ( + + handleSelectValue(e, { env_name: row.env_name, value: row.new }) + } + checked={row.checkedValue === row.new} + > + {row.new} + + ); + } + } + ]; + + const dataList = useMemo(() => { + if (!diffEnvs) return []; + const list: { env_name: string; old: any; new: any; checkedValue?: any }[] = + []; + Object.keys(diffEnvs.old).forEach((key) => { + list.push({ + env_name: key, + old: diffEnvs.old[key], + new: diffEnvs.new[key], + checkedValue: checkedEnvs[key] + }); + }); + return list; + }, [diffEnvs, checkedEnvs]); + + const onOpenChange = (isOpen: boolean) => { + setOpen(isOpen); + }; + + const handleOnSave = () => { + onSave(checkedEnvs); + setOpen(false); + }; + return ( + + + + + setOpen(false)}> + {intl.formatMessage({ id: 'common.button.close' })} + + + {intl.formatMessage({ id: 'common.button.confirm' })} + + + + } + open={open} + getPopupContainer={(triggerNode) => containerRef.current || triggerNode} + onOpenChange={onOpenChange} trigger={'click'} styles={{ + root: { + left: 0, + right: 0, + width: '100%' + }, container: { width: '100%' } }} > - onToggle(!open)} - style={{ marginBlock: 16, cursor: 'pointer' }} - icon={} - type="warning" - showIcon - title={'override envs'} - > + + } + type="warning" + showIcon + title={'有环境变量冲突,点击查看详情'} + > + ); }; diff --git a/src/pages/llmodels/hooks/use-compare-envs.ts b/src/pages/llmodels/hooks/use-compare-envs.ts index 33615db0..3679d051 100644 --- a/src/pages/llmodels/hooks/use-compare-envs.ts +++ b/src/pages/llmodels/hooks/use-compare-envs.ts @@ -37,16 +37,11 @@ export default function useCompareEnvs() { } }; - const handleToggleTips = () => { - setOpenTips(!openTips); - }; - return { openTips, diffEnvs, handleOpenTips, handleCloseTips, - handleCompareEnvs, - handleToggleTips + handleCompareEnvs }; } diff --git a/src/pages/maas-provider/config/index.ts b/src/pages/maas-provider/config/index.ts index 92341658..e4232ec3 100644 --- a/src/pages/maas-provider/config/index.ts +++ b/src/pages/maas-provider/config/index.ts @@ -32,7 +32,7 @@ export const rowActionList = [ }, { key: 'registerRoute', - label: 'providers.table.registerRoute', + label: 'routes.button.add', icon: icons.CaptivePortal }, { diff --git a/src/pages/playground/hooks/use-chat-completion.ts b/src/pages/playground/hooks/use-chat-completion.ts index cb479149..dafa587b 100644 --- a/src/pages/playground/hooks/use-chat-completion.ts +++ b/src/pages/playground/hooks/use-chat-completion.ts @@ -61,6 +61,7 @@ export default function useChatCompletion( _.get(chunk, 'choices.0.delta.content', '') === null ? '' : _.get(chunk, 'choices.0.delta.content', ''); + console.log('deltaContent:', deltaContent); reasonContentRef.current = reasonContentRef.current + deltaReasoningContent; contentRef.current = contentRef.current + deltaContent;