xinference 1.8.1rc1__py3-none-any.whl → 1.9.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.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +2 -1
- xinference/core/model.py +5 -0
- xinference/core/supervisor.py +2 -3
- xinference/core/worker.py +3 -4
- xinference/deploy/local.py +5 -0
- xinference/deploy/worker.py +6 -0
- xinference/model/core.py +3 -0
- xinference/model/embedding/sentence_transformers/core.py +3 -4
- xinference/model/embedding/vllm/core.py +4 -3
- xinference/model/image/model_spec.json +69 -0
- xinference/model/image/stable_diffusion/core.py +22 -0
- xinference/model/llm/cache_manager.py +17 -3
- xinference/model/llm/harmony.py +245 -0
- xinference/model/llm/llm_family.json +293 -8
- xinference/model/llm/llm_family.py +1 -1
- xinference/model/llm/sglang/core.py +108 -5
- xinference/model/llm/transformers/core.py +15 -7
- xinference/model/llm/transformers/gemma3.py +1 -1
- xinference/model/llm/transformers/gpt_oss.py +91 -0
- xinference/model/llm/transformers/multimodal/core.py +1 -1
- xinference/model/llm/transformers/multimodal/gemma3.py +1 -1
- xinference/model/llm/transformers/multimodal/glm4_1v.py +2 -2
- xinference/model/llm/transformers/multimodal/ovis2.py +1 -1
- xinference/model/llm/transformers/multimodal/qwen-omni.py +7 -8
- xinference/model/llm/transformers/multimodal/qwen2_vl.py +9 -6
- xinference/model/llm/transformers/utils.py +1 -33
- xinference/model/llm/utils.py +61 -7
- xinference/model/llm/vllm/core.py +38 -8
- xinference/model/rerank/__init__.py +66 -23
- xinference/model/rerank/cache_manager.py +35 -0
- xinference/model/rerank/core.py +84 -339
- xinference/model/rerank/custom.py +33 -8
- xinference/model/rerank/model_spec.json +251 -212
- xinference/model/rerank/rerank_family.py +137 -0
- xinference/model/rerank/sentence_transformers/__init__.py +13 -0
- xinference/model/rerank/sentence_transformers/core.py +337 -0
- xinference/model/rerank/vllm/__init__.py +13 -0
- xinference/model/rerank/vllm/core.py +106 -0
- xinference/model/utils.py +109 -0
- xinference/types.py +2 -0
- xinference/ui/web/ui/build/asset-manifest.json +3 -3
- xinference/ui/web/ui/build/index.html +1 -1
- xinference/ui/web/ui/build/static/js/{main.b969199a.js → main.4918643a.js} +3 -3
- xinference/ui/web/ui/build/static/js/{main.b969199a.js.map → main.4918643a.js.map} +1 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/28012da921a51f1082549956d3ae82acd769a754b22afda9acddd98a4daf9ea4.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/475936ebe725eca62a6f52ce182c06a19b2cef4df9545a05ed0591ee0c539d43.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/89179f8f51887b9167721860a12412549ff04f78162e921a7b6aa6532646deb2.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/8b8cd408ccfbe115acef27ccfa5b233da8597131a2a5712add13e1e4d5d4504b.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/9dc5cfc67dd0617b0272aeef8651f1589b2155a4ff1fd72ad3166b217089b619.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/aee5aaba26f2b1e816a3ea9efa68bad8b95695a3d80adcfd8dd57a7bb17ac71a.json +1 -0
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/METADATA +6 -1
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/RECORD +58 -50
- xinference/ui/web/ui/node_modules/.cache/babel-loader/1409a96b9f9f9f5de99a89ab0f738f6da62b449521b0a8d3e4efcf7f5c23534d.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/43b889c3a8e2634092ade463d52481c7c5581c72ded8f23bc5f012ea0ef8cea5.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/5d47532fb42128280d87f57c8a0b02bc1930f7ef764aa7e90579247df18bba83.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/830882bb275468a969614824a9ab8983f874b4581f2eb625e9c66426cdc65e5b.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/9df08abcb5a7c1e48a4eb25c5d5f5d7253ea6854a4397e6d74d1fd75a14acda1.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/b99034986a06445701accc7a4914bb9320947435e8d4e15793392ca4f679316c.json +0 -1
- /xinference/ui/web/ui/build/static/js/{main.b969199a.js.LICENSE.txt → main.4918643a.js.LICENSE.txt} +0 -0
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/WHEEL +0 -0
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/entry_points.txt +0 -0
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/licenses/LICENSE +0 -0
- {xinference-1.8.1rc1.dist-info → xinference-1.9.0.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _objectSpread from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import ContentCopyOutlinedIcon from'@mui/icons-material/ContentCopyOutlined';import DeleteOutlineOutlinedIcon from'@mui/icons-material/DeleteOutlineOutlined';import OpenInBrowserOutlinedIcon from'@mui/icons-material/OpenInBrowserOutlined';import{TabContext,TabList,TabPanel}from'@mui/lab';import{Badge,Box,IconButton,Stack,Tab,Tooltip}from'@mui/material';import{DataGrid}from'@mui/x-data-grid';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useTranslation}from'react-i18next';import{useLocation,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{isValidBearerToken}from'../../components/utils';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var tabArr=[{label:'model.languageModels',value:'/running_models/LLM',showPrompt:false},{label:'model.embeddingModels',value:'/running_models/embedding',showPrompt:false},{label:'model.rerankModels',value:'/running_models/rerank',showPrompt:false},{label:'model.imageModels',value:'/running_models/image',showPrompt:false},{label:'model.audioModels',value:'/running_models/audio',showPrompt:false},{label:'model.videoModels',value:'/running_models/video',showPrompt:false},{label:'model.flexibleModels',value:'/running_models/flexible',showPrompt:false}];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(tabArr),_useState2=_slicedToArray(_useState,2),tabList=_useState2[0],setTabList=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),llmData=_useState4[0],setLlmData=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),embeddingModelData=_useState6[0],setEmbeddingModelData=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),imageModelData=_useState8[0],setImageModelData=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),audioModelData=_useState10[0],setAudioModelData=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),videoModelData=_useState12[0],setVideoModelData=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),rerankModelData=_useState14[0],setRerankModelData=_useState14[1];var _useState15=useState([]),_useState16=_slicedToArray(_useState15,2),flexibleModelData=_useState16[0],setFlexibleModelData=_useState16[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 _useTranslation=useTranslation(),t=_useTranslation.t;var location=useLocation();var handleTabChange=function handleTabChange(event,newValue){setTabValue(newValue);navigate(newValue);sessionStorage.setItem('runningModelType',newValue);};var update=function update(isCallingApi){if(sessionStorage.getItem('auth')==='true'&&!isValidBearerToken(sessionStorage.getItem('token'))&&!isValidBearerToken(cookie.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'}]);setVideoModelData([{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'}]);setFlexibleModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);}else{setIsUpdatingModel(true);fetchWrapper.get('/v1/models').then(function(response){var modelMap={LLM:[],embedding:[],image:[],audio:[],video:[],rerank:[],flexible:[]};response.data.forEach(function(model){var newValue=_objectSpread(_objectSpread({},model),{},{id:model.id,url:model.id});if(modelMap[newValue.model_type]){modelMap[newValue.model_type].push(newValue);}});setLlmData(modelMap.LLM);setEmbeddingModelData(modelMap.embedding);setImageModelData(modelMap.image);setAudioModelData(modelMap.audio);setVideoModelData(modelMap.video);setRerankModelData(modelMap.rerank);setFlexibleModelData(modelMap.flexible);if(location.pathname.endsWith('/LLM')){var modelOrder=['LLM','embedding','image','audio','video','rerank','flexible'];for(var _i=0,_modelOrder=modelOrder;_i<_modelOrder.length;_i++){var type=_modelOrder[_i];if(modelMap[type]&&modelMap[type].length>0){navigate(\"/running_models/\".concat(type));setTabValue(\"/running_models/\".concat(type));break;}}}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,renderCell:function renderCell(_ref){var row=_ref.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref2){var row=_ref2.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'model_size_in_billions',headerName:t('runningModels.size'),flex:1},{field:'quantization',headerName:t('runningModels.quantization'),flex:1},{field:'replica',headerName:t('runningModels.replica'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref3){var row=_ref3.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(IconButton,{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(IconButton,{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,renderCell:function renderCell(_ref4){var row=_ref4.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref5){var row=_ref5.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'replica',headerName:t('runningModels.replica'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref6){var row=_ref6.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(IconButton,{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,renderCell:function renderCell(_ref7){var row=_ref7.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref8){var row=_ref8.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref9){var row=_ref9.row;// this URL means model_uid\nvar url=row.url;console.log('url: '+url);var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var pathType;if(row.model_type==='video'){pathType='videos';}else if(row.model_type==='audio'){pathType='audios';}else{pathType='images';// default\n}var gradioUrl=\"\".concat(endPoint,\"/v1/ui/\").concat(pathType,\"/\")+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(IconButton,{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,model_ability:row.model_ability})}).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(IconButton,{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=imageModelColumns;var videoModelColumns=imageModelColumns;var rerankModelColumns=embeddingModelColumns;var flexibleModelColumns=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:t('runningModels.noRunningModels')});};var noResultsOverlay=function noResultsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:t('runningModels.noRunningModelsMatches')});};var renderWithCopy=function renderWithCopy(display){var _useState17=useState(false),_useState18=_slicedToArray(_useState17,2),tooltipOpen=_useState18[0],setTooltipOpen=_useState18[1];var _useState19=useState(t('runningModels.copy')),_useState20=_slicedToArray(_useState19,2),tooltipText=_useState20[0],setTooltipText=_useState20[1];var handleCopy=function handleCopy(event){event.stopPropagation();if(navigator.clipboard&&window.isSecureContext){// for HTTPS\nnavigator.clipboard.writeText(display).then(function(){setTooltipText(t('runningModels.copied'));}).catch(function(){setTooltipText(t('runningModels.copyFailed'));}).finally(function(){setTooltipOpen(true);setTimeout(function(){setTooltipOpen(false);setTooltipText(t('runningModels.copy'));},1500);});}else{// for HTTP\nvar textArea=document.createElement('textarea');textArea.value=display;textArea.style.position='absolute';textArea.style.left='-9999px';document.body.appendChild(textArea);textArea.select();try{var success=document.execCommand('copy');if(success){setTooltipText(t('runningModels.copied'));}else{setTooltipText(t('runningModels.copyFailed'));}}catch(err){setTooltipText(t('runningModels.copyFailed'));}document.body.removeChild(textArea);setTooltipOpen(true);setTimeout(function(){setTooltipOpen(false);setTooltipText(t('runningModels.copy'));},1500);}};return/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',maxWidth:'100%',overflow:'hidden'},children:[/*#__PURE__*/_jsx(\"span\",{style:{flex:1,minWidth:0,overflow:'hidden',whiteSpace:'nowrap',textOverflow:'ellipsis',marginRight:8},children:display}),/*#__PURE__*/_jsx(Tooltip,{title:tooltipText,open:tooltipOpen,children:/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:handleCopy,children:/*#__PURE__*/_jsx(ContentCopyOutlinedIcon,{fontSize:\"small\"})})})]});};useEffect(function(){var dataMap={'model.languageModels':llmData,'model.embeddingModels':embeddingModelData,'model.rerankModels':rerankModelData,'model.imageModels':imageModelData,'model.audioModels':audioModelData,'model.videoModels':videoModelData,'model.flexibleModels':flexibleModelData};setTabList(tabList.map(function(item){var _dataMap$item$label;if((_dataMap$item$label=dataMap[item.label])!==null&&_dataMap$item$label!==void 0&&_dataMap$item$label.length&&dataMap[item.label][0].model_type){return _objectSpread(_objectSpread({},item),{},{showPrompt:true});}return _objectSpread(_objectSpread({},item),{},{showPrompt:false});}));},[llmData,embeddingModelData,rerankModelData,imageModelData,audioModelData,videoModelData,flexibleModelData]);return/*#__PURE__*/_jsxs(Box,{sx:{height:'100%',width:'100%',padding:'20px 20px 0 20px'},children:[/*#__PURE__*/_jsx(Title,{title:t('menu.runningModels')}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:tabValue,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsx(TabList,{value:tabValue,onChange:handleTabChange,\"aria-label\":\"tabs\",children:tabList.map(function(item){return/*#__PURE__*/_jsx(Tab,{label:/*#__PURE__*/_jsx(Badge,{color:\"secondary\",variant:\"dot\",invisible:!item.showPrompt,children:t(item.label)}),value:item.value},item.value);})})}),/*#__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}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/video\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:videoModelData,columns:videoModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/flexible\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:flexibleModelData,columns:flexibleModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})})]})]});};export default RunningModels;","map":{"version":3,"names":["ContentCopyOutlinedIcon","DeleteOutlineOutlinedIcon","OpenInBrowserOutlinedIcon","TabContext","TabList","TabPanel","Badge","Box","IconButton","Stack","Tab","Tooltip","DataGrid","React","useContext","useEffect","useState","useCookies","useTranslation","useLocation","useNavigate","ApiContext","ErrorMessageSnackBar","fetcher","fetchWrapper","Title","isValidBearerToken","jsx","_jsx","jsxs","_jsxs","tabArr","label","value","showPrompt","RunningModels","_React$useState","sessionStorage","getItem","_React$useState2","_slicedToArray","tabValue","setTabValue","_useState","_useState2","tabList","setTabList","_useState3","_useState4","llmData","setLlmData","_useState5","_useState6","embeddingModelData","setEmbeddingModelData","_useState7","_useState8","imageModelData","setImageModelData","_useState9","_useState10","audioModelData","setAudioModelData","_useState11","_useState12","videoModelData","setVideoModelData","_useState13","_useState14","rerankModelData","setRerankModelData","_useState15","_useState16","flexibleModelData","setFlexibleModelData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","setIsUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","cookie","navigate","endPoint","_useTranslation","t","location","handleTabChange","event","newValue","setItem","update","token","replace","id","url","get","then","response","modelMap","LLM","embedding","image","audio","video","rerank","flexible","data","forEach","model","_objectSpread","model_type","push","pathname","endsWith","modelOrder","_i","_modelOrder","length","type","concat","catch","error","console","status","message","llmColumns","field","headerName","flex","minWidth","renderCell","_ref","row","renderWithCopy","_ref2","model_name","sortable","filterable","disableColumnMenu","_ref3","openUrl","closeUrl","gradioUrl","style","width","display","justifyContent","alignItems","children","title","borderWidth","backgroundColor","paddingLeft","paddingRight","onClick","method","log","headers","body","JSON","stringify","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","_ref4","_ref5","_ref6","imageModelColumns","_ref7","_ref8","_ref9","pathType","model_id","controlnet","model_revision","audioModelColumns","videoModelColumns","rerankModelColumns","flexibleModelColumns","dataGridStyle","borderBottom","fontWeight","overflowX","overflow","borderTop","noRowsOverlay","height","noResultsOverlay","_useState17","_useState18","tooltipOpen","setTooltipOpen","_useState19","_useState20","tooltipText","setTooltipText","handleCopy","stopPropagation","navigator","clipboard","isSecureContext","writeText","setTimeout","textArea","document","createElement","position","left","appendChild","select","success","execCommand","err","removeChild","maxWidth","whiteSpace","textOverflow","marginRight","size","fontSize","dataMap","map","item","_dataMap$item$label","sx","padding","onChange","color","variant","invisible","rows","columns","autoHeight","slots"],"sources":["/home/runner/work/inference/inference/xinference/ui/web/ui/src/scenes/running_models/index.js"],"sourcesContent":["import ContentCopyOutlinedIcon from '@mui/icons-material/ContentCopyOutlined'\nimport DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined'\nimport OpenInBrowserOutlinedIcon from '@mui/icons-material/OpenInBrowserOutlined'\nimport { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Badge, Box, IconButton, Stack, Tab, Tooltip } from '@mui/material'\nimport { DataGrid } from '@mui/x-data-grid'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, 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'\nimport { isValidBearerToken } from '../../components/utils'\n\nconst tabArr = [\n {\n label: 'model.languageModels',\n value: '/running_models/LLM',\n showPrompt: false,\n },\n {\n label: 'model.embeddingModels',\n value: '/running_models/embedding',\n showPrompt: false,\n },\n {\n label: 'model.rerankModels',\n value: '/running_models/rerank',\n showPrompt: false,\n },\n {\n label: 'model.imageModels',\n value: '/running_models/image',\n showPrompt: false,\n },\n {\n label: 'model.audioModels',\n value: '/running_models/audio',\n showPrompt: false,\n },\n {\n label: 'model.videoModels',\n value: '/running_models/video',\n showPrompt: false,\n },\n {\n label: 'model.flexibleModels',\n value: '/running_models/flexible',\n showPrompt: false,\n },\n]\n\nconst RunningModels = () => {\n const [tabValue, setTabValue] = React.useState(\n sessionStorage.getItem('runningModelType')\n )\n const [tabList, setTabList] = useState(tabArr)\n const [llmData, setLlmData] = useState([])\n const [embeddingModelData, setEmbeddingModelData] = useState([])\n const [imageModelData, setImageModelData] = useState([])\n const [audioModelData, setAudioModelData] = useState([])\n const [videoModelData, setVideoModelData] = useState([])\n const [rerankModelData, setRerankModelData] = useState([])\n const [flexibleModelData, setFlexibleModelData] = 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 const { t } = useTranslation()\n const location = useLocation()\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 (\n sessionStorage.getItem('auth') === 'true' &&\n !isValidBearerToken(sessionStorage.getItem('token')) &&\n !isValidBearerToken(cookie.token)\n ) {\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 setVideoModelData([\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 setFlexibleModelData([\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 modelMap = {\n LLM: [],\n embedding: [],\n image: [],\n audio: [],\n video: [],\n rerank: [],\n flexible: [],\n }\n\n response.data.forEach((model) => {\n const newValue = {\n ...model,\n id: model.id,\n url: model.id,\n }\n if (modelMap[newValue.model_type]) {\n modelMap[newValue.model_type].push(newValue)\n }\n })\n\n setLlmData(modelMap.LLM)\n setEmbeddingModelData(modelMap.embedding)\n setImageModelData(modelMap.image)\n setAudioModelData(modelMap.audio)\n setVideoModelData(modelMap.video)\n setRerankModelData(modelMap.rerank)\n setFlexibleModelData(modelMap.flexible)\n\n if (location.pathname.endsWith('/LLM')) {\n const modelOrder = [\n 'LLM',\n 'embedding',\n 'image',\n 'audio',\n 'video',\n 'rerank',\n 'flexible',\n ]\n for (const type of modelOrder) {\n if (modelMap[type] && modelMap[type].length > 0) {\n navigate(`/running_models/${type}`)\n setTabValue(`/running_models/${type}`)\n break\n }\n }\n }\n\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 renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'model_size_in_billions',\n headerName: t('runningModels.size'),\n flex: 1,\n },\n {\n field: 'quantization',\n headerName: t('runningModels.quantization'),\n flex: 1,\n },\n {\n field: 'replica',\n headerName: t('runningModels.replica'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.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 <IconButton\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 </IconButton>\n <IconButton\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 </IconButton>\n </Box>\n )\n },\n },\n ]\n const embeddingModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'replica',\n headerName: t('runningModels.replica'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.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 <IconButton\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 </IconButton>\n </Box>\n )\n },\n },\n ]\n const imageModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.actions'),\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n // this URL means 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 let pathType\n if (row.model_type === 'video') {\n pathType = 'videos'\n } else if (row.model_type === 'audio') {\n pathType = 'audios'\n } else {\n pathType = 'images' // default\n }\n const gradioUrl = `${endPoint}/v1/ui/${pathType}/` + 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 <IconButton\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 model_ability: row.model_ability,\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 </IconButton>\n <IconButton\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 </IconButton>\n </Box>\n )\n },\n },\n ]\n const audioModelColumns = imageModelColumns\n const videoModelColumns = imageModelColumns\n const rerankModelColumns = embeddingModelColumns\n const flexibleModelColumns = 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 {t('runningModels.noRunningModels')}\n </Stack>\n )\n }\n\n const noResultsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n {t('runningModels.noRunningModelsMatches')}\n </Stack>\n )\n }\n\n const renderWithCopy = (display) => {\n const [tooltipOpen, setTooltipOpen] = useState(false)\n const [tooltipText, setTooltipText] = useState(t('runningModels.copy'))\n\n const handleCopy = (event) => {\n event.stopPropagation()\n\n if (navigator.clipboard && window.isSecureContext) {\n // for HTTPS\n navigator.clipboard\n .writeText(display)\n .then(() => {\n setTooltipText(t('runningModels.copied'))\n })\n .catch(() => {\n setTooltipText(t('runningModels.copyFailed'))\n })\n .finally(() => {\n setTooltipOpen(true)\n setTimeout(() => {\n setTooltipOpen(false)\n setTooltipText(t('runningModels.copy'))\n }, 1500)\n })\n } else {\n // for HTTP\n const textArea = document.createElement('textarea')\n textArea.value = display\n textArea.style.position = 'absolute'\n textArea.style.left = '-9999px'\n document.body.appendChild(textArea)\n textArea.select()\n\n try {\n const success = document.execCommand('copy')\n if (success) {\n setTooltipText(t('runningModels.copied'))\n } else {\n setTooltipText(t('runningModels.copyFailed'))\n }\n } catch (err) {\n setTooltipText(t('runningModels.copyFailed'))\n }\n\n document.body.removeChild(textArea)\n\n setTooltipOpen(true)\n setTimeout(() => {\n setTooltipOpen(false)\n setTooltipText(t('runningModels.copy'))\n }, 1500)\n }\n }\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n overflow: 'hidden',\n }}\n >\n <span\n style={{\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n marginRight: 8,\n }}\n >\n {display}\n </span>\n <Tooltip title={tooltipText} open={tooltipOpen}>\n <IconButton size=\"small\" onClick={handleCopy}>\n <ContentCopyOutlinedIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n </div>\n )\n }\n\n useEffect(() => {\n const dataMap = {\n 'model.languageModels': llmData,\n 'model.embeddingModels': embeddingModelData,\n 'model.rerankModels': rerankModelData,\n 'model.imageModels': imageModelData,\n 'model.audioModels': audioModelData,\n 'model.videoModels': videoModelData,\n 'model.flexibleModels': flexibleModelData,\n }\n\n setTabList(\n tabList.map((item) => {\n if (dataMap[item.label]?.length && dataMap[item.label][0].model_type) {\n return {\n ...item,\n showPrompt: true,\n }\n }\n return {\n ...item,\n showPrompt: false,\n }\n })\n )\n }, [\n llmData,\n embeddingModelData,\n rerankModelData,\n imageModelData,\n audioModelData,\n videoModelData,\n flexibleModelData,\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={t('menu.runningModels')} />\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 {tabList.map((item) => (\n <Tab\n key={item.value}\n label={\n <Badge\n color=\"secondary\"\n variant=\"dot\"\n invisible={!item.showPrompt}\n >\n {t(item.label)}\n </Badge>\n }\n value={item.value}\n />\n ))}\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 <TabPanel value=\"/running_models/video\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={videoModelData}\n columns={videoModelColumns}\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/flexible\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={flexibleModelData}\n columns={flexibleModelColumns}\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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _defineProperty from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import AddIcon from'@mui/icons-material/Add';import DeleteIcon from'@mui/icons-material/Delete';import{Alert,Box,Button,FormControlLabel,Radio,RadioGroup,TextField,Tooltip}from'@mui/material';import React,{useEffect,useState}from'react';import{useTranslation}from'react-i18next';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";var modelFormatData=[{type:'LLM',options:[{value:'pytorch',label:'PyTorch'},{value:'ggufv2',label:'GGUF'},{value:'gptq',label:'GPTQ'},{value:'awq',label:'AWQ'},{value:'fp8',label:'FP8'},{value:'mlx',label:'MLX'}]},{type:'embedding',options:[{value:'pytorch',label:'PyTorch'},{value:'ggufv2',label:'GGUF'}]}];var AddModelSpecs=function AddModelSpecs(_ref){var isJump=_ref.isJump,formData=_ref.formData,specsDataArr=_ref.specsDataArr,onGetArr=_ref.onGetArr,scrollRef=_ref.scrollRef,modelType=_ref.modelType;var _useState=useState(0),_useState2=_slicedToArray(_useState,2),count=_useState2[0],setCount=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),specsArr=_useState4[0],setSpecsArr=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),pathArr=_useState6[0],setPathArr=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),modelSizeAlertId=_useState8[0],setModelSizeAlertId=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),quantizationAlertId=_useState10[0],setQuantizationAlertId=_useState10[1];var _useState11=useState(false),_useState12=_slicedToArray(_useState11,2),isError=_useState12[0],setIsError=_useState12[1];var _useState13=useState(false),_useState14=_slicedToArray(_useState13,2),isAdd=_useState14[0],setIsAdd=_useState14[1];var _useTranslation=useTranslation(),t=_useTranslation.t;useEffect(function(){if(isJump){var dataArr=specsDataArr.map(function(item,index){var _size;var model_uri=item.model_uri,model_size_in_billions=item.model_size_in_billions,model_format=item.model_format,quantization=item.quantization,model_file_name_template=item.model_file_name_template;var size=model_size_in_billions;if(typeof size!=='number')size=(_size=size)===null||_size===void 0?void 0:_size.split('_').join('.');return{id:index,model_uri:model_uri,model_size_in_billions:size,model_format:model_format,quantization:quantization,model_file_name_template:model_file_name_template};});setCount(dataArr.length);setSpecsArr(dataArr);var subPathArr=[];specsDataArr.forEach(function(item){if(item.model_format!=='ggufv2'){subPathArr.push(item.model_uri);}else{subPathArr.push(item.model_uri+'/'+item.model_file_name_template);}});setPathArr(subPathArr);}else{setSpecsArr([_objectSpread({id:count},formData)]);setCount(count+1);setPathArr([formData.model_uri]);}},[]);useEffect(function(){var arr=specsArr.map(function(item){var uri=item.model_uri,size=item.model_size_in_billions,modelFormat=item.model_format,quantization=item.quantization,model_file_name_template=item.model_file_name_template;var handleSize;if(modelType==='LLM'){handleSize=parseInt(size)===parseFloat(size)?Number(size):size.split('.').join('_');}var handleQuantization=quantization;if(modelFormat==='pytorch'){handleQuantization='none';}else if(handleQuantization===''&&modelFormat==='ggufv2'){handleQuantization='default';}return _objectSpread(_objectSpread({model_uri:uri},modelType==='LLM'&&{model_size_in_billions:handleSize}),{},{model_format:modelFormat,quantization:handleQuantization,model_file_name_template:model_file_name_template});});setIsError(true);if(modelSizeAlertId.length===0&&quantizationAlertId.length===0){setIsError(false);}onGetArr(arr,isError);isAdd&&handleScrollBottom();setIsAdd(false);},[specsArr,isError]);var handleAddSpecs=function handleAddSpecs(){setCount(count+1);var item={id:count,model_uri:'/path/to/llama-1',model_size_in_billions:7,model_format:'pytorch',quantization:''};setSpecsArr([].concat(_toConsumableArray(specsArr),[item]));setIsAdd(true);setPathArr([].concat(_toConsumableArray(pathArr),['/path/to/llama-1']));};var handleUpdateSpecsArr=function handleUpdateSpecsArr(index,type,newValue){if(type==='model_format'){var subPathArr=_toConsumableArray(pathArr);if(specsArr[index].model_format!=='ggufv2'){pathArr[index]=specsArr[index].model_uri;}else{pathArr[index]=specsArr[index].model_uri+'/'+specsArr[index].model_file_name_template;}setPathArr(subPathArr);}setSpecsArr(specsArr.map(function(item,subIndex){if(subIndex===index){if(type===''){return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,[newValue]));}else if(type==='model_format'){if(newValue==='ggufv2'){var _getPathComponents=getPathComponents(pathArr[index]),baseDir=_getPathComponents.baseDir,filename=_getPathComponents.filename;var obj=_objectSpread(_objectSpread({},item),{},{model_format:newValue,quantization:'',model_uri:baseDir,model_file_name_template:filename});return obj;}else{var _ref2;var id=item.id,model_size_in_billions=item.model_size_in_billions,model_format=item.model_format;return _ref2={id:id,model_uri:pathArr[index],model_size_in_billions:model_size_in_billions,model_format:model_format},_defineProperty(_ref2,type,newValue),_defineProperty(_ref2,\"quantization\",''),_ref2;}}else if(type==='model_uri'){var _subPathArr=_toConsumableArray(pathArr);_subPathArr[index]=newValue;setPathArr(_subPathArr);if(item.model_format==='ggufv2'){var _getPathComponents2=getPathComponents(newValue),_baseDir=_getPathComponents2.baseDir,_filename=_getPathComponents2.filename;var _obj=_objectSpread(_objectSpread({},item),{},{model_uri:_baseDir,model_file_name_template:_filename});return _obj;}else{return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,newValue));}}else{return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,newValue));}}return item;}));};var handleDeleteSpecs=function handleDeleteSpecs(index){setSpecsArr(specsArr.filter(function(_,subIndex){return index!==subIndex;}));};var getPathComponents=function getPathComponents(path){var normalizedPath=path.replace(/\\\\/g,'/');var baseDir=normalizedPath.substring(0,normalizedPath.lastIndexOf('/'));var filename=normalizedPath.substring(normalizedPath.lastIndexOf('/')+1);return{baseDir:baseDir,filename:filename};};var handleModelSize=function handleModelSize(index,value,id){setModelSizeAlertId(modelSizeAlertId.filter(function(item){return item!==id;}));handleUpdateSpecsArr(index,'model_size_in_billions',value);if(value!==''&&(!Number(value)||Number(value)<=0)){var modelSizeAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(modelSizeAlertId),[id])));setModelSizeAlertId(modelSizeAlertIdArr);}};var handleQuantization=function handleQuantization(model_format,index,value,id){setQuantizationAlertId(quantizationAlertId.filter(function(item){return item!==id;}));handleUpdateSpecsArr(index,'quantization',value);if((model_format==='gptq'||model_format==='awq'||model_format==='fp8'||model_format==='mlx')&&value===''){var quantizationAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(quantizationAlertId),[id])));setQuantizationAlertId(quantizationAlertIdArr);}};var handleScrollBottom=function handleScrollBottom(){scrollRef.current.scrollTo({top:scrollRef.current.scrollHeight,behavior:'smooth'});};return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',marginBottom:10},children:[/*#__PURE__*/_jsx(\"label\",{style:{width:'100px'},children:t('registerModel.modelSpecs')}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",size:\"small\",endIcon:/*#__PURE__*/_jsx(AddIcon,{}),className:\"addBtn\",onClick:handleAddSpecs,children:t('registerModel.more')})]}),/*#__PURE__*/_jsx(\"div\",{className:\"specs_container\",children:specsArr.map(function(item,index){return/*#__PURE__*/_jsxs(\"div\",{className:\"item\",children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:t('registerModel.modelFormat')}),/*#__PURE__*/_jsx(RadioGroup,{value:item.model_format,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_format',e.target.value);if(e.target.value==='gptq'||e.target.value==='awq'||e.target.value==='fp8'||e.target.value==='mlx'){var quantizationAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(quantizationAlertId),[item.id])));setQuantizationAlertId(quantizationAlertIdArr);}else{setQuantizationAlertId([]);}},children:/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:modelFormatData.find(function(item){return item.type===modelType;}).options.map(function(item){return/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:item.value,control:/*#__PURE__*/_jsx(Radio,{}),label:item.label})},item.value);})})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{error:item.model_uri!==''?false:true,style:{minWidth:'60%'},label:t('registerModel.modelPath'),size:\"small\",value:item.model_format!=='ggufv2'?item.model_uri:item.model_uri+'/'+item.model_file_name_template,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_uri',e.target.value);},helperText:t('registerModel.provideModelDirectoryOrFilePath')}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),modelType==='LLM'&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{error:Number(item.model_size_in_billions)>0?false:true,label:t('registerModel.modelSizeBillions'),size:\"small\",value:item.model_size_in_billions,onChange:function onChange(e){handleModelSize(index,e.target.value,item.id);}}),modelSizeAlertId.includes(item.id)&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:t('registerModel.enterNumberGreaterThanZero')}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),item.model_format!=='pytorch'&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{style:{minWidth:'60%'},label:item.model_format==='gptq'||item.model_format==='awq'||item.model_format==='fp8'||item.model_format==='mlx'?t('registerModel.quantization'):t('registerModel.quantizationOptional'),size:\"small\",value:item.quantization,onChange:function onChange(e){handleQuantization(item.model_format,index,e.target.value,item.id);},helperText:item.model_format==='gptq'||item.model_format==='awq'||item.model_format==='fp8'||item.model_format==='mlx'?t('registerModel.carefulQuantizationForModelRegistration'):''}),item.model_format!=='ggufv2'&&quantizationAlertId.includes(item.id)&&item.quantization==''&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:t('registerModel.quantizationCannotBeEmpty')})]}),specsArr.length>1&&/*#__PURE__*/_jsx(Tooltip,{title:t('registerModel.delete'),placement:\"top\",children:/*#__PURE__*/_jsx(\"div\",{className:\"deleteBtn\",onClick:function onClick(){return handleDeleteSpecs(index);},children:/*#__PURE__*/_jsx(DeleteIcon,{className:\"deleteIcon\"})})})]},item.id);})})]});};export default AddModelSpecs;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',alignItems:'center',width:'100%'}};","map":{"version":3,"names":["AddIcon","DeleteIcon","Alert","Box","Button","FormControlLabel","Radio","RadioGroup","TextField","Tooltip","React","useEffect","useState","useTranslation","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","modelFormatData","type","options","value","label","AddModelSpecs","_ref","isJump","formData","specsDataArr","onGetArr","scrollRef","modelType","_useState","_useState2","_slicedToArray","count","setCount","_useState3","_useState4","specsArr","setSpecsArr","_useState5","_useState6","pathArr","setPathArr","_useState7","_useState8","modelSizeAlertId","setModelSizeAlertId","_useState9","_useState10","quantizationAlertId","setQuantizationAlertId","_useState11","_useState12","isError","setIsError","_useState13","_useState14","isAdd","setIsAdd","_useTranslation","t","dataArr","map","item","index","_size","model_uri","model_size_in_billions","model_format","quantization","model_file_name_template","size","split","join","id","length","subPathArr","forEach","push","_objectSpread","arr","uri","modelFormat","handleSize","parseInt","parseFloat","Number","handleQuantization","handleScrollBottom","handleAddSpecs","concat","_toConsumableArray","handleUpdateSpecsArr","newValue","subIndex","_defineProperty","_getPathComponents","getPathComponents","baseDir","filename","obj","_ref2","_getPathComponents2","handleDeleteSpecs","filter","_","path","normalizedPath","replace","substring","lastIndexOf","handleModelSize","modelSizeAlertIdArr","Array","from","Set","quantizationAlertIdArr","current","scrollTo","top","scrollHeight","behavior","children","style","display","alignItems","marginBottom","width","variant","endIcon","className","onClick","paddingLeft","onChange","e","target","sx","styles","checkboxWrapper","find","marginLeft","control","padding","error","minWidth","helperText","includes","severity","title","placement","baseFormControl","margin","flexWrap"],"sources":["/home/runner/work/inference/inference/xinference/ui/web/ui/src/scenes/register_model/components/addModelSpecs.js"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport {\n Alert,\n Box,\n Button,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nconst modelFormatData = [\n {\n type: 'LLM',\n options: [\n { value: 'pytorch', label: 'PyTorch' },\n { value: 'ggufv2', label: 'GGUF' },\n { value: 'gptq', label: 'GPTQ' },\n { value: 'awq', label: 'AWQ' },\n { value: 'fp8', label: 'FP8' },\n { value: 'mlx', label: 'MLX' },\n ],\n },\n {\n type: 'embedding',\n options: [\n { value: 'pytorch', label: 'PyTorch' },\n { value: 'ggufv2', label: 'GGUF' },\n ],\n },\n]\n\nconst AddModelSpecs = ({\n isJump,\n formData,\n specsDataArr,\n onGetArr,\n scrollRef,\n modelType,\n}) => {\n const [count, setCount] = useState(0)\n const [specsArr, setSpecsArr] = useState([])\n const [pathArr, setPathArr] = useState([])\n const [modelSizeAlertId, setModelSizeAlertId] = useState([])\n const [quantizationAlertId, setQuantizationAlertId] = useState([])\n const [isError, setIsError] = useState(false)\n const [isAdd, setIsAdd] = useState(false)\n const { t } = useTranslation()\n\n useEffect(() => {\n if (isJump) {\n const dataArr = specsDataArr.map((item, index) => {\n const {\n model_uri,\n model_size_in_billions,\n model_format,\n quantization,\n model_file_name_template,\n } = item\n let size = model_size_in_billions\n if (typeof size !== 'number') size = size?.split('_').join('.')\n\n return {\n id: index,\n model_uri,\n model_size_in_billions: size,\n model_format,\n quantization,\n model_file_name_template,\n }\n })\n setCount(dataArr.length)\n setSpecsArr(dataArr)\n\n const subPathArr = []\n specsDataArr.forEach((item) => {\n if (item.model_format !== 'ggufv2') {\n subPathArr.push(item.model_uri)\n } else {\n subPathArr.push(item.model_uri + '/' + item.model_file_name_template)\n }\n })\n setPathArr(subPathArr)\n } else {\n setSpecsArr([\n {\n id: count,\n ...formData,\n },\n ])\n setCount(count + 1)\n setPathArr([formData.model_uri])\n }\n }, [])\n\n useEffect(() => {\n const arr = specsArr.map((item) => {\n const {\n model_uri: uri,\n model_size_in_billions: size,\n model_format: modelFormat,\n quantization,\n model_file_name_template,\n } = item\n\n let handleSize\n if (modelType === 'LLM') {\n handleSize =\n parseInt(size) === parseFloat(size)\n ? Number(size)\n : size.split('.').join('_')\n }\n\n let handleQuantization = quantization\n if (modelFormat === 'pytorch') {\n handleQuantization = 'none'\n } else if (handleQuantization === '' && modelFormat === 'ggufv2') {\n handleQuantization = 'default'\n }\n\n return {\n model_uri: uri,\n ...(modelType === 'LLM' && {\n model_size_in_billions: handleSize,\n }),\n model_format: modelFormat,\n quantization: handleQuantization,\n model_file_name_template,\n }\n })\n setIsError(true)\n if (modelSizeAlertId.length === 0 && quantizationAlertId.length === 0) {\n setIsError(false)\n }\n onGetArr(arr, isError)\n isAdd && handleScrollBottom()\n setIsAdd(false)\n }, [specsArr, isError])\n\n const handleAddSpecs = () => {\n setCount(count + 1)\n const item = {\n id: count,\n model_uri: '/path/to/llama-1',\n model_size_in_billions: 7,\n model_format: 'pytorch',\n quantization: '',\n }\n setSpecsArr([...specsArr, item])\n setIsAdd(true)\n setPathArr([...pathArr, '/path/to/llama-1'])\n }\n\n const handleUpdateSpecsArr = (index, type, newValue) => {\n if (type === 'model_format') {\n const subPathArr = [...pathArr]\n if (specsArr[index].model_format !== 'ggufv2') {\n pathArr[index] = specsArr[index].model_uri\n } else {\n pathArr[index] =\n specsArr[index].model_uri +\n '/' +\n specsArr[index].model_file_name_template\n }\n setPathArr(subPathArr)\n }\n\n setSpecsArr(\n specsArr.map((item, subIndex) => {\n if (subIndex === index) {\n if (type === '') {\n return { ...item, [type]: [newValue] }\n } else if (type === 'model_format') {\n if (newValue === 'ggufv2') {\n const { baseDir, filename } = getPathComponents(pathArr[index])\n const obj = {\n ...item,\n model_format: newValue,\n quantization: '',\n model_uri: baseDir,\n model_file_name_template: filename,\n }\n return obj\n } else {\n const { id, model_size_in_billions, model_format } = item\n return {\n id,\n model_uri: pathArr[index],\n model_size_in_billions,\n model_format,\n [type]: newValue,\n quantization: '',\n }\n }\n } else if (type === 'model_uri') {\n const subPathArr = [...pathArr]\n subPathArr[index] = newValue\n setPathArr(subPathArr)\n if (item.model_format === 'ggufv2') {\n const { baseDir, filename } = getPathComponents(newValue)\n const obj = {\n ...item,\n model_uri: baseDir,\n model_file_name_template: filename,\n }\n return obj\n } else {\n return { ...item, [type]: newValue }\n }\n } else {\n return { ...item, [type]: newValue }\n }\n }\n return item\n })\n )\n }\n\n const handleDeleteSpecs = (index) => {\n setSpecsArr(specsArr.filter((_, subIndex) => index !== subIndex))\n }\n\n const getPathComponents = (path) => {\n const normalizedPath = path.replace(/\\\\/g, '/')\n const baseDir = normalizedPath.substring(0, normalizedPath.lastIndexOf('/'))\n const filename = normalizedPath.substring(\n normalizedPath.lastIndexOf('/') + 1\n )\n return { baseDir, filename }\n }\n\n const handleModelSize = (index, value, id) => {\n setModelSizeAlertId(modelSizeAlertId.filter((item) => item !== id))\n handleUpdateSpecsArr(index, 'model_size_in_billions', value)\n if (value !== '' && (!Number(value) || Number(value) <= 0)) {\n const modelSizeAlertIdArr = Array.from(new Set([...modelSizeAlertId, id]))\n setModelSizeAlertId(modelSizeAlertIdArr)\n }\n }\n\n const handleQuantization = (model_format, index, value, id) => {\n setQuantizationAlertId(quantizationAlertId.filter((item) => item !== id))\n handleUpdateSpecsArr(index, 'quantization', value)\n if (\n (model_format === 'gptq' ||\n model_format === 'awq' ||\n model_format === 'fp8' ||\n model_format === 'mlx') &&\n value === ''\n ) {\n const quantizationAlertIdArr = Array.from(\n new Set([...quantizationAlertId, id])\n )\n setQuantizationAlertId(quantizationAlertIdArr)\n }\n }\n\n const handleScrollBottom = () => {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n return (\n <>\n <div style={{ display: 'flex', alignItems: 'center', marginBottom: 10 }}>\n <label style={{ width: '100px' }}>\n {t('registerModel.modelSpecs')}\n </label>\n <Button\n variant=\"contained\"\n size=\"small\"\n endIcon={<AddIcon />}\n className=\"addBtn\"\n onClick={handleAddSpecs}\n >\n {t('registerModel.more')}\n </Button>\n </div>\n <div className=\"specs_container\">\n {specsArr.map((item, index) => (\n <div className=\"item\" key={item.id}>\n <label\n style={{\n paddingLeft: 5,\n }}\n >\n {t('registerModel.modelFormat')}\n </label>\n <RadioGroup\n value={item.model_format}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_format', e.target.value)\n if (\n e.target.value === 'gptq' ||\n e.target.value === 'awq' ||\n e.target.value === 'fp8' ||\n e.target.value === 'mlx'\n ) {\n const quantizationAlertIdArr = Array.from(\n new Set([...quantizationAlertId, item.id])\n )\n setQuantizationAlertId(quantizationAlertIdArr)\n } else {\n setQuantizationAlertId([])\n }\n }}\n >\n <Box sx={styles.checkboxWrapper}>\n {modelFormatData\n .find((item) => item.type === modelType)\n .options.map((item) => (\n <Box key={item.value} sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value={item.value}\n control={<Radio />}\n label={item.label}\n />\n </Box>\n ))}\n </Box>\n </RadioGroup>\n <Box padding=\"15px\"></Box>\n\n <TextField\n error={item.model_uri !== '' ? false : true}\n style={{ minWidth: '60%' }}\n label={t('registerModel.modelPath')}\n size=\"small\"\n value={\n item.model_format !== 'ggufv2'\n ? item.model_uri\n : item.model_uri + '/' + item.model_file_name_template\n }\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_uri', e.target.value)\n }}\n helperText={t('registerModel.provideModelDirectoryOrFilePath')}\n />\n <Box padding=\"15px\"></Box>\n\n {modelType === 'LLM' && (\n <>\n <TextField\n error={Number(item.model_size_in_billions) > 0 ? false : true}\n label={t('registerModel.modelSizeBillions')}\n size=\"small\"\n value={item.model_size_in_billions}\n onChange={(e) => {\n handleModelSize(index, e.target.value, item.id)\n }}\n />\n {modelSizeAlertId.includes(item.id) && (\n <Alert severity=\"error\">\n {t('registerModel.enterNumberGreaterThanZero')}\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {item.model_format !== 'pytorch' && (\n <>\n <TextField\n style={{ minWidth: '60%' }}\n label={\n item.model_format === 'gptq' ||\n item.model_format === 'awq' ||\n item.model_format === 'fp8' ||\n item.model_format === 'mlx'\n ? t('registerModel.quantization')\n : t('registerModel.quantizationOptional')\n }\n size=\"small\"\n value={item.quantization}\n onChange={(e) => {\n handleQuantization(\n item.model_format,\n index,\n e.target.value,\n item.id\n )\n }}\n helperText={\n item.model_format === 'gptq' ||\n item.model_format === 'awq' ||\n item.model_format === 'fp8' ||\n item.model_format === 'mlx'\n ? t(\n 'registerModel.carefulQuantizationForModelRegistration'\n )\n : ''\n }\n />\n {item.model_format !== 'ggufv2' &&\n quantizationAlertId.includes(item.id) &&\n item.quantization == '' && (\n <Alert severity=\"error\">\n {t('registerModel.quantizationCannotBeEmpty')}\n </Alert>\n )}\n </>\n )}\n\n {specsArr.length > 1 && (\n <Tooltip title={t('registerModel.delete')} placement=\"top\">\n <div\n className=\"deleteBtn\"\n onClick={() => handleDeleteSpecs(index)}\n >\n <DeleteIcon className=\"deleteIcon\" />\n </div>\n </Tooltip>\n )}\n </div>\n ))}\n </div>\n </>\n )\n}\n\nexport default AddModelSpecs\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n },\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|