xinference 0.12.3__py3-none-any.whl → 0.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xinference might be problematic. Click here for more details.

Files changed (71) hide show
  1. xinference/_version.py +3 -3
  2. xinference/api/restful_api.py +6 -6
  3. xinference/client/restful/restful_client.py +0 -2
  4. xinference/core/model.py +21 -4
  5. xinference/core/scheduler.py +2 -0
  6. xinference/core/worker.py +74 -45
  7. xinference/deploy/utils.py +33 -2
  8. xinference/model/llm/__init__.py +5 -0
  9. xinference/model/llm/llm_family.json +240 -1
  10. xinference/model/llm/llm_family.py +32 -8
  11. xinference/model/llm/llm_family_modelscope.json +192 -0
  12. xinference/model/llm/mlx/__init__.py +13 -0
  13. xinference/model/llm/mlx/core.py +408 -0
  14. xinference/model/llm/pytorch/chatglm.py +2 -9
  15. xinference/model/llm/pytorch/cogvlm2.py +206 -21
  16. xinference/model/llm/pytorch/core.py +213 -40
  17. xinference/model/llm/pytorch/glm4v.py +171 -15
  18. xinference/model/llm/pytorch/qwen_vl.py +168 -7
  19. xinference/model/llm/pytorch/utils.py +53 -62
  20. xinference/model/llm/utils.py +24 -5
  21. xinference/model/rerank/core.py +5 -0
  22. xinference/thirdparty/deepseek_vl/serve/__init__.py +13 -0
  23. xinference/thirdparty/deepseek_vl/serve/app_deepseek.py +510 -0
  24. xinference/thirdparty/deepseek_vl/serve/app_modules/__init__.py +13 -0
  25. xinference/thirdparty/deepseek_vl/serve/app_modules/gradio_utils.py +94 -0
  26. xinference/thirdparty/deepseek_vl/serve/app_modules/overwrites.py +81 -0
  27. xinference/thirdparty/deepseek_vl/serve/app_modules/presets.py +96 -0
  28. xinference/thirdparty/deepseek_vl/serve/app_modules/utils.py +229 -0
  29. xinference/thirdparty/deepseek_vl/serve/inference.py +170 -0
  30. xinference/web/ui/build/asset-manifest.json +3 -3
  31. xinference/web/ui/build/index.html +1 -1
  32. xinference/web/ui/build/static/js/main.0fb6f3ab.js +3 -0
  33. xinference/web/ui/build/static/js/main.0fb6f3ab.js.map +1 -0
  34. xinference/web/ui/node_modules/.cache/babel-loader/0f6b391abec76271137faad13a3793fe7acc1024e8cd2269c147b653ecd3a73b.json +1 -0
  35. xinference/web/ui/node_modules/.cache/babel-loader/1130403f9e46f5738a23b45ac59b57de8f360c908c713e2c0670c2cce9bd367a.json +1 -0
  36. xinference/web/ui/node_modules/.cache/babel-loader/1444c41a4d04494f1cbc2d8c1537df107b451cb569cb2c1fbf5159f3a4841a5f.json +1 -0
  37. xinference/web/ui/node_modules/.cache/babel-loader/2c63090c842376cdd368c3ded88a333ef40d94785747651343040a6f7872a223.json +1 -0
  38. xinference/web/ui/node_modules/.cache/babel-loader/30a0c79d8025d6441eb75b2df5bc2750a14f30119c869ef02570d294dff65c2f.json +1 -0
  39. xinference/web/ui/node_modules/.cache/babel-loader/40486e655c3c5801f087e2cf206c0b5511aaa0dfdba78046b7181bf9c17e54c5.json +1 -0
  40. xinference/web/ui/node_modules/.cache/babel-loader/6450605fac003812485f6251b9f0caafbf2e5bfc3bbe2f000050d9e2fdb8dcd3.json +1 -0
  41. xinference/web/ui/node_modules/.cache/babel-loader/8a9742ddd8ba8546ef42dc14caca443f2b4524fabed7bf269e0eff3b7b64ee7d.json +1 -0
  42. xinference/web/ui/node_modules/.cache/babel-loader/9375a35b05d56989b2755bf72161fa707c92f28569d33765a75f91a568fda6e9.json +1 -0
  43. xinference/web/ui/node_modules/.cache/babel-loader/b5507cd57f16a3a230aa0128e39fe103e928de139ea29e2679e4c64dcbba3b3a.json +1 -0
  44. xinference/web/ui/node_modules/.cache/babel-loader/d6c643278a0b28320e6f33a60f5fb64c053997cbdc39a60e53ccc574688ade9e.json +1 -0
  45. xinference/web/ui/node_modules/.cache/babel-loader/d779b915f83f9c7b5a72515b6932fdd114f1822cef90ae01cc0d12bca59abc2d.json +1 -0
  46. xinference/web/ui/node_modules/.cache/babel-loader/d87824cb266194447a9c0c69ebab2d507bfc3e3148976173760d18c035e9dd26.json +1 -0
  47. xinference/web/ui/node_modules/.cache/babel-loader/d93730e2b5d7e8c957b4d0965d2ed1dac9045a649adbd47c220d11f255d4b1e0.json +1 -0
  48. xinference/web/ui/node_modules/.cache/babel-loader/e656dc00b4d8b387f0a81ba8fc558767df1601c66369e2eb86a5ef27cf080572.json +1 -0
  49. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/METADATA +4 -1
  50. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/RECORD +55 -44
  51. xinference/web/ui/build/static/js/main.77dd47c3.js +0 -3
  52. xinference/web/ui/build/static/js/main.77dd47c3.js.map +0 -1
  53. xinference/web/ui/node_modules/.cache/babel-loader/0cd591866aa345566e0b63fb51ff2043e163a770af6fdc2f3bad395d046353e2.json +0 -1
  54. xinference/web/ui/node_modules/.cache/babel-loader/37c1476717199863bbba1530e3513a9368f8f73001b75b4a85c2075956308027.json +0 -1
  55. xinference/web/ui/node_modules/.cache/babel-loader/3da7d55e87882a4af923e187b1351160e34ca102f589086439c15131a227fb6e.json +0 -1
  56. xinference/web/ui/node_modules/.cache/babel-loader/3fa1f69162f9c6dc0f6a6e21b64d49d6b8e6fa8dfa59a82cf829931c5f97d99f.json +0 -1
  57. xinference/web/ui/node_modules/.cache/babel-loader/46edc1fe657dfedb2e673148332bb442c6eb98f09f2592c389209e376510afa5.json +0 -1
  58. xinference/web/ui/node_modules/.cache/babel-loader/62e257ed9016471035fa1a7da57c9e2a4250974ed566b4d1295873d747c68eb2.json +0 -1
  59. xinference/web/ui/node_modules/.cache/babel-loader/72bcecc71c5267250edeb89608859d449b586f13ff9923a5e70e7172976ec403.json +0 -1
  60. xinference/web/ui/node_modules/.cache/babel-loader/82db357f3fd5b32215d747ee593f69ff06c95ad6cde37f71a96c8290aaab64c0.json +0 -1
  61. xinference/web/ui/node_modules/.cache/babel-loader/935efd2867664c58230378fdf2ff1ea85e58d853b7214014e20dfbca8dab7b05.json +0 -1
  62. xinference/web/ui/node_modules/.cache/babel-loader/bc6da27195ec4607bb472bf61f97c928ad4966fa64e4c2247661bedb7400abba.json +0 -1
  63. xinference/web/ui/node_modules/.cache/babel-loader/c2abe75f04ad82fba68f35ed9cbe2e287762c876684fddccccfa73f739489b65.json +0 -1
  64. xinference/web/ui/node_modules/.cache/babel-loader/e606671420d2937102c3c34b4b04056c11736408c1d3347b8cf42dfe61fb394b.json +0 -1
  65. xinference/web/ui/node_modules/.cache/babel-loader/f118f99c22b713c678c1209c4e1dd43fe86e3f6e801a4c0c35d3bbf41fd05fe6.json +0 -1
  66. xinference/web/ui/node_modules/.cache/babel-loader/f51bf63ddaa7afd125ef2254a105789333eecc1c94fdf5157a9b88ef7ad0a5bd.json +0 -1
  67. /xinference/web/ui/build/static/js/{main.77dd47c3.js.LICENSE.txt → main.0fb6f3ab.js.LICENSE.txt} +0 -0
  68. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/LICENSE +0 -0
  69. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/WHEEL +0 -0
  70. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/entry_points.txt +0 -0
  71. {xinference-0.12.3.dist-info → xinference-0.13.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ {"ast":null,"code":"import _defineProperty from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{AddBoxOutlined,ChevronRightOutlined,DnsOutlined,GitHub,RocketLaunchOutlined,SmartToyOutlined}from'@mui/icons-material';import{Box,Drawer,List,ListItem,ListItemButton,ListItemIcon,ListItemText,Typography,useTheme}from'@mui/material';import{useEffect,useState}from'react';import{useLocation,useNavigate}from'react-router-dom';import icon from'../media/icon.webp';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var navItems=[{text:'Launch Model',icon:/*#__PURE__*/_jsx(RocketLaunchOutlined,{})},{text:'Running Models',icon:/*#__PURE__*/_jsx(SmartToyOutlined,{})},{text:'Register Model',icon:/*#__PURE__*/_jsx(AddBoxOutlined,{})},{text:'Cluster Information',icon:/*#__PURE__*/_jsx(DnsOutlined,{})},{text:'Contact Us',icon:/*#__PURE__*/_jsx(GitHub,{})}];var MenuSide=function MenuSide(){var theme=useTheme();var _useLocation=useLocation(),pathname=_useLocation.pathname;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),active=_useState2[0],setActive=_useState2[1];var navigate=useNavigate();var _useState3=useState(\"\".concat(Math.min(Math.max(window.innerWidth*0.2,287),320),\"px\")),_useState4=_slicedToArray(_useState3,2),drawerWidth=_useState4[0],setDrawerWidth=_useState4[1];useEffect(function(){setActive(pathname.substring(1));},[pathname]);useEffect(function(){var screenWidth=window.innerWidth;var maxDrawerWidth=Math.min(Math.max(screenWidth*0.2,287),320);setDrawerWidth(\"\".concat(maxDrawerWidth,\"px\"));// Update the drawer width on window resize\nvar handleResize=function handleResize(){var newScreenWidth=window.innerWidth;var newMaxDrawerWidth=Math.min(Math.max(newScreenWidth*0.2,287),320);setDrawerWidth(\"\".concat(newMaxDrawerWidth,\"px\"));};window.addEventListener('resize',handleResize);return function(){window.removeEventListener('resize',handleResize);};},[]);return/*#__PURE__*/_jsxs(Drawer,{variant:\"permanent\",sx:_objectSpread(_objectSpread({width:drawerWidth},theme.mixins.toolbar),{},_defineProperty({flexShrink:0},\"& .MuiDrawer-paper\",{width:drawerWidth,boxSizing:'border-box'})),children:[/*#__PURE__*/_jsx(Box,{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",width:\"100%\",children:/*#__PURE__*/_jsx(Box,{display:\"flex\",m:\"2rem 1rem 0rem 1rem\",width:\"217px\",children:/*#__PURE__*/_jsxs(Box,{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",textTransform:\"none\",children:[/*#__PURE__*/_jsx(Box,{component:\"img\",alt:\"profile\",src:icon,height:\"60px\",width:\"60px\",borderRadius:\"50%\",sx:{objectFit:'cover',mr:1.5}}),/*#__PURE__*/_jsx(Box,{textAlign:\"left\",children:/*#__PURE__*/_jsx(Typography,{fontWeight:\"bold\",fontSize:\"1.7rem\",children:'Xinference'})})]})})}),/*#__PURE__*/_jsx(Box,{children:/*#__PURE__*/_jsxs(Box,{width:\"100%\",children:[/*#__PURE__*/_jsx(Box,{m:\"1.5rem 2rem 2rem 3rem\"}),/*#__PURE__*/_jsx(List,{children:navItems.map(function(_ref){var text=_ref.text,icon=_ref.icon;if(!icon){return/*#__PURE__*/_jsx(Typography,{sx:{m:'2.25rem 0 1rem 3rem'},children:text},text);}var link=text.toLowerCase().replace(' ','_');return/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsxs(ListItemButton,{onClick:function onClick(){if(link==='contact_us'){window.open('https://github.com/xorbitsai/inference','_blank','noreferrer');}else if(link==='launch_model'){sessionStorage.setItem('modelType','/launch_model/llm');navigate('/launch_model/llm');setActive(link);sessionStorage.setItem('lastActiveUrl',link);console.log(active);}else if(link==='cluster_information'){navigate('/cluster_info');setActive(link);}else if(link==='running_models'){navigate('/running_models/LLM');sessionStorage.setItem('runningModelType','/running_models/LLM');setActive(link);sessionStorage.setItem('lastActiveUrl',link);console.log(active);}else if(link==='register_model'){sessionStorage.setItem('registerModelType','/register_model/llm');navigate('/register_model/llm');setActive(link);sessionStorage.setItem('lastActiveUrl',link);console.log(active);}else{navigate(\"/\".concat(link));setActive(link);console.log(active);}},children:[/*#__PURE__*/_jsx(ListItemIcon,{sx:{ml:'2rem'},children:icon}),/*#__PURE__*/_jsx(ListItemText,{primary:text}),/*#__PURE__*/_jsx(ChevronRightOutlined,{sx:{ml:'auto'}})]})},text);})})]})})]});};export default MenuSide;","map":{"version":3,"names":["AddBoxOutlined","ChevronRightOutlined","DnsOutlined","GitHub","RocketLaunchOutlined","SmartToyOutlined","Box","Drawer","List","ListItem","ListItemButton","ListItemIcon","ListItemText","Typography","useTheme","useEffect","useState","useLocation","useNavigate","icon","jsx","_jsx","jsxs","_jsxs","navItems","text","MenuSide","theme","_useLocation","pathname","_useState","_useState2","_slicedToArray","active","setActive","navigate","_useState3","concat","Math","min","max","window","innerWidth","_useState4","drawerWidth","setDrawerWidth","substring","screenWidth","maxDrawerWidth","handleResize","newScreenWidth","newMaxDrawerWidth","addEventListener","removeEventListener","variant","sx","_objectSpread","width","mixins","toolbar","_defineProperty","flexShrink","boxSizing","children","display","justifyContent","alignItems","m","textTransform","component","alt","src","height","borderRadius","objectFit","mr","textAlign","fontWeight","fontSize","map","_ref","link","toLowerCase","replace","onClick","open","sessionStorage","setItem","console","log","ml","primary"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/components/MenuSide.js"],"sourcesContent":["import {\n AddBoxOutlined,\n ChevronRightOutlined,\n DnsOutlined,\n GitHub,\n RocketLaunchOutlined,\n SmartToyOutlined,\n} from '@mui/icons-material'\nimport {\n Box,\n Drawer,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport icon from '../media/icon.webp'\n\nconst navItems = [\n {\n text: 'Launch Model',\n icon: <RocketLaunchOutlined />,\n },\n {\n text: 'Running Models',\n icon: <SmartToyOutlined />,\n },\n {\n text: 'Register Model',\n icon: <AddBoxOutlined />,\n },\n {\n text: 'Cluster Information',\n icon: <DnsOutlined />,\n },\n {\n text: 'Contact Us',\n icon: <GitHub />,\n },\n]\n\nconst MenuSide = () => {\n const theme = useTheme()\n const { pathname } = useLocation()\n const [active, setActive] = useState('')\n const navigate = useNavigate()\n const [drawerWidth, setDrawerWidth] = useState(\n `${Math.min(Math.max(window.innerWidth * 0.2, 287), 320)}px`\n )\n\n useEffect(() => {\n setActive(pathname.substring(1))\n }, [pathname])\n\n useEffect(() => {\n const screenWidth = window.innerWidth\n const maxDrawerWidth = Math.min(Math.max(screenWidth * 0.2, 287), 320)\n setDrawerWidth(`${maxDrawerWidth}px`)\n\n // Update the drawer width on window resize\n const handleResize = () => {\n const newScreenWidth = window.innerWidth\n const newMaxDrawerWidth = Math.min(\n Math.max(newScreenWidth * 0.2, 287),\n 320\n )\n setDrawerWidth(`${newMaxDrawerWidth}px`)\n }\n\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n return (\n <Drawer\n variant=\"permanent\"\n sx={{\n width: drawerWidth,\n ...theme.mixins.toolbar,\n flexShrink: 0,\n [`& .MuiDrawer-paper`]: {\n width: drawerWidth,\n boxSizing: 'border-box',\n },\n }}\n >\n {/* Title */}\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n width=\"100%\"\n >\n <Box display=\"flex\" m=\"2rem 1rem 0rem 1rem\" width=\"217px\">\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n textTransform=\"none\"\n >\n <Box\n component=\"img\"\n alt=\"profile\"\n src={icon}\n height=\"60px\"\n width=\"60px\"\n borderRadius=\"50%\"\n sx={{ objectFit: 'cover', mr: 1.5 }}\n />\n <Box textAlign=\"left\">\n <Typography fontWeight=\"bold\" fontSize=\"1.7rem\">\n {'Xinference'}\n </Typography>\n </Box>\n </Box>\n </Box>\n </Box>\n\n <Box>\n <Box width=\"100%\">\n <Box m=\"1.5rem 2rem 2rem 3rem\"></Box>\n <List>\n {navItems.map(({ text, icon }) => {\n if (!icon) {\n return (\n <Typography key={text} sx={{ m: '2.25rem 0 1rem 3rem' }}>\n {text}\n </Typography>\n )\n }\n\n const link = text.toLowerCase().replace(' ', '_')\n\n return (\n <ListItem key={text}>\n <ListItemButton\n onClick={() => {\n if (link === 'contact_us') {\n window.open(\n 'https://github.com/xorbitsai/inference',\n '_blank',\n 'noreferrer'\n )\n } else if (link === 'launch_model') {\n sessionStorage.setItem('modelType', '/launch_model/llm')\n navigate('/launch_model/llm')\n setActive(link)\n sessionStorage.setItem('lastActiveUrl', link)\n console.log(active)\n } else if (link === 'cluster_information') {\n navigate('/cluster_info')\n setActive(link)\n } else if (link === 'running_models') {\n navigate('/running_models/LLM')\n sessionStorage.setItem(\n 'runningModelType',\n '/running_models/LLM'\n )\n setActive(link)\n sessionStorage.setItem('lastActiveUrl', link)\n console.log(active)\n } else if (link === 'register_model') {\n sessionStorage.setItem(\n 'registerModelType',\n '/register_model/llm'\n )\n navigate('/register_model/llm')\n setActive(link)\n sessionStorage.setItem('lastActiveUrl', link)\n console.log(active)\n } else {\n navigate(`/${link}`)\n setActive(link)\n console.log(active)\n }\n }}\n >\n <ListItemIcon\n sx={{\n ml: '2rem',\n }}\n >\n {icon}\n </ListItemIcon>\n <ListItemText primary={text} />\n <ChevronRightOutlined sx={{ ml: 'auto' }} />\n </ListItemButton>\n </ListItem>\n )\n })}\n </List>\n </Box>\n </Box>\n </Drawer>\n )\n}\n\nexport default MenuSide\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -0,0 +1 @@
1
+ {"ast":null,"code":"import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import DeleteOutlineOutlinedIcon from'@mui/icons-material/DeleteOutlineOutlined';import OpenInBrowserOutlinedIcon from'@mui/icons-material/OpenInBrowserOutlined';import{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,Stack,Tab}from'@mui/material';import{DataGrid}from'@mui/x-data-grid';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import fetcher from'../../components/fetcher';import fetchWrapper from'../../components/fetchWrapper';import Title from'../../components/Title';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var RunningModels=function RunningModels(){var _React$useState=React.useState(sessionStorage.getItem('runningModelType')),_React$useState2=_slicedToArray(_React$useState,2),tabValue=_React$useState2[0],setTabValue=_React$useState2[1];var _useState=useState([]),_useState2=_slicedToArray(_useState,2),llmData=_useState2[0],setLlmData=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),embeddingModelData=_useState4[0],setEmbeddingModelData=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),imageModelData=_useState6[0],setImageModelData=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),audioModelData=_useState8[0],setAudioModelData=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),rerankModelData=_useState10[0],setRerankModelData=_useState10[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel,setIsUpdatingModel=_useContext2.setIsUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();var endPoint=useContext(ApiContext).endPoint;var handleTabChange=function handleTabChange(event,newValue){setTabValue(newValue);navigate(newValue);sessionStorage.setItem('runningModelType',newValue);};var update=function update(isCallingApi){if(cookie.token===''||cookie.token===undefined){navigate('/login',{replace:true});return;}if(cookie.token!=='no_auth'&&!sessionStorage.getItem('token')){navigate('/login',{replace:true});return;}if(isCallingApi){setLlmData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setEmbeddingModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setAudioModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setImageModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setRerankModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);}else{setIsUpdatingModel(true);fetchWrapper.get('/v1/models').then(function(response){var newLlmData=[];var newEmbeddingModelData=[];var newImageModelData=[];var newAudioModelData=[];var newRerankModelData=[];response.data.forEach(function(model){var newValue=_objectSpread(_objectSpread({},model),{},{id:model.id,url:model.id});if(newValue.model_type==='LLM'){newLlmData.push(newValue);}else if(newValue.model_type==='embedding'){newEmbeddingModelData.push(newValue);}else if(newValue.model_type==='audio'){newAudioModelData.push(newValue);}else if(newValue.model_type==='image'){newImageModelData.push(newValue);}else if(newValue.model_type==='rerank'){newRerankModelData.push(newValue);}});setLlmData(newLlmData);setEmbeddingModelData(newEmbeddingModelData);setAudioModelData(newAudioModelData);setImageModelData(newImageModelData);setRerankModelData(newRerankModelData);setIsUpdatingModel(false);}).catch(function(error){console.error('Error:',error);setIsUpdatingModel(false);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});}};useEffect(function(){update(isCallingApi);// eslint-disable-next-line\n},[isCallingApi,cookie.token]);var llmColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'model_size_in_billions',headerName:'Size',flex:1},{field:'quantization',headerName:'Quantization',flex:1},{field:'replica',headerName:'Replica',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref){var row=_ref.row;var url=row.url;var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var gradioUrl=\"\".concat(endPoint,\"/v1/ui/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(\"button\",{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_name:row.model_family,model_size_in_billions:row.model_size_in_billions,model_format:row.model_format,quantization:row.quantization,context_length:row.context_length,model_ability:row.model_ability,model_description:row.model_description,model_lang:row.model_lang})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var embeddingModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'replica',headerName:'Replica',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref2){var row=_ref2.row;var url=row.url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsx(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})});}}];var imageModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref3){var row=_ref3.row;//这个url指的是model_uid\nvar url=row.url;console.log('url: '+url);var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var gradioUrl=\"\".concat(endPoint,\"/v1/ui/images/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(\"button\",{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_family:row.model_family,model_id:row.id,controlnet:row.controlnet,model_revision:row.model_revision,model_name:row.model_name})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var audioModelColumns=embeddingModelColumns;var rerankModelColumns=embeddingModelColumns;var dataGridStyle={'& .MuiDataGrid-cell':{borderBottom:'none'},'& .MuiDataGrid-columnHeaders':{borderBottom:'none'},'& .MuiDataGrid-columnHeaderTitle':{fontWeight:'bold'},'& .MuiDataGrid-virtualScroller':{overflowX:'visible !important',overflow:'visible'},'& .MuiDataGrid-footerContainer':{borderTop:'none'},'border-width':'0px'};var noRowsOverlay=function noRowsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:\"No Running Models\"});};var noResultsOverlay=function noResultsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:\"No Running Models Matches\"});};return/*#__PURE__*/_jsxs(Box,{sx:{height:'100%',width:'100%',padding:'20px 20px 0 20px'},children:[/*#__PURE__*/_jsx(Title,{title:\"Running Models\"}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:tabValue,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsxs(TabList,{value:tabValue,onChange:handleTabChange,\"aria-label\":\"tabs\",children:[/*#__PURE__*/_jsx(Tab,{label:\"Language Models\",value:\"/running_models/LLM\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Models\",value:\"/running_models/embedding\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank models\",value:\"/running_models/rerank\"}),/*#__PURE__*/_jsx(Tab,{label:\"Image models\",value:\"/running_models/image\"}),/*#__PURE__*/_jsx(Tab,{label:\"Audio models\",value:\"/running_models/audio\"})]})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/LLM\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:llmData,columns:llmColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/embedding\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:embeddingModelData,columns:embeddingModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/rerank\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:rerankModelData,columns:rerankModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/image\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:imageModelData,columns:imageModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/audio\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:audioModelData,columns:audioModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})})]})]});};export default RunningModels;","map":{"version":3,"names":["DeleteOutlineOutlinedIcon","OpenInBrowserOutlinedIcon","TabContext","TabList","TabPanel","Box","Stack","Tab","DataGrid","React","useContext","useEffect","useState","useCookies","useNavigate","ApiContext","ErrorMessageSnackBar","fetcher","fetchWrapper","Title","jsx","_jsx","jsxs","_jsxs","RunningModels","_React$useState","sessionStorage","getItem","_React$useState2","_slicedToArray","tabValue","setTabValue","_useState","_useState2","llmData","setLlmData","_useState3","_useState4","embeddingModelData","setEmbeddingModelData","_useState5","_useState6","imageModelData","setImageModelData","_useState7","_useState8","audioModelData","setAudioModelData","_useState9","_useState10","rerankModelData","setRerankModelData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","setIsUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","cookie","navigate","endPoint","handleTabChange","event","newValue","setItem","update","token","undefined","replace","id","url","get","then","response","newLlmData","newEmbeddingModelData","newImageModelData","newAudioModelData","newRerankModelData","data","forEach","model","_objectSpread","model_type","push","catch","error","console","status","message","llmColumns","field","headerName","flex","minWidth","sortable","filterable","disableColumnMenu","renderCell","_ref","row","openUrl","concat","closeUrl","gradioUrl","style","width","display","justifyContent","alignItems","children","title","borderWidth","backgroundColor","paddingLeft","paddingRight","onClick","method","log","headers","body","JSON","stringify","model_name","model_family","model_size_in_billions","model_format","quantization","context_length","model_ability","model_description","model_lang","json","window","open","finally","ok","m","p","borderRadius","border","borderColor","embeddingModelColumns","_ref2","imageModelColumns","_ref3","model_id","controlnet","model_revision","audioModelColumns","rerankModelColumns","dataGridStyle","borderBottom","fontWeight","overflowX","overflow","borderTop","noRowsOverlay","height","noResultsOverlay","sx","padding","value","onChange","label","rows","columns","autoHeight","slots"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/running_models/index.js"],"sourcesContent":["import DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined'\nimport OpenInBrowserOutlinedIcon from '@mui/icons-material/OpenInBrowserOutlined'\nimport { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Box, Stack, Tab } from '@mui/material'\nimport { DataGrid } from '@mui/x-data-grid'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport fetcher from '../../components/fetcher'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport Title from '../../components/Title'\n\nconst RunningModels = () => {\n const [tabValue, setTabValue] = React.useState(\n sessionStorage.getItem('runningModelType')\n )\n const [llmData, setLlmData] = useState([])\n const [embeddingModelData, setEmbeddingModelData] = useState([])\n const [imageModelData, setImageModelData] = useState([])\n const [audioModelData, setAudioModelData] = useState([])\n const [rerankModelData, setRerankModelData] = useState([])\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel, setIsUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n const endPoint = useContext(ApiContext).endPoint\n\n const handleTabChange = (event, newValue) => {\n setTabValue(newValue)\n navigate(newValue)\n sessionStorage.setItem('runningModelType', newValue)\n }\n\n const update = (isCallingApi) => {\n if (cookie.token === '' || cookie.token === undefined) {\n navigate('/login', { replace: true })\n return\n }\n if (cookie.token !== 'no_auth' && !sessionStorage.getItem('token')) {\n navigate('/login', { replace: true })\n return\n }\n if (isCallingApi) {\n setLlmData([{ id: 'Loading, do not refresh page...', url: 'IS_LOADING' }])\n setEmbeddingModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setAudioModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setImageModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setRerankModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n } else {\n setIsUpdatingModel(true)\n\n fetchWrapper\n .get('/v1/models')\n .then((response) => {\n const newLlmData = []\n const newEmbeddingModelData = []\n const newImageModelData = []\n const newAudioModelData = []\n const newRerankModelData = []\n response.data.forEach((model) => {\n let newValue = {\n ...model,\n id: model.id,\n url: model.id,\n }\n if (newValue.model_type === 'LLM') {\n newLlmData.push(newValue)\n } else if (newValue.model_type === 'embedding') {\n newEmbeddingModelData.push(newValue)\n } else if (newValue.model_type === 'audio') {\n newAudioModelData.push(newValue)\n } else if (newValue.model_type === 'image') {\n newImageModelData.push(newValue)\n } else if (newValue.model_type === 'rerank') {\n newRerankModelData.push(newValue)\n }\n })\n setLlmData(newLlmData)\n setEmbeddingModelData(newEmbeddingModelData)\n setAudioModelData(newAudioModelData)\n setImageModelData(newImageModelData)\n setRerankModelData(newRerankModelData)\n setIsUpdatingModel(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsUpdatingModel(false)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\n }\n })\n }\n }\n\n useEffect(() => {\n update(isCallingApi)\n // eslint-disable-next-line\n }, [isCallingApi, cookie.token])\n\n const llmColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'model_size_in_billions',\n headerName: 'Size',\n flex: 1,\n },\n {\n field: 'quantization',\n headerName: 'Quantization',\n flex: 1,\n },\n {\n field: 'replica',\n headerName: 'Replica',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n const gradioUrl = `${endPoint}/v1/ui/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_name: row.model_family,\n model_size_in_billions: row.model_size_in_billions,\n model_format: row.model_format,\n quantization: row.quantization,\n context_length: row.context_length,\n model_ability: row.model_ability,\n model_description: row.model_description,\n model_lang: row.model_lang,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </button>\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n\n const embeddingModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'replica',\n headerName: 'Replica',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const closeUrl = `${endPoint}/v1/models/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n const imageModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n //这个url指的是model_uid\n const url = row.url\n console.log('url: ' + url)\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n const gradioUrl = `${endPoint}/v1/ui/images/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_family: row.model_family,\n model_id: row.id,\n controlnet: row.controlnet,\n model_revision: row.model_revision,\n model_name: row.model_name,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </button>\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n const audioModelColumns = embeddingModelColumns\n const rerankModelColumns = embeddingModelColumns\n\n const dataGridStyle = {\n '& .MuiDataGrid-cell': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaderTitle': {\n fontWeight: 'bold',\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'visible !important',\n overflow: 'visible',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: 'none',\n },\n 'border-width': '0px',\n }\n\n const noRowsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n No Running Models\n </Stack>\n )\n }\n\n const noResultsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n No Running Models Matches\n </Stack>\n )\n }\n\n return (\n <Box\n sx={{\n height: '100%',\n width: '100%',\n padding: '20px 20px 0 20px',\n }}\n >\n <Title title=\"Running Models\" />\n <ErrorMessageSnackBar />\n <TabContext value={tabValue}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n value={tabValue}\n onChange={handleTabChange}\n aria-label=\"tabs\"\n >\n <Tab label=\"Language Models\" value=\"/running_models/LLM\" />\n <Tab label=\"Embedding Models\" value=\"/running_models/embedding\" />\n <Tab label=\"Rerank models\" value=\"/running_models/rerank\" />\n <Tab label=\"Image models\" value=\"/running_models/image\" />\n <Tab label=\"Audio models\" value=\"/running_models/audio\" />\n </TabList>\n </Box>\n <TabPanel value=\"/running_models/LLM\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={llmData}\n columns={llmColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/embedding\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={embeddingModelData}\n columns={embeddingModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/rerank\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={rerankModelData}\n columns={rerankModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/image\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={imageModelData}\n columns={imageModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/audio\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={audioModelData}\n columns={audioModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default RunningModels\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -0,0 +1 @@
1
+ {"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _asyncToGenerator from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,Chip,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{ApiContext}from'../../components/apiContext';import fetchWrapper from'../../components/fetchWrapper';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchModelComponent=function LaunchModelComponent(_ref){var modelType=_ref.modelType,gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];var _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState(''),_useState6=_slicedToArray(_useState5,2),status=_useState6[0],setStatus=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),completeDeleteArr=_useState8[0],setCompleteDeleteArr=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),collectionArr=_useState10[0],setCollectionArr=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),filterArr=_useState12[0],setFilterArr=_useState12[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var filter=function filter(registration){if(searchTerm!==''){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())){return false;}}if(completeDeleteArr.includes(registration.model_name)){registration.cache_status=Array.isArray(registration.cache_status)?[false]:false;}if(filterArr.length===1){if(filterArr[0]==='cached'){return registration.cache_status&&!completeDeleteArr.includes(registration.model_name);}else{return collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name);}}else if(filterArr.length>1){return registration.cache_status&&!completeDeleteArr.includes(registration.model_name)&&(collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name));}return true;};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(isCallingApi||isUpdatingModel)){_context.next=2;break;}return _context.abrupt(\"return\");case 2:try{setIsCallingApi(true);fetchWrapper.get(\"/v1/model_registrations/\".concat(modelType,\"?detailed=true\")).then(function(data){var builtinModels=data.filter(function(v){return v.is_builtin;});setRegistrationData(builtinModels);var collectionData=JSON.parse(localStorage.getItem('collectionArr'));setCollectionArr(collectionData);});}catch(error){console.error('Error:',error);}finally{setIsCallingApi(false);}case 3:case\"end\":return _context.stop();}},_callee);}));return function update(){return _ref2.apply(this,arguments);};}();useEffect(function(){update();},[]);var getCollectionArr=function getCollectionArr(data){setCollectionArr(data);};var handleChangeFilter=function handleChangeFilter(value){setStatus(value);var arr=[].concat(_toConsumableArray(filterArr.filter(function(item){return item!==value;})),[value]);setFilterArr(arr);};var handleDeleteChip=function handleDeleteChip(item){setFilterArr(filterArr.filter(function(subItem){return subItem!==item;}));if(item===status)setStatus('');};return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:'150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{sx:{marginTop:2,minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:\"Status\",onChange:function onChange(e){return handleChangeFilter(e.target.value);},value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:\"cached\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"favorite\",children:\"favorite\"})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for \".concat(modelType,\" model name\"),value:searchTerm,onChange:function onChange(e){return setSearchTerm(e.target.value);},size:\"small\",hotkey:\"/\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:{margin:'0 0 30px 30px'},children:filterArr.map(function(item,index){return/*#__PURE__*/_jsx(Chip,{label:item,variant:\"outlined\",size:\"small\",color:\"primary\",style:{marginRight:10},onDelete:function onDelete(){return handleDeleteChip(item);}},index);})}),/*#__PURE__*/_jsx(\"div\",{style:{display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'},children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,modelType:modelType,gpuAvailable:gpuAvailable,onHandleCompleteDelete:handleCompleteDelete,onGetCollectionArr:getCollectionArr},filteredRegistration.model_name);})})]});};export default LaunchModelComponent;","map":{"version":3,"names":["Box","Chip","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","ApiContext","fetchWrapper","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","LaunchModelComponent","_ref","modelType","gpuAvailable","endPoint","_useState","_useState2","_slicedToArray","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","status","setStatus","_useState7","_useState8","completeDeleteArr","setCompleteDeleteArr","_useState9","_useState10","collectionArr","setCollectionArr","_useState11","_useState12","filterArr","setFilterArr","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","filter","registration","modelName","model_name","toLowerCase","includes","cache_status","Array","isArray","length","handleCompleteDelete","concat","_toConsumableArray","update","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","get","then","data","builtinModels","v","is_builtin","collectionData","JSON","parse","localStorage","getItem","error","console","stop","apply","arguments","getCollectionArr","handleChangeFilter","value","arr","item","handleDeleteChip","subItem","m","children","style","display","gridTemplateColumns","columnGap","margin","sx","marginTop","minWidth","size","id","labelId","label","onChange","e","target","width","variant","type","hotkey","map","index","color","marginRight","onDelete","paddingLeft","gridGap","filteredRegistration","url","modelData","onHandleCompleteDelete","onGetCollectionArr"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/LaunchModelComponent.js"],"sourcesContent":["import {\n Box,\n Chip,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n} from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst LaunchModelComponent = ({ modelType, gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const [registrationData, setRegistrationData] = useState([])\n const [searchTerm, setSearchTerm] = useState('')\n const [status, setStatus] = useState('')\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n const [collectionArr, setCollectionArr] = useState([])\n const [filterArr, setFilterArr] = useState([])\n\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n\n const filter = (registration) => {\n if (searchTerm !== '') {\n if (!registration || typeof searchTerm !== 'string') return false\n const modelName = registration.model_name\n ? registration.model_name.toLowerCase()\n : ''\n if (!modelName.includes(searchTerm.toLowerCase())) {\n return false\n }\n }\n\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.cache_status = Array.isArray(registration.cache_status)\n ? [false]\n : false\n }\n\n if (filterArr.length === 1) {\n if (filterArr[0] === 'cached') {\n return (\n registration.cache_status &&\n !completeDeleteArr.includes(registration.model_name)\n )\n } else {\n return collectionArr?.includes(registration.model_name)\n }\n } else if (filterArr.length > 1) {\n return (\n registration.cache_status &&\n !completeDeleteArr.includes(registration.model_name) &&\n collectionArr?.includes(registration.model_name)\n )\n }\n\n return true\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = async () => {\n if (isCallingApi || isUpdatingModel) return\n\n try {\n setIsCallingApi(true)\n\n fetchWrapper\n .get(`/v1/model_registrations/${modelType}?detailed=true`)\n .then((data) => {\n const builtinModels = data.filter((v) => {\n return v.is_builtin\n })\n setRegistrationData(builtinModels)\n const collectionData = JSON.parse(\n localStorage.getItem('collectionArr')\n )\n setCollectionArr(collectionData)\n })\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [])\n\n const getCollectionArr = (data) => {\n setCollectionArr(data)\n }\n\n const handleChangeFilter = (value) => {\n setStatus(value)\n const arr = [\n ...filterArr.filter((item) => {\n return item !== value\n }),\n value,\n ]\n setFilterArr(arr)\n }\n\n const handleDeleteChip = (item) => {\n setFilterArr(\n filterArr.filter((subItem) => {\n return subItem !== item\n })\n )\n\n if (item === status) setStatus('')\n }\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl sx={{ marginTop: 2, minWidth: 120 }} size=\"small\">\n <InputLabel id=\"select-status\">Status</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label=\"Status\"\n onChange={(e) => handleChangeFilter(e.target.value)}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"cached\">cached</MenuItem>\n <MenuItem value=\"favorite\">favorite</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label={`Search for ${modelType} model name`}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={{ margin: '0 0 30px 30px' }}>\n {filterArr.map((item, index) => (\n <Chip\n key={index}\n label={item}\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n style={{ marginRight: 10 }}\n onDelete={() => handleDeleteChip(item)}\n />\n ))}\n </div>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n gridGap: '2rem 0rem',\n }}\n >\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n modelType={modelType}\n gpuAvailable={gpuAvailable}\n onHandleCompleteDelete={handleCompleteDelete}\n onGetCollectionArr={getCollectionArr}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchModelComponent\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}