fix: open model in playground

This commit is contained in:
jialin
2026-02-03 18:21:08 +08:00
parent 134827a0f7
commit 46969702a8
6 changed files with 51 additions and 41 deletions
@@ -41,12 +41,10 @@ import {
import {
InstanceRealtimeLogStatus,
modelCategories,
modelCategoriesMap,
modelSourceMap
} from '../config';
import {
ButtonList,
categoryToPathMap,
modalConfig,
sourceOptions
} from '../config/button-actions';
@@ -351,26 +349,6 @@ const Models: React.FC<ModelsProps> = ({
});
};
const handleOpenPlayGround = (row: any) => {
for (const [category, path] of Object.entries(categoryToPathMap)) {
if (
row.categories?.includes(category) &&
[
modelCategoriesMap.text_to_speech,
modelCategoriesMap.speech_to_text
].includes(category)
) {
navigate(`${path}&model=${row.name}`);
return;
}
if (row.categories?.includes(category)) {
navigate(`${path}?model=${row.name}`);
return;
}
}
navigate(`/playground/chat?model=${row.name}`);
};
const handleViewLogs = async (row: any) => {
try {
setCurrentInstance({
@@ -445,9 +423,6 @@ const Models: React.FC<ModelsProps> = ({
if (val === 'edit') {
handleEdit(row);
}
if (val === 'chat') {
handleOpenPlayGround(row);
}
if (val === 'delete') {
handleDelete(row);
}
@@ -39,16 +39,6 @@ export const ActionList: ActionItem[] = [
key: 'edit',
icon: icons.EditOutlined
},
// {
// label: 'common.button.detail',
// key: 'details',
// icon: icons.FileTextOutlined
// },
{
label: 'models.openinplayground',
key: 'chat',
icon: icons.ExperimentOutlined
},
{
label: 'common.button.start',
key: 'start',
@@ -59,11 +49,6 @@ export const ActionList: ActionItem[] = [
key: 'api',
icon: icons.ApiOutlined
},
// {
// label: 'models.button.accessSettings',
// key: 'accessControl',
// icon: icons.Permission
// },
{
label: 'common.button.stop',
key: 'stop',
+5
View File
@@ -24,6 +24,11 @@ export const rowActionList = [
label: 'common.button.edit',
icon: icons.EditOutlined
},
{
label: 'models.openinplayground',
key: 'chat',
icon: icons.ExperimentOutlined
},
{
label: 'models.button.accessSettings',
key: 'accessControl',
@@ -0,0 +1,32 @@
import { useNavigate } from '@umijs/max';
import { modelCategoriesMap } from '../../llmodels/config';
import { categoryToPathMap } from '../../llmodels/config/button-actions';
const useOpenPlayground = () => {
const navigate = useNavigate();
const handleOpenPlayGround = (row: any) => {
for (const [category, path] of Object.entries(categoryToPathMap)) {
if (
row.categories?.includes(category) &&
[
modelCategoriesMap.text_to_speech,
modelCategoriesMap.speech_to_text
].includes(category)
) {
navigate(`${path}&model=${row.name}`);
return;
}
if (row.categories?.includes(category)) {
navigate(`${path}?model=${row.name}`);
return;
}
}
navigate(`/playground/chat?model=${row.name}`);
};
return {
handleOpenPlayGround
};
};
export default useOpenPlayground;
@@ -16,6 +16,15 @@ const useAccessColumns = (
): SealColumnProps[] => {
const intl = useIntl();
const filterActions = (record: RouteItem) => {
return rowActionList.filter((action) => {
if (action.key === 'chat') {
return record.ready_targets > 0;
}
return true;
});
};
return useMemo(() => {
return [
{
@@ -59,7 +68,7 @@ const useAccessColumns = (
span: 4,
render: (value: string, record: RouteItem) => (
<DropdownButtons
items={rowActionList}
items={filterActions(record)}
onSelect={(val) => handleSelect(val, record)}
></DropdownButtons>
)
+4
View File
@@ -36,6 +36,7 @@ import RouteTargets from './components/route-targets';
import { FormData, RouteItem as ListItem } from './config/types';
import useAccessControl from './hooks/use-access-control';
import useCreateRoute from './hooks/use-create-route';
import useOpenPlayground from './hooks/use-open-playground';
import useRoutesColumns from './hooks/use-routes-columns';
import useTargetSourceModels from './hooks/use-target-source-models';
@@ -73,6 +74,7 @@ const ModelRoutes: React.FC = () => {
openAccessControlModalStatus
} = useAccessControl();
const { sourceModels, fetchSourceModels } = useTargetSourceModels();
const { handleOpenPlayGround } = useOpenPlayground();
const [modelList, setModelsList] = useState<Global.BaseOption<number>[]>([]);
useEffect(() => {
@@ -145,6 +147,8 @@ const ModelRoutes: React.FC = () => {
intl.formatMessage({ id: 'models.button.accessSettings' }),
row
);
} else if (val === 'chat') {
handleOpenPlayGround(row);
}
});