xinference 1.2.1__py3-none-any.whl → 1.3.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 (80) hide show
  1. xinference/_version.py +3 -3
  2. xinference/api/restful_api.py +4 -7
  3. xinference/client/handlers.py +3 -0
  4. xinference/client/restful/restful_client.py +9 -1
  5. xinference/core/model.py +19 -0
  6. xinference/core/resource.py +7 -1
  7. xinference/core/scheduler.py +4 -7
  8. xinference/core/status_guard.py +1 -0
  9. xinference/core/supervisor.py +228 -19
  10. xinference/core/utils.py +1 -29
  11. xinference/core/worker.py +28 -2
  12. xinference/deploy/cmdline.py +33 -3
  13. xinference/deploy/local.py +2 -1
  14. xinference/deploy/test/test_cmdline.py +32 -0
  15. xinference/device_utils.py +43 -1
  16. xinference/model/audio/core.py +5 -0
  17. xinference/model/audio/kokoro.py +122 -0
  18. xinference/model/audio/model_spec.json +8 -0
  19. xinference/model/audio/model_spec_modelscope.json +9 -0
  20. xinference/model/image/stable_diffusion/core.py +15 -6
  21. xinference/model/llm/llama_cpp/core.py +21 -14
  22. xinference/model/llm/llm_family.json +866 -46
  23. xinference/model/llm/llm_family.py +7 -2
  24. xinference/model/llm/llm_family_modelscope.json +873 -16
  25. xinference/model/llm/mlx/core.py +11 -3
  26. xinference/model/llm/reasoning_parsers/__init__.py +13 -0
  27. xinference/model/llm/reasoning_parsers/abs_reasoning_parsers.py +98 -0
  28. xinference/model/llm/reasoning_parsers/deepseek_r1_reasoning_parser.py +140 -0
  29. xinference/model/llm/sglang/core.py +99 -11
  30. xinference/model/llm/transformers/core.py +9 -1
  31. xinference/model/llm/transformers/intern_vl.py +23 -14
  32. xinference/model/llm/transformers/qwen2_audio.py +3 -1
  33. xinference/model/llm/transformers/qwen2_vl.py +20 -3
  34. xinference/model/llm/transformers/utils.py +22 -11
  35. xinference/model/llm/utils.py +164 -20
  36. xinference/model/llm/vllm/core.py +36 -4
  37. xinference/model/llm/vllm/xavier/executor.py +2 -2
  38. xinference/model/llm/vllm/xavier/scheduler.py +3 -3
  39. xinference/thirdparty/internvl/conversation.py +26 -17
  40. xinference/types.py +2 -0
  41. xinference/web/ui/build/asset-manifest.json +6 -6
  42. xinference/web/ui/build/index.html +1 -1
  43. xinference/web/ui/build/static/css/main.f8177338.css +2 -0
  44. xinference/web/ui/build/static/css/main.f8177338.css.map +1 -0
  45. xinference/web/ui/build/static/js/main.ad42919c.js +3 -0
  46. xinference/web/ui/build/static/js/main.ad42919c.js.map +1 -0
  47. xinference/web/ui/node_modules/.cache/babel-loader/074a42304bbbaa79e1bfc3b28502457a390df55708de9006f4cc8e35c60aea87.json +1 -0
  48. xinference/web/ui/node_modules/.cache/babel-loader/0acb065326560592b10888234242f94f67efe28458b90f273d4d4fba9daa0cd2.json +1 -0
  49. xinference/web/ui/node_modules/.cache/babel-loader/279ace390216236a82b3d8995c78eca4d637ac9a523e9f521a2d9c76607a43d7.json +1 -0
  50. xinference/web/ui/node_modules/.cache/babel-loader/630a7bd592596cc6e291fc32238ce7c08238038a64ed8ccee0eb0c13c9902910.json +1 -0
  51. xinference/web/ui/node_modules/.cache/babel-loader/6cb9f6c62ab4042f0b11c5d75e51187188e9d6f5f08b1d63e796e051bafdb457.json +1 -0
  52. xinference/web/ui/node_modules/.cache/babel-loader/8f9af2979e45d4648f0cfae108363e58ee421c29a9d4e7329b6f06d9adfd4133.json +1 -0
  53. xinference/web/ui/node_modules/.cache/babel-loader/914c33e91c1012e3bcd3e96f3a25884cbef148290632d0266dab972b8cc1e95f.json +1 -0
  54. xinference/web/ui/node_modules/.cache/babel-loader/9c8b1a86e7c65b2b2599a205e30920652d6c2105f926508ef5bcf29a3ef4ce76.json +1 -0
  55. xinference/web/ui/node_modules/.cache/babel-loader/b7939cd3a48adf12fccfdd0803019b5cc235ff7de3a297dae70ce635e0eea13e.json +1 -0
  56. xinference/web/ui/node_modules/.cache/babel-loader/efe7cd132c27a8f9fd5352a394c491fd5fb0da0348cf9fcbd923164a32365eab.json +1 -0
  57. xinference/web/ui/node_modules/.cache/babel-loader/f04f666b77b44d7be3e16034d6b0074de2ba9c254f1fae15222b3148608fa8b3.json +1 -0
  58. xinference/web/ui/node_modules/.cache/babel-loader/fecf076bcd198a458c2a6ab0e85e40dc1c99994c353164e79c469be162cb74c9.json +1 -0
  59. xinference/web/ui/src/locales/en.json +14 -1
  60. xinference/web/ui/src/locales/zh.json +14 -1
  61. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/METADATA +18 -17
  62. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/RECORD +67 -60
  63. xinference/web/ui/build/static/css/main.51a587ff.css +0 -2
  64. xinference/web/ui/build/static/css/main.51a587ff.css.map +0 -1
  65. xinference/web/ui/build/static/js/main.b0936c54.js +0 -3
  66. xinference/web/ui/build/static/js/main.b0936c54.js.map +0 -1
  67. xinference/web/ui/node_modules/.cache/babel-loader/0c2fb5375667931c4a331c99e0d87dc145e8f327cea3f44d6e56f54c7c1d4020.json +0 -1
  68. xinference/web/ui/node_modules/.cache/babel-loader/185ceb8872d562e032b47e79df6a45670e06345b8ed70aad1a131e0476783c5c.json +0 -1
  69. xinference/web/ui/node_modules/.cache/babel-loader/3eefb411b24c2b3ce053570ef50daccf154022f0e168be5ed0fec21394baf9f4.json +0 -1
  70. xinference/web/ui/node_modules/.cache/babel-loader/63c8e07687ea53a4f8a910ee5e42e0eb26cd1acbfbe820f3e3248a786ee51401.json +0 -1
  71. xinference/web/ui/node_modules/.cache/babel-loader/a3ff866acddf34917a7ee399e0e571a4dfd8ba66d5057db885f243e16a6eb17d.json +0 -1
  72. xinference/web/ui/node_modules/.cache/babel-loader/a7f1a71f6580dfe810c685a9c1d68e318f71e1fa258fbe50b87a6ac37cc0a598.json +0 -1
  73. xinference/web/ui/node_modules/.cache/babel-loader/bdee44abeadc4abc17d41c52eb49c6e19a4b1a267b6e16876ce91bdeeebfc52d.json +0 -1
  74. xinference/web/ui/node_modules/.cache/babel-loader/d7664d18c4ddbad9c3a6a31b91f7c00fb0dde804608674a9860ee50f33e54708.json +0 -1
  75. xinference/web/ui/node_modules/.cache/babel-loader/ed57202cb79649bb716400436590245547df241988fc7c8e1d85d132299542d2.json +0 -1
  76. /xinference/web/ui/build/static/js/{main.b0936c54.js.LICENSE.txt → main.ad42919c.js.LICENSE.txt} +0 -0
  77. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/LICENSE +0 -0
  78. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/WHEEL +0 -0
  79. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/entry_points.txt +0 -0
  80. {xinference-1.2.1.dist-info → xinference-1.3.0.dist-info}/top_level.txt +0 -0
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import'./style.css';import FilterNoneIcon from'@mui/icons-material/FilterNone';import{Alert,Snackbar,Tooltip}from'@mui/material';import ClipboardJS from'clipboard';import React,{useState}from'react';import{jsx as _jsx}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var CopyComponent=function CopyComponent(_ref){var tip=_ref.tip,_text=_ref.text;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isCopySuccess=_useState2[0],setIsCopySuccess=_useState2[1];var handleCopy=function handleCopy(){var clipboard=new ClipboardJS('.copyText',{text:function text(){return _text;}});clipboard.on('success',function(e){e.clearSelection();setIsCopySuccess(true);});};return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Tooltip,{title:tip,placement:\"top\",children:/*#__PURE__*/_jsx(FilterNoneIcon,{className:\"copyText\",onClick:handleCopy})}),/*#__PURE__*/_jsx(Snackbar,{anchorOrigin:{vertical:'top',horizontal:'center'},open:isCopySuccess,autoHideDuration:1500,onClose:function onClose(){return setIsCopySuccess(false);},children:/*#__PURE__*/_jsx(Alert,{severity:\"success\",variant:\"filled\",sx:{width:'100%'},children:\"Copied to clipboard!\"})})]});};export default CopyComponent;","map":{"version":3,"names":["FilterNoneIcon","Alert","Snackbar","Tooltip","ClipboardJS","React","useState","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CopyComponent","_ref","tip","text","_useState","_useState2","_slicedToArray","isCopySuccess","setIsCopySuccess","handleCopy","clipboard","on","e","clearSelection","children","title","placement","className","onClick","anchorOrigin","vertical","horizontal","open","autoHideDuration","onClose","severity","variant","sx","width"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/components/copyComponent/copyComponent.js"],"sourcesContent":["import './style.css'\n\nimport FilterNoneIcon from '@mui/icons-material/FilterNone'\nimport { Alert, Snackbar, Tooltip } from '@mui/material'\nimport ClipboardJS from 'clipboard'\nimport React, { useState } from 'react'\n\nconst CopyComponent = ({ tip, text }) => {\n const [isCopySuccess, setIsCopySuccess] = useState(false)\n\n const handleCopy = () => {\n const clipboard = new ClipboardJS('.copyText', {\n text: () => text,\n })\n\n clipboard.on('success', (e) => {\n e.clearSelection()\n setIsCopySuccess(true)\n })\n }\n\n return (\n <>\n <Tooltip title={tip} placement=\"top\">\n <FilterNoneIcon className=\"copyText\" onClick={handleCopy} />\n </Tooltip>\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={isCopySuccess}\n autoHideDuration={1500}\n onClose={() => setIsCopySuccess(false)}\n >\n <Alert severity=\"success\" variant=\"filled\" sx={{ width: '100%' }}>\n Copied to clipboard!\n </Alert>\n </Snackbar>\n </>\n )\n}\n\nexport default CopyComponent\n"],"mappings":"6IAAA,MAAO,aAAa,CAEpB,MAAO,CAAAA,cAAc,KAAM,gCAAgC,CAC3D,OAASC,KAAK,CAAEC,QAAQ,CAAEC,OAAO,KAAQ,eAAe,CACxD,MAAO,CAAAC,WAAW,KAAM,WAAW,CACnC,MAAO,CAAAC,KAAK,EAAIC,QAAQ,KAAQ,OAAO,QAAAC,GAAA,IAAAC,IAAA,gCAAAC,QAAA,IAAAC,SAAA,gCAAAC,IAAA,IAAAC,KAAA,yBAEvC,GAAM,CAAAC,aAAa,CAAG,QAAhB,CAAAA,aAAaA,CAAAC,IAAA,CAAsB,IAAhB,CAAAC,GAAG,CAAAD,IAAA,CAAHC,GAAG,CAAEC,KAAI,CAAAF,IAAA,CAAJE,IAAI,CAChC,IAAAC,SAAA,CAA0CX,QAAQ,CAAC,KAAK,CAAC,CAAAY,UAAA,CAAAC,cAAA,CAAAF,SAAA,IAAlDG,aAAa,CAAAF,UAAA,IAAEG,gBAAgB,CAAAH,UAAA,IAEtC,GAAM,CAAAI,UAAU,CAAG,QAAb,CAAAA,UAAUA,CAAA,CAAS,CACvB,GAAM,CAAAC,SAAS,CAAG,GAAI,CAAAnB,WAAW,CAAC,WAAW,CAAE,CAC7CY,IAAI,CAAE,SAAAA,KAAA,QAAM,CAAAA,KAAI,EAClB,CAAC,CAAC,CAEFO,SAAS,CAACC,EAAE,CAAC,SAAS,CAAE,SAACC,CAAC,CAAK,CAC7BA,CAAC,CAACC,cAAc,CAAC,CAAC,CAClBL,gBAAgB,CAAC,IAAI,CAAC,CACxB,CAAC,CAAC,CACJ,CAAC,CAED,mBACET,KAAA,CAAAF,SAAA,EAAAiB,QAAA,eACEnB,IAAA,CAACL,OAAO,EAACyB,KAAK,CAAEb,GAAI,CAACc,SAAS,CAAC,KAAK,CAAAF,QAAA,cAClCnB,IAAA,CAACR,cAAc,EAAC8B,SAAS,CAAC,UAAU,CAACC,OAAO,CAAET,UAAW,CAAE,CAAC,CACrD,CAAC,cACVd,IAAA,CAACN,QAAQ,EACP8B,YAAY,CAAE,CAAEC,QAAQ,CAAE,KAAK,CAAEC,UAAU,CAAE,QAAS,CAAE,CACxDC,IAAI,CAAEf,aAAc,CACpBgB,gBAAgB,CAAE,IAAK,CACvBC,OAAO,CAAE,SAAAA,QAAA,QAAM,CAAAhB,gBAAgB,CAAC,KAAK,CAAC,EAAC,CAAAM,QAAA,cAEvCnB,IAAA,CAACP,KAAK,EAACqC,QAAQ,CAAC,SAAS,CAACC,OAAO,CAAC,QAAQ,CAACC,EAAE,CAAE,CAAEC,KAAK,CAAE,MAAO,CAAE,CAAAd,QAAA,CAAC,sBAElE,CAAO,CAAC,CACA,CAAC,EACX,CAAC,CAEP,CAAC,CAED,cAAe,CAAAd,aAAa","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"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{useCookies}from'react-cookie';import{useTranslation}from'react-i18next';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 modelAbilityArr=['generate','chat','vision'];var LaunchLLM=function LaunchLLM(_ref){var gpuAvailable=_ref.gpuAvailable;var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi,endPoint=_useContext.endPoint;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];// States used for filtering\nvar _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState(''),_useState6=_slicedToArray(_useState5,2),modelAbility=_useState6[0],setModelAbility=_useState6[1];var _useState7=useState(''),_useState8=_slicedToArray(_useState7,2),status=_useState8[0],setStatus=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),statusArr=_useState10[0],setStatusArr=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),completeDeleteArr=_useState12[0],setCompleteDeleteArr=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),collectionArr=_useState14[0],setCollectionArr=_useState14[1];var _useState15=useState([]),_useState16=_slicedToArray(_useState15,2),filterArr=_useState16[0],setFilterArr=_useState16[1];var _useTranslation=useTranslation(),t=_useTranslation.t;var filter=function filter(registration){if(searchTerm!==''){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';var modelDescription=registration.model_description?registration.model_description.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())&&!modelDescription.includes(searchTerm.toLowerCase())){return false;}}if(modelAbility&&registration.model_ability.indexOf(modelAbility)<0)return false;if(completeDeleteArr.includes(registration.model_name)){registration.model_specs.forEach(function(item){item.cache_status=Array.isArray(item)?[false]:false;});}if(statusArr.length===1){if(statusArr[0]==='cached'){var judge=registration.model_specs.some(function(spec){return filterCache(spec);});return judge&&!completeDeleteArr.includes(registration.model_name);}else{return collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name);}}else if(statusArr.length>1){var _judge=registration.model_specs.some(function(spec){return filterCache(spec);});return _judge&&!completeDeleteArr.includes(registration.model_name)&&(collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name));}return true;};var filterCache=function filterCache(spec){if(Array.isArray(spec.cache_status)){return spec.cache_status.some(function(cs){return cs;});}else{return spec.cache_status===true;}};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=function update(){if(isCallingApi||isUpdatingModel||cookie.token!=='no_auth'&&!sessionStorage.getItem('token'))return;try{setIsCallingApi(true);fetchWrapper.get('/v1/model_registrations/LLM?detailed=true').then(function(data){var builtinRegistrations=data.filter(function(v){return v.is_builtin;});setRegistrationData(builtinRegistrations);var collectionData=JSON.parse(localStorage.getItem('collectionArr'));setCollectionArr(collectionData);}).catch(function(error){console.error('Error:',error);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});}catch(error){console.error('Error:',error);}finally{setIsCallingApi(false);}};useEffect(function(){update();},[cookie.token]);var getCollectionArr=function getCollectionArr(data){setCollectionArr(data);};var handleChangeFilter=function handleChangeFilter(type,value){if(type==='modelAbility'){setModelAbility(value);setFilterArr([].concat(_toConsumableArray(filterArr.filter(function(item){return!modelAbilityArr.includes(item);})),[value]));}else{setStatus(value);var arr=[].concat(_toConsumableArray(filterArr.filter(function(item){return item!==value;})),[value]);setFilterArr(arr);setStatusArr(arr.filter(function(item){return!modelAbilityArr.includes(item);}));}};var handleDeleteChip=function handleDeleteChip(item){setFilterArr(filterArr.filter(function(subItem){return subItem!==item;}));if(item===modelAbility){setModelAbility('');}else{setStatusArr(statusArr.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 150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{sx:{marginTop:2,minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"ability-select-label\",children:t('launchModel.modelAbility')}),/*#__PURE__*/_jsxs(Select,{id:\"ability\",labelId:\"ability-select-label\",label:\"Model Ability\",onChange:function onChange(e){return handleChangeFilter('modelAbility',e.target.value);},value:modelAbility,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"generate\",children:t('launchModel.generate')}),/*#__PURE__*/_jsx(MenuItem,{value:\"chat\",children:t('launchModel.chat')}),/*#__PURE__*/_jsx(MenuItem,{value:\"vision\",children:t('launchModel.vision')})]})]}),/*#__PURE__*/_jsxs(FormControl,{sx:{marginTop:2,minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:t('launchModel.status')}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:t('launchModel.status'),onChange:function onChange(e){return handleChangeFilter('status',e.target.value);},value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:t('launchModel.cached')}),/*#__PURE__*/_jsx(MenuItem,{value:\"favorite\",children:t('launchModel.favorite')})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:t('launchModel.search'),value:searchTerm,onChange:function onChange(e){return setSearchTerm(e.target.value);},size:\"small\",hotkey:\"Enter\",t:t})})]}),/*#__PURE__*/_jsx(\"div\",{style:{margin:'0 0 30px 30px'},children:filterArr.map(function(item,index){return/*#__PURE__*/_jsx(Chip,{label:t(\"launchModel.\".concat(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,gpuAvailable:gpuAvailable,modelType:'LLM',onHandleCompleteDelete:handleCompleteDelete,onGetCollectionArr:getCollectionArr},filteredRegistration.model_name);})})]});};export default LaunchLLM;","map":{"version":3,"names":["Box","Chip","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","useCookies","useTranslation","ApiContext","fetchWrapper","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","modelAbilityArr","LaunchLLM","_ref","gpuAvailable","_useContext","isCallingApi","setIsCallingApi","endPoint","_useContext2","isUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","_slicedToArray","cookie","_useState","_useState2","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","modelAbility","setModelAbility","_useState7","_useState8","status","setStatus","_useState9","_useState10","statusArr","setStatusArr","_useState11","_useState12","completeDeleteArr","setCompleteDeleteArr","_useState13","_useState14","collectionArr","setCollectionArr","_useState15","_useState16","filterArr","setFilterArr","_useTranslation","t","filter","registration","modelName","model_name","toLowerCase","modelDescription","model_description","includes","model_ability","indexOf","model_specs","forEach","item","cache_status","Array","isArray","length","judge","some","spec","filterCache","cs","handleCompleteDelete","concat","_toConsumableArray","update","token","sessionStorage","getItem","get","then","data","builtinRegistrations","v","is_builtin","collectionData","JSON","parse","localStorage","catch","error","console","response","message","getCollectionArr","handleChangeFilter","type","value","arr","handleDeleteChip","subItem","m","children","style","display","gridTemplateColumns","columnGap","margin","sx","marginTop","minWidth","size","id","labelId","label","onChange","e","target","width","variant","hotkey","map","index","color","marginRight","onDelete","paddingLeft","gridGap","filteredRegistration","url","modelData","modelType","onHandleCompleteDelete","onGetCollectionArr"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/launchLLM.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'\nimport { useCookies } from 'react-cookie'\nimport { useTranslation } from 'react-i18next'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst modelAbilityArr = ['generate', 'chat', 'vision']\n\nconst LaunchLLM = ({ gpuAvailable }) => {\n const { isCallingApi, setIsCallingApi, endPoint } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n\n const [registrationData, setRegistrationData] = useState([])\n // States used for filtering\n const [searchTerm, setSearchTerm] = useState('')\n const [modelAbility, setModelAbility] = useState('')\n const [status, setStatus] = useState('')\n const [statusArr, setStatusArr] = useState([])\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n const [collectionArr, setCollectionArr] = useState([])\n const [filterArr, setFilterArr] = useState([])\n const { t } = useTranslation()\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 const modelDescription = registration.model_description\n ? registration.model_description.toLowerCase()\n : ''\n\n if (\n !modelName.includes(searchTerm.toLowerCase()) &&\n !modelDescription.includes(searchTerm.toLowerCase())\n ) {\n return false\n }\n }\n\n if (modelAbility && registration.model_ability.indexOf(modelAbility) < 0)\n return false\n\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.model_specs.forEach((item) => {\n item.cache_status = Array.isArray(item) ? [false] : false\n })\n }\n\n if (statusArr.length === 1) {\n if (statusArr[0] === 'cached') {\n const judge = registration.model_specs.some((spec) => filterCache(spec))\n return judge && !completeDeleteArr.includes(registration.model_name)\n } else {\n return collectionArr?.includes(registration.model_name)\n }\n } else if (statusArr.length > 1) {\n const judge = registration.model_specs.some((spec) => filterCache(spec))\n return (\n judge &&\n !completeDeleteArr.includes(registration.model_name) &&\n collectionArr?.includes(registration.model_name)\n )\n }\n\n return true\n }\n\n const filterCache = (spec) => {\n if (Array.isArray(spec.cache_status)) {\n return spec.cache_status.some((cs) => cs)\n } else {\n return spec.cache_status === true\n }\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = () => {\n if (\n isCallingApi ||\n isUpdatingModel ||\n (cookie.token !== 'no_auth' && !sessionStorage.getItem('token'))\n )\n return\n\n try {\n setIsCallingApi(true)\n\n fetchWrapper\n .get('/v1/model_registrations/LLM?detailed=true')\n .then((data) => {\n const builtinRegistrations = data.filter((v) => v.is_builtin)\n setRegistrationData(builtinRegistrations)\n const collectionData = JSON.parse(\n localStorage.getItem('collectionArr')\n )\n setCollectionArr(collectionData)\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\n }\n })\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [cookie.token])\n\n const getCollectionArr = (data) => {\n setCollectionArr(data)\n }\n\n const handleChangeFilter = (type, value) => {\n if (type === 'modelAbility') {\n setModelAbility(value)\n setFilterArr([\n ...filterArr.filter((item) => {\n return !modelAbilityArr.includes(item)\n }),\n value,\n ])\n } else {\n setStatus(value)\n const arr = [\n ...filterArr.filter((item) => {\n return item !== value\n }),\n value,\n ]\n setFilterArr(arr)\n setStatusArr(\n arr.filter((item) => {\n return !modelAbilityArr.includes(item)\n })\n )\n }\n }\n\n const handleDeleteChip = (item) => {\n setFilterArr(\n filterArr.filter((subItem) => {\n return subItem !== item\n })\n )\n if (item === modelAbility) {\n setModelAbility('')\n } else {\n setStatusArr(\n statusArr.filter((subItem) => {\n return subItem !== item\n })\n )\n if (item === status) setStatus('')\n }\n }\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '150px 150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl sx={{ marginTop: 2, minWidth: 120 }} size=\"small\">\n <InputLabel id=\"ability-select-label\">\n {t('launchModel.modelAbility')}\n </InputLabel>\n <Select\n id=\"ability\"\n labelId=\"ability-select-label\"\n label=\"Model Ability\"\n onChange={(e) => handleChangeFilter('modelAbility', e.target.value)}\n value={modelAbility}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"generate\">{t('launchModel.generate')}</MenuItem>\n <MenuItem value=\"chat\">{t('launchModel.chat')}</MenuItem>\n <MenuItem value=\"vision\">{t('launchModel.vision')}</MenuItem>\n </Select>\n </FormControl>\n <FormControl sx={{ marginTop: 2, minWidth: 120 }} size=\"small\">\n <InputLabel id=\"select-status\">{t('launchModel.status')}</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label={t('launchModel.status')}\n onChange={(e) => handleChangeFilter('status', e.target.value)}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"cached\">{t('launchModel.cached')}</MenuItem>\n <MenuItem value=\"favorite\">{t('launchModel.favorite')}</MenuItem>\n </Select>\n </FormControl>\n\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label={t('launchModel.search')}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n size=\"small\"\n hotkey=\"Enter\"\n t={t}\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={t(`launchModel.${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 gpuAvailable={gpuAvailable}\n modelType={'LLM'}\n onHandleCompleteDelete={handleCompleteDelete}\n onGetCollectionArr={getCollectionArr}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchLLM\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -1 +0,0 @@
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{Badge,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{useTranslation}from'react-i18next';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{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 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 newLlmData=[];var newEmbeddingModelData=[];var newImageModelData=[];var newAudioModelData=[];var newVideoModelData=[];var newRerankModelData=[];var newFlexibleModelData=[];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==='video'){newVideoModelData.push(newValue);}else if(newValue.model_type==='image'){newImageModelData.push(newValue);}else if(newValue.model_type==='rerank'){newRerankModelData.push(newValue);}else if(newValue.model_type==='flexible'){newFlexibleModelData.push(newValue);}});setLlmData(newLlmData);setEmbeddingModelData(newEmbeddingModelData);setAudioModelData(newAudioModelData);setVideoModelData(newVideoModelData);setImageModelData(newImageModelData);setRerankModelData(newRerankModelData);setFlexibleModelData(newFlexibleModelData);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:t('runningModels.name'),flex:1},{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(_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:t('runningModels.name'),flex:1},{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(_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:t('runningModels.name'),flex:1},{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(_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,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(\"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 videoModelColumns=embeddingModelColumns;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')});};useEffect(function(){var dataMap={'Language Models':llmData,'Embedding Models':embeddingModelData,'Rerank Models':rerankModelData,'Image Models':imageModelData,'Audio Models':audioModelData,'Video Models':videoModelData,'Flexible Models':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":["DeleteOutlineOutlinedIcon","OpenInBrowserOutlinedIcon","TabContext","TabList","TabPanel","Badge","Box","Stack","Tab","DataGrid","React","useContext","useEffect","useState","useCookies","useTranslation","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","handleTabChange","event","newValue","setItem","update","token","replace","id","url","get","then","response","newLlmData","newEmbeddingModelData","newImageModelData","newAudioModelData","newVideoModelData","newRerankModelData","newFlexibleModelData","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","videoModelColumns","rerankModelColumns","flexibleModelColumns","dataGridStyle","borderBottom","fontWeight","overflowX","overflow","borderTop","noRowsOverlay","height","noResultsOverlay","dataMap","map","item","_dataMap$item$label","length","sx","padding","onChange","color","variant","invisible","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 { Badge, 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 { useTranslation } from 'react-i18next'\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'\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\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 newLlmData = []\n const newEmbeddingModelData = []\n const newImageModelData = []\n const newAudioModelData = []\n const newVideoModelData = []\n const newRerankModelData = []\n const newFlexibleModelData = []\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 === 'video') {\n newVideoModelData.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 } else if (newValue.model_type === 'flexible') {\n newFlexibleModelData.push(newValue)\n }\n })\n setLlmData(newLlmData)\n setEmbeddingModelData(newEmbeddingModelData)\n setAudioModelData(newAudioModelData)\n setVideoModelData(newVideoModelData)\n setImageModelData(newImageModelData)\n setRerankModelData(newRerankModelData)\n setFlexibleModelData(newFlexibleModelData)\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: t('runningModels.name'),\n flex: 1,\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 <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 const embeddingModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\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 <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: t('runningModels.name'),\n flex: 1,\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 //这个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 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 </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 videoModelColumns = embeddingModelColumns\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 useEffect(() => {\n const dataMap = {\n 'Language Models': llmData,\n 'Embedding Models': embeddingModelData,\n 'Rerank Models': rerankModelData,\n 'Image Models': imageModelData,\n 'Audio Models': audioModelData,\n 'Video Models': videoModelData,\n 'Flexible Models': 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 _classCallCheck from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";import _createClass from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/createClass.js\";import _inherits from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/inherits.js\";import _createSuper from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\";import Table from'@mui/material/Table';import TableBody from'@mui/material/TableBody';import TableHead from'@mui/material/TableHead';import TableRow from'@mui/material/TableRow';import Grid from'@mui/material/Unstable_Grid2';import React from'react';import fetchWrapper from'../../components/fetchWrapper';import{toReadableSize}from'../../components/utils';import{StyledTableCell,StyledTableRow}from'./style';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var NodeInfo=/*#__PURE__*/function(_React$Component){_inherits(NodeInfo,_React$Component);var _super=_createSuper(NodeInfo);function NodeInfo(props){var _this;_classCallCheck(this,NodeInfo);_this=_super.call(this,props);_this.nodeRole=props.nodeRole;_this.endpoint=props.endpoint;_this.state={version:{},info:[]};_this.t=props.t;return _this;}_createClass(NodeInfo,[{key:\"refreshInfo\",value:function refreshInfo(){var _this2=this;if(this.props.cookie.token===''||this.props.cookie.token===undefined||this.props.cookie.token!=='no_auth'&&!sessionStorage.getItem('token')){return;}fetchWrapper.get('/v1/cluster/info?detailed=true').then(function(data){var state=_this2.state;state['info']=data;_this2.setState(state);}).catch(function(error){console.error('Error:',error);if(error.response.status==403){_this2.props.handleGoBack();}});if(JSON.stringify(this.state.version)==='{}'){fetchWrapper.get('/v1/cluster/version').then(function(data){var state=_this2.state;state['version']={release:'v'+data['version'],commit:data['full-revisionid']};_this2.setState(state);}).catch(function(error){console.error('Error:',error);if(error.response.status==403){_this2.props.handleGoBack();}});}}},{key:\"componentDidMount\",value:function componentDidMount(){var _this3=this;this.interval=setInterval(function(){return _this3.refreshInfo();},5000);this.refreshInfo();}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){clearInterval(this.interval);}},{key:\"render\",value:function render(){var _this4=this;if(this.state===undefined||this.state['info']===[]){return/*#__PURE__*/_jsx(\"div\",{children:\"Loading\"});}if(this.nodeRole!=='Worker-Details'){var roleData=this.state['info'].filter(function(obj){return obj['node_type']===_this4.nodeRole;});var sum=function sum(arr){return arr.reduce(function(a,b){return a+b;},0);};var gatherResourceStats=function gatherResourceStats(prop){return sum(roleData.map(function(obj){return obj[prop];}));};var resourceStats={cpu_total:gatherResourceStats('cpu_count'),cpu_avail:gatherResourceStats('cpu_available'),memory_total:gatherResourceStats('mem_total'),memory_avail:gatherResourceStats('mem_available'),gpu_total:gatherResourceStats('gpu_count'),gpu_memory_total:gatherResourceStats('gpu_vram_total'),gpu_memory_avail:gatherResourceStats('gpu_vram_available')};//for all cases, we will at least have cpu information available.\nresourceStats.cpu_used=resourceStats.cpu_total-resourceStats.cpu_avail;resourceStats.memory_used=resourceStats.memory_total-resourceStats.memory_avail;var row_count=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.count')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsx(Grid,{container:true,children:/*#__PURE__*/_jsx(Grid,{children:roleData.length})})})]});var CPU_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.cpuInfo')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsxs(Grid,{container:true,children:[/*#__PURE__*/_jsxs(Grid,{xs:4,children:[this.t('clusterInfo.usage'),' ',resourceStats.cpu_used.toFixed(2)]}),/*#__PURE__*/_jsxs(Grid,{xs:8,children:[this.t('clusterInfo.total'),' ',resourceStats.cpu_total.toFixed(2)]})]})})]});var CPU_Memory_Info_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.cpuMemoryInfo')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsxs(Grid,{container:true,children:[/*#__PURE__*/_jsxs(Grid,{xs:4,children:[this.t('clusterInfo.usage'),' ',toReadableSize(resourceStats.memory_used)]}),/*#__PURE__*/_jsxs(Grid,{xs:8,children:[this.t('clusterInfo.total'),' ',toReadableSize(resourceStats.memory_total)]})]})})]});var version_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.version')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsxs(Grid,{container:true,children:[/*#__PURE__*/_jsxs(Grid,{xs:4,children:[this.t('clusterInfo.release'),\" \",this.state.version.release]}),/*#__PURE__*/_jsxs(Grid,{xs:8,children:[this.t('clusterInfo.commit'),\" \",this.state.version.commit]})]})})]});var table_bodies;//case that we do not have GPU presents.\nif(resourceStats.gpu_memory_total===0){table_bodies=[row_count,CPU_row,CPU_Memory_Info_row,version_row];}else{resourceStats.gpu_memory_used=resourceStats.gpu_memory_total-resourceStats.gpu_memory_avail;var GPU_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.gpuInfo')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsx(Grid,{container:true,children:/*#__PURE__*/_jsxs(Grid,{xs:12,children:[this.t('clusterInfo.total'),' ',resourceStats.gpu_total.toFixed(2)]})})})]});var GPU_Memory_Info_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.gpuMemoryInfo')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsxs(Grid,{container:true,children:[/*#__PURE__*/_jsxs(Grid,{xs:4,children:[this.t('clusterInfo.usage'),' ',toReadableSize(resourceStats.gpu_memory_used)]}),/*#__PURE__*/_jsxs(Grid,{xs:8,children:[this.t('clusterInfo.total'),' ',toReadableSize(resourceStats.gpu_memory_total)]})]})})]});table_bodies=[row_count,CPU_row,CPU_Memory_Info_row,GPU_row,GPU_Memory_Info_row,version_row];}if(this.nodeRole==='Supervisor'){var supervisor_addr_row=/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:this.t('clusterInfo.address')}),/*#__PURE__*/_jsx(StyledTableCell,{children:/*#__PURE__*/_jsx(Grid,{container:true,children:/*#__PURE__*/_jsx(Grid,{children:roleData[0]?roleData[0]['ip_address']:'-'})})})]});table_bodies.splice(1,0,supervisor_addr_row);}return/*#__PURE__*/_jsxs(Table,{size:\"small\",children:[/*#__PURE__*/_jsx(TableHead,{children:/*#__PURE__*/_jsxs(TableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.item')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:/*#__PURE__*/_jsx(Grid,{container:true,children:/*#__PURE__*/_jsx(Grid,{children:this.t('clusterInfo.value')})})})]})}),/*#__PURE__*/_jsx(TableBody,{children:table_bodies})]});}else{var workerData=this.state['info'].filter(function(obj){return obj['node_type']==='Worker';});return/*#__PURE__*/_jsxs(Table,{size:\"small\",children:[/*#__PURE__*/_jsx(TableHead,{children:/*#__PURE__*/_jsxs(TableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.nodeType')}),/*#__PURE__*/_jsxs(StyledTableCell,{style:{fontWeight:'bolder'},children:[\"Address\",this.t('clusterInfo.address')]}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.cpuUsage')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.cpuTotal')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.memUsage')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.memTotal')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.gpuCount')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.gpuMemUsage')}),/*#__PURE__*/_jsx(StyledTableCell,{style:{fontWeight:'bolder'},children:this.t('clusterInfo.gpuMemTotal')})]})}),/*#__PURE__*/_jsx(TableBody,{children:workerData.map(function(row){return/*#__PURE__*/_jsxs(StyledTableRow,{children:[/*#__PURE__*/_jsx(StyledTableCell,{children:_this4.t('clusterInfo.worker')}),/*#__PURE__*/_jsx(StyledTableCell,{children:row['ip_address']}),/*#__PURE__*/_jsx(StyledTableCell,{children:(row['cpu_count']-row['cpu_available']).toFixed(2)}),/*#__PURE__*/_jsx(StyledTableCell,{children:row['cpu_count'].toFixed(2)}),/*#__PURE__*/_jsx(StyledTableCell,{children:toReadableSize(row['mem_total']-row['mem_available'])}),/*#__PURE__*/_jsx(StyledTableCell,{children:toReadableSize(row['mem_total'])}),/*#__PURE__*/_jsx(StyledTableCell,{children:row['gpu_count'].toFixed(2)}),/*#__PURE__*/_jsx(StyledTableCell,{children:toReadableSize(row['gpu_vram_total']-row['gpu_vram_available'])}),/*#__PURE__*/_jsx(StyledTableCell,{children:toReadableSize(row['gpu_vram_total'])})]});})})]});}}}]);return NodeInfo;}(React.Component);export default NodeInfo;","map":{"version":3,"names":["Table","TableBody","TableHead","TableRow","Grid","React","fetchWrapper","toReadableSize","StyledTableCell","StyledTableRow","jsx","_jsx","jsxs","_jsxs","NodeInfo","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","nodeRole","endpoint","state","version","info","t","_createClass","key","value","refreshInfo","_this2","cookie","token","undefined","sessionStorage","getItem","get","then","data","setState","catch","error","console","response","status","handleGoBack","JSON","stringify","release","commit","componentDidMount","_this3","interval","setInterval","componentWillUnmount","clearInterval","render","_this4","children","roleData","filter","obj","sum","arr","reduce","a","b","gatherResourceStats","prop","map","resourceStats","cpu_total","cpu_avail","memory_total","memory_avail","gpu_total","gpu_memory_total","gpu_memory_avail","cpu_used","memory_used","row_count","container","length","CPU_row","xs","toFixed","CPU_Memory_Info_row","version_row","table_bodies","gpu_memory_used","GPU_row","GPU_Memory_Info_row","supervisor_addr_row","splice","size","style","fontWeight","workerData","row","Component"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/cluster_info/nodeInfo.js"],"sourcesContent":["import Table from '@mui/material/Table'\nimport TableBody from '@mui/material/TableBody'\nimport TableHead from '@mui/material/TableHead'\nimport TableRow from '@mui/material/TableRow'\nimport Grid from '@mui/material/Unstable_Grid2'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\nimport fetchWrapper from '../../components/fetchWrapper'\nimport { toReadableSize } from '../../components/utils'\nimport { StyledTableCell, StyledTableRow } from './style'\n\nclass NodeInfo extends React.Component {\n constructor(props) {\n super(props)\n this.nodeRole = props.nodeRole\n this.endpoint = props.endpoint\n this.state = {\n version: {},\n info: [],\n }\n this.t = props.t\n }\n\n refreshInfo() {\n if (\n this.props.cookie.token === '' ||\n this.props.cookie.token === undefined ||\n (this.props.cookie.token !== 'no_auth' &&\n !sessionStorage.getItem('token'))\n ) {\n return\n }\n fetchWrapper\n .get('/v1/cluster/info?detailed=true')\n .then((data) => {\n const { state } = this\n state['info'] = data\n this.setState(state)\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error.response.status == 403) {\n this.props.handleGoBack()\n }\n })\n\n if (JSON.stringify(this.state.version) === '{}') {\n fetchWrapper\n .get('/v1/cluster/version')\n .then((data) => {\n const { state } = this\n state['version'] = {\n release: 'v' + data['version'],\n commit: data['full-revisionid'],\n }\n this.setState(state)\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error.response.status == 403) {\n this.props.handleGoBack()\n }\n })\n }\n }\n\n componentDidMount() {\n this.interval = setInterval(() => this.refreshInfo(), 5000)\n this.refreshInfo()\n }\n\n componentWillUnmount() {\n clearInterval(this.interval)\n }\n\n render() {\n if (this.state === undefined || this.state['info'] === []) {\n return <div>Loading</div>\n }\n\n if (this.nodeRole !== 'Worker-Details') {\n const roleData = this.state['info'].filter(\n (obj) => obj['node_type'] === this.nodeRole\n )\n\n const sum = (arr) => {\n return arr.reduce((a, b) => a + b, 0)\n }\n\n const gatherResourceStats = (prop) =>\n sum(roleData.map((obj) => obj[prop]))\n\n const resourceStats = {\n cpu_total: gatherResourceStats('cpu_count'),\n cpu_avail: gatherResourceStats('cpu_available'),\n memory_total: gatherResourceStats('mem_total'),\n memory_avail: gatherResourceStats('mem_available'),\n gpu_total: gatherResourceStats('gpu_count'),\n gpu_memory_total: gatherResourceStats('gpu_vram_total'),\n gpu_memory_avail: gatherResourceStats('gpu_vram_available'),\n }\n\n //for all cases, we will at least have cpu information available.\n resourceStats.cpu_used = resourceStats.cpu_total - resourceStats.cpu_avail\n resourceStats.memory_used =\n resourceStats.memory_total - resourceStats.memory_avail\n\n const row_count = (\n <StyledTableRow>\n <StyledTableCell>{this.t('clusterInfo.count')}</StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid>{roleData.length}</Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n const CPU_row = (\n <StyledTableRow>\n <StyledTableCell>{this.t('clusterInfo.cpuInfo')}</StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid xs={4}>\n {this.t('clusterInfo.usage')}{' '}\n {resourceStats.cpu_used.toFixed(2)}\n </Grid>\n <Grid xs={8}>\n {this.t('clusterInfo.total')}{' '}\n {resourceStats.cpu_total.toFixed(2)}\n </Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n const CPU_Memory_Info_row = (\n <StyledTableRow>\n <StyledTableCell>\n {this.t('clusterInfo.cpuMemoryInfo')}\n </StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid xs={4}>\n {this.t('clusterInfo.usage')}{' '}\n {toReadableSize(resourceStats.memory_used)}\n </Grid>\n <Grid xs={8}>\n {this.t('clusterInfo.total')}{' '}\n {toReadableSize(resourceStats.memory_total)}\n </Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n const version_row = (\n <StyledTableRow>\n <StyledTableCell>{this.t('clusterInfo.version')}</StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid xs={4}>\n {this.t('clusterInfo.release')} {this.state.version.release}\n </Grid>\n <Grid xs={8}>\n {this.t('clusterInfo.commit')} {this.state.version.commit}\n </Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n let table_bodies\n //case that we do not have GPU presents.\n if (resourceStats.gpu_memory_total === 0) {\n table_bodies = [row_count, CPU_row, CPU_Memory_Info_row, version_row]\n } else {\n resourceStats.gpu_memory_used =\n resourceStats.gpu_memory_total - resourceStats.gpu_memory_avail\n\n const GPU_row = (\n <StyledTableRow>\n <StyledTableCell>{this.t('clusterInfo.gpuInfo')}</StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid xs={12}>\n {this.t('clusterInfo.total')}{' '}\n {resourceStats.gpu_total.toFixed(2)}\n </Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n const GPU_Memory_Info_row = (\n <StyledTableRow>\n <StyledTableCell>\n {this.t('clusterInfo.gpuMemoryInfo')}\n </StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid xs={4}>\n {this.t('clusterInfo.usage')}{' '}\n {toReadableSize(resourceStats.gpu_memory_used)}\n </Grid>\n <Grid xs={8}>\n {this.t('clusterInfo.total')}{' '}\n {toReadableSize(resourceStats.gpu_memory_total)}\n </Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n\n table_bodies = [\n row_count,\n CPU_row,\n CPU_Memory_Info_row,\n GPU_row,\n GPU_Memory_Info_row,\n version_row,\n ]\n }\n\n if (this.nodeRole === 'Supervisor') {\n const supervisor_addr_row = (\n <StyledTableRow>\n <StyledTableCell>{this.t('clusterInfo.address')}</StyledTableCell>\n <StyledTableCell>\n <Grid container>\n <Grid>{roleData[0] ? roleData[0]['ip_address'] : '-'}</Grid>\n </Grid>\n </StyledTableCell>\n </StyledTableRow>\n )\n table_bodies.splice(1, 0, supervisor_addr_row)\n }\n\n return (\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.item')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n <Grid container>\n <Grid>{this.t('clusterInfo.value')}</Grid>\n </Grid>\n </StyledTableCell>\n </TableRow>\n </TableHead>\n <TableBody>{table_bodies}</TableBody>\n </Table>\n )\n } else {\n const workerData = this.state['info'].filter(\n (obj) => obj['node_type'] === 'Worker'\n )\n\n return (\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.nodeType')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n Address{this.t('clusterInfo.address')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.cpuUsage')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.cpuTotal')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.memUsage')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.memTotal')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.gpuCount')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.gpuMemUsage')}\n </StyledTableCell>\n <StyledTableCell style={{ fontWeight: 'bolder' }}>\n {this.t('clusterInfo.gpuMemTotal')}\n </StyledTableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {workerData.map((row) => (\n <StyledTableRow>\n <StyledTableCell>\n {this.t('clusterInfo.worker')}\n </StyledTableCell>\n <StyledTableCell>{row['ip_address']}</StyledTableCell>\n <StyledTableCell>\n {(row['cpu_count'] - row['cpu_available']).toFixed(2)}\n </StyledTableCell>\n <StyledTableCell>{row['cpu_count'].toFixed(2)}</StyledTableCell>\n <StyledTableCell>\n {toReadableSize(row['mem_total'] - row['mem_available'])}\n </StyledTableCell>\n <StyledTableCell>\n {toReadableSize(row['mem_total'])}\n </StyledTableCell>\n <StyledTableCell>{row['gpu_count'].toFixed(2)}</StyledTableCell>\n <StyledTableCell>\n {toReadableSize(\n row['gpu_vram_total'] - row['gpu_vram_available']\n )}\n </StyledTableCell>\n <StyledTableCell>\n {toReadableSize(row['gpu_vram_total'])}\n </StyledTableCell>\n </StyledTableRow>\n ))}\n </TableBody>\n </Table>\n )\n }\n }\n}\n\nNodeInfo.propTypes = {\n nodeRole: PropTypes.string,\n endpoint: PropTypes.string,\n}\n\nexport default NodeInfo\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}