xinference 0.9.4__py3-none-any.whl → 0.10.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/oauth2/auth_service.py +47 -18
- xinference/api/oauth2/types.py +1 -0
- xinference/api/restful_api.py +9 -1
- xinference/client/restful/restful_client.py +12 -2
- xinference/conftest.py +13 -2
- xinference/core/supervisor.py +32 -1
- xinference/core/worker.py +139 -20
- xinference/deploy/cmdline.py +119 -20
- xinference/model/llm/__init__.py +4 -0
- xinference/model/llm/llm_family.json +627 -0
- xinference/model/llm/llm_family_modelscope.json +471 -0
- xinference/model/llm/pytorch/core.py +2 -0
- xinference/model/llm/pytorch/deepseek_vl.py +232 -0
- xinference/model/llm/pytorch/omnilmm.py +153 -0
- xinference/model/llm/utils.py +11 -1
- xinference/model/llm/vllm/core.py +3 -0
- xinference/thirdparty/deepseek_vl/__init__.py +31 -0
- xinference/thirdparty/deepseek_vl/models/__init__.py +28 -0
- xinference/thirdparty/deepseek_vl/models/clip_encoder.py +242 -0
- xinference/thirdparty/deepseek_vl/models/image_processing_vlm.py +208 -0
- xinference/thirdparty/deepseek_vl/models/modeling_vlm.py +170 -0
- xinference/thirdparty/deepseek_vl/models/processing_vlm.py +390 -0
- xinference/thirdparty/deepseek_vl/models/projector.py +100 -0
- xinference/thirdparty/deepseek_vl/models/sam.py +593 -0
- xinference/thirdparty/deepseek_vl/models/siglip_vit.py +681 -0
- xinference/thirdparty/deepseek_vl/utils/__init__.py +18 -0
- xinference/thirdparty/deepseek_vl/utils/conversation.py +348 -0
- xinference/thirdparty/deepseek_vl/utils/io.py +78 -0
- xinference/thirdparty/omnilmm/__init__.py +0 -0
- xinference/thirdparty/omnilmm/chat.py +216 -0
- xinference/thirdparty/omnilmm/constants.py +4 -0
- xinference/thirdparty/omnilmm/conversation.py +332 -0
- xinference/thirdparty/omnilmm/model/__init__.py +1 -0
- xinference/thirdparty/omnilmm/model/omnilmm.py +594 -0
- xinference/thirdparty/omnilmm/model/resampler.py +166 -0
- xinference/thirdparty/omnilmm/model/utils.py +563 -0
- xinference/thirdparty/omnilmm/train/__init__.py +13 -0
- xinference/thirdparty/omnilmm/train/train_utils.py +150 -0
- xinference/thirdparty/omnilmm/utils.py +134 -0
- xinference/web/ui/build/asset-manifest.json +3 -3
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/js/main.98516614.js +3 -0
- xinference/web/ui/build/static/js/main.98516614.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/139969fd25258eb7decc9505f30b779089bba50c402bb5c663008477c7bff73b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3f357ab57b8e7fade54c667f0e0ebf2787566f72bfdca0fea14e395b5c203753.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9d7c49815d97539207e5aab2fb967591b5fed7791218a0762539efc9491f36af.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d0d0b591d9adaf42b83ad6633f8b7c118541a4b80ea957c303d3bf9b86fbad0a.json +1 -0
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/METADATA +18 -5
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/RECORD +55 -28
- xinference/web/ui/build/static/js/main.66b1c4fb.js +0 -3
- xinference/web/ui/build/static/js/main.66b1c4fb.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/c2124cfe036b26befcbd386d1d17743b1a58d0b7a041a17bb67f9924400d63c3.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/fd4a8ae5d192331af1bedd1d2d70efcc569708ee6cc4cb479b225d059482aa81.json +0 -1
- /xinference/web/ui/build/static/js/{main.66b1c4fb.js.LICENSE.txt → main.98516614.js.LICENSE.txt} +0 -0
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/LICENSE +0 -0
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/WHEEL +0 -0
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/entry_points.txt +0 -0
- {xinference-0.9.4.dist-info → xinference-0.10.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _asyncToGenerator from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,FormControl,TextField}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import AudioCard from'./audioCard';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchAudio=function LaunchAudio(){var endPoint=useContext(ApiContext).endPoint;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;// States used for filtering\nvar _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var handleChange=function handleChange(event){setSearchTerm(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';return modelName.includes(searchTerm.toLowerCase());};var update=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,registrations,builtinAudioModels;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(isCallingApi||isUpdatingModel)){_context.next=2;break;}return _context.abrupt(\"return\");case 2:_context.prev=2;setIsCallingApi(true);_context.next=6;return fetcher(\"\".concat(endPoint,\"/v1/model_registrations/audio?detailed=true\"),{method:'GET'});case 6:response=_context.sent;_context.next=9;return response.json();case 9:registrations=_context.sent;builtinAudioModels=registrations.filter(function(v){return v.is_builtin;});setRegistrationData(builtinAudioModels);_context.next=17;break;case 14:_context.prev=14;_context.t0=_context[\"catch\"](2);console.error('Error:',_context.t0);case 17:_context.prev=17;setIsCallingApi(false);return _context.finish(17);case 20:case\"end\":return _context.stop();}},_callee,null,[[2,14,17,20]]);}));return function update(){return _ref.apply(this,arguments);};}();useEffect(function(){update();// eslint-disable-next-line\n},[]);var style={display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'};return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsx(\"div\",{style:{display:'grid',gridTemplateColumns:'1fr',margin:'30px 2rem'},children:/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(TextField,{id:\"search\",type:\"search\",label:\"Search for audio model name\",value:searchTerm,onChange:handleChange,size:\"small\"})})}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(AudioCard,{url:endPoint,modelData:filteredRegistration});})})]});};export default LaunchAudio;","map":{"version":3,"names":["Box","FormControl","TextField","React","useContext","useEffect","useState","ApiContext","fetcher","AudioCard","jsx","_jsx","jsxs","_jsxs","LaunchAudio","endPoint","_useState","_useState2","_slicedToArray","registrationData","setRegistrationData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","_useState3","_useState4","searchTerm","setSearchTerm","handleChange","event","target","value","filter","registration","modelName","model_name","toLowerCase","includes","update","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","registrations","builtinAudioModels","wrap","_callee$","_context","prev","next","abrupt","concat","method","sent","json","v","is_builtin","t0","console","error","finish","stop","apply","arguments","style","display","gridTemplateColumns","paddingLeft","gridGap","m","children","margin","variant","id","type","label","onChange","size","map","filteredRegistration","url","modelData"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/launchAudio.js"],"sourcesContent":["import { Box, FormControl, TextField } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport AudioCard from './audioCard'\n\nconst LaunchAudio = () => {\n let endPoint = useContext(ApiContext).endPoint\n const [registrationData, setRegistrationData] = useState([])\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n\n // States used for filtering\n const [searchTerm, setSearchTerm] = useState('')\n\n const handleChange = (event) => {\n setSearchTerm(event.target.value)\n }\n\n const filter = (registration) => {\n if (!registration || typeof searchTerm !== 'string') return false\n const modelName = registration.model_name\n ? registration.model_name.toLowerCase()\n : ''\n return modelName.includes(searchTerm.toLowerCase())\n }\n\n const update = async () => {\n if (isCallingApi || isUpdatingModel) return\n\n try {\n setIsCallingApi(true)\n\n const response = await fetcher(\n `${endPoint}/v1/model_registrations/audio?detailed=true`,\n {\n method: 'GET',\n }\n )\n\n const registrations = await response.json()\n\n const builtinAudioModels = registrations.filter((v) => {\n return v.is_builtin\n })\n setRegistrationData(builtinAudioModels)\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n // eslint-disable-next-line\n }, [])\n\n const style = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n gridGap: '2rem 0rem',\n }\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '1fr',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <TextField\n id=\"search\"\n type=\"search\"\n label=\"Search for audio model name\"\n value={searchTerm}\n onChange={handleChange}\n size=\"small\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <AudioCard url={endPoint} modelData={filteredRegistration} />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchAudio\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import DeleteOutlineOutlinedIcon from'@mui/icons-material/DeleteOutlineOutlined';import OpenInBrowserOutlinedIcon from'@mui/icons-material/OpenInBrowserOutlined';import{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,Stack,Tab}from'@mui/material';import{DataGrid}from'@mui/x-data-grid';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import fetcher from'../../components/fetcher';import Title from'../../components/Title';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var RunningModels=function RunningModels(){var _React$useState=React.useState('1'),_React$useState2=_slicedToArray(_React$useState,2),tabValue=_React$useState2[0],setTabValue=_React$useState2[1];var _useState=useState([]),_useState2=_slicedToArray(_useState,2),llmData=_useState2[0],setLlmData=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),embeddingModelData=_useState4[0],setEmbeddingModelData=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),imageModelData=_useState6[0],setImageModelData=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),audioModelData=_useState8[0],setAudioModelData=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),rerankModelData=_useState10[0],setRerankModelData=_useState10[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel,setIsUpdatingModel=_useContext2.setIsUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();var endPoint=useContext(ApiContext).endPoint;var handleTabChange=function handleTabChange(event,newValue){setTabValue(newValue);};var update=function update(isCallingApi){if(cookie.token===''||cookie.token===undefined){return;}if(cookie.token==='need_auth'){navigate('/login',{replace:true});return;}if(isCallingApi){setLlmData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setEmbeddingModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setAudioModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setImageModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setRerankModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);}else{setIsUpdatingModel(true);fetcher(\"\".concat(endPoint,\"/v1/models\"),{method:'GET'}).then(function(response){if(!response.ok){response.json().then(function(errorData){setErrorMsg(\"Login failed: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));});}else{response.json().then(function(response){var newLlmData=[];var newEmbeddingModelData=[];var newImageModelData=[];var newAudioModelData=[];var newRerankModelData=[];response.data.forEach(function(model){var newValue=_objectSpread(_objectSpread({},model),{},{id:model.id,url:model.id});if(newValue.model_type==='LLM'){newLlmData.push(newValue);}else if(newValue.model_type==='embedding'){newEmbeddingModelData.push(newValue);}else if(newValue.model_type==='audio'){newAudioModelData.push(newValue);}else if(newValue.model_type==='image'){newImageModelData.push(newValue);}else if(newValue.model_type==='rerank'){newRerankModelData.push(newValue);}});setLlmData(newLlmData);setEmbeddingModelData(newEmbeddingModelData);setAudioModelData(newAudioModelData);setImageModelData(newImageModelData);setRerankModelData(newRerankModelData);setIsUpdatingModel(false);});}}).catch(function(error){console.error('Error:',error);setIsUpdatingModel(false);});}};useEffect(function(){update(isCallingApi);// eslint-disable-next-line\n},[isCallingApi,cookie.token]);var llmColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'model_size_in_billions',headerName:'Size',flex:1},{field:'quantization',headerName:'Quantization',flex:1},{field:'replica',headerName:'Replica',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref){var row=_ref.row;var url=row.url;var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var gradioUrl=\"\".concat(endPoint,\"/v1/ui/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(\"button\",{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_name:row.model_family,model_size_in_billions:row.model_size_in_billions,model_format:row.model_format,quantization:row.quantization,context_length:row.context_length,model_ability:row.model_ability,model_description:row.model_description,model_lang:row.model_lang})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var embeddingModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'replica',headerName:'Replica',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref2){var row=_ref2.row;var url=row.url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsx(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})});}}];var imageModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250},{field:'model_name',headerName:'Name',flex:1},{field:'address',headerName:'Address',flex:1},{field:'accelerators',headerName:'GPU Indexes',flex:1},{field:'url',headerName:'Actions',flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref3){var row=_ref3.row;//这个url指的是model_uid\nvar url=row.url;console.log('url: '+url);var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var gradioUrl=\"\".concat(endPoint,\"/v1/ui/images/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(\"button\",{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_family:row.model_family,model_id:row.id,controlnet:row.controlnet,model_revision:row.model_revision,model_name:row.model_name})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(\"button\",{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var audioModelColumns=embeddingModelColumns;var rerankModelColumns=embeddingModelColumns;var dataGridStyle={'& .MuiDataGrid-cell':{borderBottom:'none'},'& .MuiDataGrid-columnHeaders':{borderBottom:'none'},'& .MuiDataGrid-columnHeaderTitle':{fontWeight:'bold'},'& .MuiDataGrid-virtualScroller':{overflowX:'visible !important',overflow:'visible'},'& .MuiDataGrid-footerContainer':{borderTop:'none'},'border-width':'0px'};var noRowsOverlay=function noRowsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:\"No Running Models\"});};var noResultsOverlay=function noResultsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:\"No Running Models Matches\"});};return/*#__PURE__*/_jsxs(Box,{sx:{height:'100%',width:'100%',paddingLeft:'20px',paddingTop:'20px'},children:[/*#__PURE__*/_jsx(Title,{title:\"Running Models\"}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:tabValue,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsxs(TabList,{value:tabValue,onChange:handleTabChange,\"aria-label\":\"tabs\",children:[/*#__PURE__*/_jsx(Tab,{label:\"Language Models\",value:\"1\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Models\",value:\"2\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank models\",value:\"3\"}),/*#__PURE__*/_jsx(Tab,{label:\"Image models\",value:\"4\"}),/*#__PURE__*/_jsx(Tab,{label:\"Audio models\",value:\"5\"})]})}),/*#__PURE__*/_jsx(TabPanel,{value:\"1\",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:\"2\",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:\"3\",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:\"4\",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:\"5\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:audioModelData,columns:audioModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})})]})]});};export default RunningModels;","map":{"version":3,"names":["DeleteOutlineOutlinedIcon","OpenInBrowserOutlinedIcon","TabContext","TabList","TabPanel","Box","Stack","Tab","DataGrid","React","useContext","useEffect","useState","useCookies","useNavigate","ApiContext","ErrorMessageSnackBar","fetcher","Title","jsx","_jsx","jsxs","_jsxs","RunningModels","_React$useState","_React$useState2","_slicedToArray","tabValue","setTabValue","_useState","_useState2","llmData","setLlmData","_useState3","_useState4","embeddingModelData","setEmbeddingModelData","_useState5","_useState6","imageModelData","setImageModelData","_useState7","_useState8","audioModelData","setAudioModelData","_useState9","_useState10","rerankModelData","setRerankModelData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","setIsUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","cookie","navigate","endPoint","handleTabChange","event","newValue","update","token","undefined","replace","id","url","concat","method","then","response","ok","json","errorData","status","detail","newLlmData","newEmbeddingModelData","newImageModelData","newAudioModelData","newRerankModelData","data","forEach","model","_objectSpread","model_type","push","catch","error","console","llmColumns","field","headerName","flex","minWidth","sortable","filterable","disableColumnMenu","renderCell","_ref","row","openUrl","closeUrl","gradioUrl","style","width","display","justifyContent","alignItems","children","title","borderWidth","backgroundColor","paddingLeft","paddingRight","onClick","log","headers","body","JSON","stringify","model_name","model_family","model_size_in_billions","model_format","quantization","context_length","model_ability","model_description","model_lang","window","open","finally","m","p","borderRadius","border","borderColor","embeddingModelColumns","_ref2","imageModelColumns","_ref3","model_id","controlnet","model_revision","audioModelColumns","rerankModelColumns","dataGridStyle","borderBottom","fontWeight","overflowX","overflow","borderTop","noRowsOverlay","height","noResultsOverlay","sx","paddingTop","value","onChange","label","padding","rows","columns","autoHeight","slots"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/running_models/index.js"],"sourcesContent":["import DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined'\nimport OpenInBrowserOutlinedIcon from '@mui/icons-material/OpenInBrowserOutlined'\nimport { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Box, Stack, Tab } from '@mui/material'\nimport { DataGrid } from '@mui/x-data-grid'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport fetcher from '../../components/fetcher'\nimport Title from '../../components/Title'\n\nconst RunningModels = () => {\n const [tabValue, setTabValue] = React.useState('1')\n const [llmData, setLlmData] = useState([])\n const [embeddingModelData, setEmbeddingModelData] = useState([])\n const [imageModelData, setImageModelData] = useState([])\n const [audioModelData, setAudioModelData] = useState([])\n const [rerankModelData, setRerankModelData] = useState([])\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel, setIsUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n const endPoint = useContext(ApiContext).endPoint\n\n const handleTabChange = (event, newValue) => {\n setTabValue(newValue)\n }\n\n const update = (isCallingApi) => {\n if (cookie.token === '' || cookie.token === undefined) {\n return\n }\n if (cookie.token === 'need_auth') {\n navigate('/login', { replace: true })\n return\n }\n if (isCallingApi) {\n setLlmData([{ id: 'Loading, do not refresh page...', url: 'IS_LOADING' }])\n setEmbeddingModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setAudioModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setImageModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setRerankModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n } else {\n setIsUpdatingModel(true)\n fetcher(`${endPoint}/v1/models`, {\n method: 'GET',\n })\n .then((response) => {\n if (!response.ok) {\n response.json().then((errorData) => {\n setErrorMsg(\n `Login failed: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n })\n } else {\n response.json().then((response) => {\n const newLlmData = []\n const newEmbeddingModelData = []\n const newImageModelData = []\n const newAudioModelData = []\n const newRerankModelData = []\n response.data.forEach((model) => {\n let newValue = {\n ...model,\n id: model.id,\n url: model.id,\n }\n if (newValue.model_type === 'LLM') {\n newLlmData.push(newValue)\n } else if (newValue.model_type === 'embedding') {\n newEmbeddingModelData.push(newValue)\n } else if (newValue.model_type === 'audio') {\n newAudioModelData.push(newValue)\n } else if (newValue.model_type === 'image') {\n newImageModelData.push(newValue)\n } else if (newValue.model_type === 'rerank') {\n newRerankModelData.push(newValue)\n }\n })\n setLlmData(newLlmData)\n setEmbeddingModelData(newEmbeddingModelData)\n setAudioModelData(newAudioModelData)\n setImageModelData(newImageModelData)\n setRerankModelData(newRerankModelData)\n setIsUpdatingModel(false)\n })\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsUpdatingModel(false)\n })\n }\n }\n\n useEffect(() => {\n update(isCallingApi)\n // eslint-disable-next-line\n }, [isCallingApi, cookie.token])\n\n const llmColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'model_size_in_billions',\n headerName: 'Size',\n flex: 1,\n },\n {\n field: 'quantization',\n headerName: 'Quantization',\n flex: 1,\n },\n {\n field: 'replica',\n headerName: 'Replica',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n const gradioUrl = `${endPoint}/v1/ui/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_name: row.model_family,\n model_size_in_billions: row.model_size_in_billions,\n model_format: row.model_format,\n quantization: row.quantization,\n context_length: row.context_length,\n model_ability: row.model_ability,\n model_description: row.model_description,\n model_lang: row.model_lang,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </button>\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n\n const embeddingModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'replica',\n headerName: 'Replica',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const closeUrl = `${endPoint}/v1/models/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n const imageModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n },\n {\n field: 'model_name',\n headerName: 'Name',\n flex: 1,\n },\n {\n field: 'address',\n headerName: 'Address',\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: 'GPU Indexes',\n flex: 1,\n },\n {\n field: 'url',\n headerName: 'Actions',\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n //这个url指的是model_uid\n const url = row.url\n console.log('url: ' + url)\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n const gradioUrl = `${endPoint}/v1/ui/images/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <button\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_family: row.model_family,\n model_id: row.id,\n controlnet: row.controlnet,\n model_revision: row.model_revision,\n model_name: row.model_name,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </button>\n <button\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </button>\n </Box>\n )\n },\n },\n ]\n const audioModelColumns = embeddingModelColumns\n const rerankModelColumns = embeddingModelColumns\n\n const dataGridStyle = {\n '& .MuiDataGrid-cell': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaderTitle': {\n fontWeight: 'bold',\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'visible !important',\n overflow: 'visible',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: 'none',\n },\n 'border-width': '0px',\n }\n\n const noRowsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n No Running Models\n </Stack>\n )\n }\n\n const noResultsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n No Running Models Matches\n </Stack>\n )\n }\n\n return (\n <Box\n sx={{\n height: '100%',\n width: '100%',\n paddingLeft: '20px',\n paddingTop: '20px',\n }}\n >\n <Title title=\"Running Models\" />\n <ErrorMessageSnackBar />\n <TabContext value={tabValue}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n value={tabValue}\n onChange={handleTabChange}\n aria-label=\"tabs\"\n >\n <Tab label=\"Language Models\" value=\"1\" />\n <Tab label=\"Embedding Models\" value=\"2\" />\n <Tab label=\"Rerank models\" value=\"3\" />\n <Tab label=\"Image models\" value=\"4\" />\n <Tab label=\"Audio models\" value=\"5\" />\n </TabList>\n </Box>\n <TabPanel value=\"1\" 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=\"2\" 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=\"3\" 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=\"4\" 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=\"5\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={audioModelData}\n columns={audioModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default RunningModels\n"],"mappings":"yRAAA,MAAO,CAAAA,yBAAyB,KAAM,2CAA2C,CACjF,MAAO,CAAAC,yBAAyB,KAAM,2CAA2C,CACjF,OAASC,UAAU,CAAEC,OAAO,CAAEC,QAAQ,KAAQ,UAAU,CACxD,OAASC,GAAG,CAAEC,KAAK,CAAEC,GAAG,KAAQ,eAAe,CAC/C,OAASC,QAAQ,KAAQ,kBAAkB,CAC3C,MAAO,CAAAC,KAAK,EAAIC,UAAU,CAAEC,SAAS,CAAEC,QAAQ,KAAQ,OAAO,CAC9D,OAASC,UAAU,KAAQ,cAAc,CACzC,OAASC,WAAW,KAAQ,kBAAkB,CAE9C,OAASC,UAAU,KAAQ,6BAA6B,CACxD,MAAO,CAAAC,oBAAoB,KAAM,uCAAuC,CACxE,MAAO,CAAAC,OAAO,KAAM,0BAA0B,CAC9C,MAAO,CAAAC,KAAK,KAAM,wBAAwB,QAAAC,GAAA,IAAAC,IAAA,gCAAAC,IAAA,IAAAC,KAAA,yBAE1C,GAAM,CAAAC,aAAa,CAAG,QAAhB,CAAAA,aAAaA,CAAA,CAAS,CAC1B,IAAAC,eAAA,CAAgCf,KAAK,CAACG,QAAQ,CAAC,GAAG,CAAC,CAAAa,gBAAA,CAAAC,cAAA,CAAAF,eAAA,IAA5CG,QAAQ,CAAAF,gBAAA,IAAEG,WAAW,CAAAH,gBAAA,IAC5B,IAAAI,SAAA,CAA8BjB,QAAQ,CAAC,EAAE,CAAC,CAAAkB,UAAA,CAAAJ,cAAA,CAAAG,SAAA,IAAnCE,OAAO,CAAAD,UAAA,IAAEE,UAAU,CAAAF,UAAA,IAC1B,IAAAG,UAAA,CAAoDrB,QAAQ,CAAC,EAAE,CAAC,CAAAsB,UAAA,CAAAR,cAAA,CAAAO,UAAA,IAAzDE,kBAAkB,CAAAD,UAAA,IAAEE,qBAAqB,CAAAF,UAAA,IAChD,IAAAG,UAAA,CAA4CzB,QAAQ,CAAC,EAAE,CAAC,CAAA0B,UAAA,CAAAZ,cAAA,CAAAW,UAAA,IAAjDE,cAAc,CAAAD,UAAA,IAAEE,iBAAiB,CAAAF,UAAA,IACxC,IAAAG,UAAA,CAA4C7B,QAAQ,CAAC,EAAE,CAAC,CAAA8B,UAAA,CAAAhB,cAAA,CAAAe,UAAA,IAAjDE,cAAc,CAAAD,UAAA,IAAEE,iBAAiB,CAAAF,UAAA,IACxC,IAAAG,UAAA,CAA8CjC,QAAQ,CAAC,EAAE,CAAC,CAAAkC,WAAA,CAAApB,cAAA,CAAAmB,UAAA,IAAnDE,eAAe,CAAAD,WAAA,IAAEE,kBAAkB,CAAAF,WAAA,IAC1C,IAAAG,WAAA,CAA0CvC,UAAU,CAACK,UAAU,CAAC,CAAxDmC,YAAY,CAAAD,WAAA,CAAZC,YAAY,CAAEC,eAAe,CAAAF,WAAA,CAAfE,eAAe,CACrC,IAAAC,YAAA,CAAgD1C,UAAU,CAACK,UAAU,CAAC,CAA9DsC,eAAe,CAAAD,YAAA,CAAfC,eAAe,CAAEC,kBAAkB,CAAAF,YAAA,CAAlBE,kBAAkB,CAC3C,IAAAC,YAAA,CAAwB7C,UAAU,CAACK,UAAU,CAAC,CAAtCyC,WAAW,CAAAD,YAAA,CAAXC,WAAW,CACnB,IAAAC,WAAA,CAAiB5C,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA6C,YAAA,CAAAhC,cAAA,CAAA+B,WAAA,IAA/BE,MAAM,CAAAD,YAAA,IACb,GAAM,CAAAE,QAAQ,CAAG9C,WAAW,CAAC,CAAC,CAC9B,GAAM,CAAA+C,QAAQ,CAAGnD,UAAU,CAACK,UAAU,CAAC,CAAC8C,QAAQ,CAEhD,GAAM,CAAAC,eAAe,CAAG,QAAlB,CAAAA,eAAeA,CAAIC,KAAK,CAAEC,QAAQ,CAAK,CAC3CpC,WAAW,CAACoC,QAAQ,CAAC,CACvB,CAAC,CAED,GAAM,CAAAC,MAAM,CAAG,QAAT,CAAAA,MAAMA,CAAIf,YAAY,CAAK,CAC/B,GAAIS,MAAM,CAACO,KAAK,GAAK,EAAE,EAAIP,MAAM,CAACO,KAAK,GAAKC,SAAS,CAAE,CACrD,OACF,CACA,GAAIR,MAAM,CAACO,KAAK,GAAK,WAAW,CAAE,CAChCN,QAAQ,CAAC,QAAQ,CAAE,CAAEQ,OAAO,CAAE,IAAK,CAAC,CAAC,CACrC,OACF,CACA,GAAIlB,YAAY,CAAE,CAChBlB,UAAU,CAAC,CAAC,CAAEqC,EAAE,CAAE,iCAAiC,CAAEC,GAAG,CAAE,YAAa,CAAC,CAAC,CAAC,CAC1ElC,qBAAqB,CAAC,CACpB,CAAEiC,EAAE,CAAE,iCAAiC,CAAEC,GAAG,CAAE,YAAa,CAAC,CAC7D,CAAC,CACF1B,iBAAiB,CAAC,CAChB,CAAEyB,EAAE,CAAE,iCAAiC,CAAEC,GAAG,CAAE,YAAa,CAAC,CAC7D,CAAC,CACF9B,iBAAiB,CAAC,CAChB,CAAE6B,EAAE,CAAE,iCAAiC,CAAEC,GAAG,CAAE,YAAa,CAAC,CAC7D,CAAC,CACFtB,kBAAkB,CAAC,CACjB,CAAEqB,EAAE,CAAE,iCAAiC,CAAEC,GAAG,CAAE,YAAa,CAAC,CAC7D,CAAC,CACJ,CAAC,IAAM,CACLhB,kBAAkB,CAAC,IAAI,CAAC,CACxBrC,OAAO,IAAAsD,MAAA,CAAIV,QAAQ,eAAc,CAC/BW,MAAM,CAAE,KACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClB,GAAI,CAACA,QAAQ,CAACC,EAAE,CAAE,CAChBD,QAAQ,CAACE,IAAI,CAAC,CAAC,CAACH,IAAI,CAAC,SAACI,SAAS,CAAK,CAClCrB,WAAW,kBAAAe,MAAA,CACQG,QAAQ,CAACI,MAAM,QAAAP,MAAA,CAC9BM,SAAS,CAACE,MAAM,EAAI,eAAe,CAEvC,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,IAAM,CACLL,QAAQ,CAACE,IAAI,CAAC,CAAC,CAACH,IAAI,CAAC,SAACC,QAAQ,CAAK,CACjC,GAAM,CAAAM,UAAU,CAAG,EAAE,CACrB,GAAM,CAAAC,qBAAqB,CAAG,EAAE,CAChC,GAAM,CAAAC,iBAAiB,CAAG,EAAE,CAC5B,GAAM,CAAAC,iBAAiB,CAAG,EAAE,CAC5B,GAAM,CAAAC,kBAAkB,CAAG,EAAE,CAC7BV,QAAQ,CAACW,IAAI,CAACC,OAAO,CAAC,SAACC,KAAK,CAAK,CAC/B,GAAI,CAAAvB,QAAQ,CAAAwB,aAAA,CAAAA,aAAA,IACPD,KAAK,MACRlB,EAAE,CAAEkB,KAAK,CAAClB,EAAE,CACZC,GAAG,CAAEiB,KAAK,CAAClB,EAAE,EACd,CACD,GAAIL,QAAQ,CAACyB,UAAU,GAAK,KAAK,CAAE,CACjCT,UAAU,CAACU,IAAI,CAAC1B,QAAQ,CAAC,CAC3B,CAAC,IAAM,IAAIA,QAAQ,CAACyB,UAAU,GAAK,WAAW,CAAE,CAC9CR,qBAAqB,CAACS,IAAI,CAAC1B,QAAQ,CAAC,CACtC,CAAC,IAAM,IAAIA,QAAQ,CAACyB,UAAU,GAAK,OAAO,CAAE,CAC1CN,iBAAiB,CAACO,IAAI,CAAC1B,QAAQ,CAAC,CAClC,CAAC,IAAM,IAAIA,QAAQ,CAACyB,UAAU,GAAK,OAAO,CAAE,CAC1CP,iBAAiB,CAACQ,IAAI,CAAC1B,QAAQ,CAAC,CAClC,CAAC,IAAM,IAAIA,QAAQ,CAACyB,UAAU,GAAK,QAAQ,CAAE,CAC3CL,kBAAkB,CAACM,IAAI,CAAC1B,QAAQ,CAAC,CACnC,CACF,CAAC,CAAC,CACFhC,UAAU,CAACgD,UAAU,CAAC,CACtB5C,qBAAqB,CAAC6C,qBAAqB,CAAC,CAC5CrC,iBAAiB,CAACuC,iBAAiB,CAAC,CACpC3C,iBAAiB,CAAC0C,iBAAiB,CAAC,CACpClC,kBAAkB,CAACoC,kBAAkB,CAAC,CACtC9B,kBAAkB,CAAC,KAAK,CAAC,CAC3B,CAAC,CAAC,CACJ,CACF,CAAC,CAAC,CACDqC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BtC,kBAAkB,CAAC,KAAK,CAAC,CAC3B,CAAC,CAAC,CACN,CACF,CAAC,CAED3C,SAAS,CAAC,UAAM,CACdsD,MAAM,CAACf,YAAY,CAAC,CACpB;AACF,CAAC,CAAE,CAACA,YAAY,CAAES,MAAM,CAACO,KAAK,CAAC,CAAC,CAEhC,GAAM,CAAA4B,UAAU,CAAG,CACjB,CACEC,KAAK,CAAE,IAAI,CACXC,UAAU,CAAE,IAAI,CAChBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GACZ,CAAC,CACD,CACEH,KAAK,CAAE,YAAY,CACnBC,UAAU,CAAE,MAAM,CAClBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,SAAS,CAChBC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,cAAc,CACrBC,UAAU,CAAE,aAAa,CACzBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,wBAAwB,CAC/BC,UAAU,CAAE,MAAM,CAClBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,cAAc,CACrBC,UAAU,CAAE,cAAc,CAC1BC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,SAAS,CAChBC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,KAAK,CACZC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GAAG,CACbC,QAAQ,CAAE,KAAK,CACfC,UAAU,CAAE,KAAK,CACjBC,iBAAiB,CAAE,IAAI,CACvBC,UAAU,CAAE,SAAAA,WAAAC,IAAA,CAAa,IAAV,CAAAC,GAAG,CAAAD,IAAA,CAAHC,GAAG,CAChB,GAAM,CAAAlC,GAAG,CAAGkC,GAAG,CAAClC,GAAG,CACnB,GAAM,CAAAmC,OAAO,CAAG,GAAAlC,MAAA,CAAGV,QAAQ,MAAMS,GAAG,CACpC,GAAM,CAAAoC,QAAQ,CAAG,GAAAnC,MAAA,CAAGV,QAAQ,gBAAgBS,GAAG,CAC/C,GAAM,CAAAqC,SAAS,CAAG,GAAApC,MAAA,CAAGV,QAAQ,YAAYS,GAAG,CAE5C,GAAIA,GAAG,GAAK,YAAY,CAAE,CACxB,mBAAOlD,IAAA,SAAU,CAAC,CACpB,CAEA,mBACEE,KAAA,CAACjB,GAAG,EACFuG,KAAK,CAAE,CACLC,KAAK,CAAE,MAAM,CACbC,OAAO,CAAE,MAAM,CACfC,cAAc,CAAE,MAAM,CACtBC,UAAU,CAAE,MACd,CAAE,CAAAC,QAAA,eAEF7F,IAAA,WACE8F,KAAK,CAAC,eAAe,CACrBN,KAAK,CAAE,CACLO,WAAW,CAAE,KAAK,CAClBC,eAAe,CAAE,aAAa,CAC9BC,WAAW,CAAE,KAAK,CAClBC,YAAY,CAAE,MAChB,CAAE,CACFC,OAAO,CAAE,SAAAA,QAAA,CAAM,CACb,GAAIrE,YAAY,EAAIG,eAAe,CAAE,CACnC;AACA,OACF,CAEAF,eAAe,CAAC,IAAI,CAAC,CAErBlC,OAAO,CAACwF,OAAO,CAAE,CACfjC,MAAM,CAAE,MACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClB,GAAIA,QAAQ,CAACI,MAAM,GAAK,GAAG,CAAE,CAC3B;AACAe,OAAO,CAAC2B,GAAG,CAAC,oCAAoC,CAAC,CACjD,MAAO,CAAAvG,OAAO,CAAC0F,SAAS,CAAE,CACxBnC,MAAM,CAAE,MAAM,CACdiD,OAAO,CAAE,CACP,cAAc,CAAE,kBAClB,CAAC,CACDC,IAAI,CAAEC,IAAI,CAACC,SAAS,CAAC,CACnBnC,UAAU,CAAEe,GAAG,CAACf,UAAU,CAC1BoC,UAAU,CAAErB,GAAG,CAACsB,YAAY,CAC5BC,sBAAsB,CAAEvB,GAAG,CAACuB,sBAAsB,CAClDC,YAAY,CAAExB,GAAG,CAACwB,YAAY,CAC9BC,YAAY,CAAEzB,GAAG,CAACyB,YAAY,CAC9BC,cAAc,CAAE1B,GAAG,CAAC0B,cAAc,CAClCC,aAAa,CAAE3B,GAAG,CAAC2B,aAAa,CAChCC,iBAAiB,CAAE5B,GAAG,CAAC4B,iBAAiB,CACxCC,UAAU,CAAE7B,GAAG,CAAC6B,UAClB,CAAC,CACH,CAAC,CAAC,CACC5D,IAAI,CAAC,SAACC,QAAQ,QAAK,CAAAA,QAAQ,CAACE,IAAI,CAAC,CAAC,GAAC,CACnCH,IAAI,CAAC,iBACJ,CAAA6D,MAAM,CAACC,IAAI,CAAC9B,OAAO,CAAE,QAAQ,CAAE,qBAAqB,CAAC,EACvD,CAAC,CACA+B,OAAO,CAAC,iBAAM,CAAArF,eAAe,CAAC,KAAK,CAAC,GAAC,CAC1C,CAAC,IAAM,IAAIuB,QAAQ,CAACC,EAAE,CAAE,CACtB;AACAkB,OAAO,CAAC2B,GAAG,CAAC,uBAAuB,CAAC,CACpCc,MAAM,CAACC,IAAI,CAAC9B,OAAO,CAAE,QAAQ,CAAE,qBAAqB,CAAC,CACrDtD,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,IAAM,CACL;AACA0C,OAAO,CAACD,KAAK,gCAAArB,MAAA,CACoBG,QAAQ,CAACI,MAAM,CAChD,CAAC,CACD3B,eAAe,CAAC,KAAK,CAAC,CACxB,CACF,CAAC,CAAC,CACDwC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BzC,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACN,CAAE,CAAA8D,QAAA,cAEF7F,IAAA,CAACf,GAAG,EACFwG,KAAK,CAAC,MAAM,CACZ4B,CAAC,CAAC,QAAQ,CACVC,CAAC,CAAC,KAAK,CACP5B,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvB4B,YAAY,CAAC,KAAK,CAClB/B,KAAK,CAAE,CACLgC,MAAM,CAAE,mBAAmB,CAC3BzB,WAAW,CAAE,KAAK,CAClB0B,WAAW,CAAE,SACf,CAAE,CAAA5B,QAAA,cAEF7F,IAAA,CAACnB,yBAAyB,GAAE,CAAC,CAC1B,CAAC,CACA,CAAC,cACTmB,IAAA,WACE8F,KAAK,CAAC,iBAAiB,CACvBN,KAAK,CAAE,CACLO,WAAW,CAAE,KAAK,CAClBC,eAAe,CAAE,aAAa,CAC9BC,WAAW,CAAE,KAAK,CAClBC,YAAY,CAAE,MAChB,CAAE,CACFC,OAAO,CAAE,SAAAA,QAAA,CAAM,CACb,GAAIrE,YAAY,EAAIG,eAAe,CAAE,CACnC,OACF,CACAF,eAAe,CAAC,IAAI,CAAC,CACrBlC,OAAO,CAACyF,QAAQ,CAAE,CAChBlC,MAAM,CAAE,QACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClBA,QAAQ,CAACE,IAAI,CAAC,CAAC,CACjB,CAAC,CAAC,CACDH,IAAI,CAAC,UAAM,CACVtB,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACDwC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BzC,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACN,CAAE,CAAA8D,QAAA,cAEF7F,IAAA,CAACf,GAAG,EACFwG,KAAK,CAAC,MAAM,CACZ4B,CAAC,CAAC,QAAQ,CACVC,CAAC,CAAC,KAAK,CACP5B,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvB4B,YAAY,CAAC,KAAK,CAClB/B,KAAK,CAAE,CACLgC,MAAM,CAAE,mBAAmB,CAC3BzB,WAAW,CAAE,KAAK,CAClB0B,WAAW,CAAE,SACf,CAAE,CAAA5B,QAAA,cAEF7F,IAAA,CAACpB,yBAAyB,GAAE,CAAC,CAC1B,CAAC,CACA,CAAC,EACN,CAAC,CAEV,CACF,CAAC,CACF,CAED,GAAM,CAAA8I,qBAAqB,CAAG,CAC5B,CACE/C,KAAK,CAAE,IAAI,CACXC,UAAU,CAAE,IAAI,CAChBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GACZ,CAAC,CACD,CACEH,KAAK,CAAE,YAAY,CACnBC,UAAU,CAAE,MAAM,CAClBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,SAAS,CAChBC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,cAAc,CACrBC,UAAU,CAAE,aAAa,CACzBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,SAAS,CAChBC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,KAAK,CACZC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GAAG,CACbC,QAAQ,CAAE,KAAK,CACfC,UAAU,CAAE,KAAK,CACjBC,iBAAiB,CAAE,IAAI,CACvBC,UAAU,CAAE,SAAAA,WAAAyC,KAAA,CAAa,IAAV,CAAAvC,GAAG,CAAAuC,KAAA,CAAHvC,GAAG,CAChB,GAAM,CAAAlC,GAAG,CAAGkC,GAAG,CAAClC,GAAG,CACnB,GAAM,CAAAoC,QAAQ,CAAG,GAAAnC,MAAA,CAAGV,QAAQ,gBAAgBS,GAAG,CAE/C,GAAIA,GAAG,GAAK,YAAY,CAAE,CACxB,mBAAOlD,IAAA,SAAU,CAAC,CACpB,CAEA,mBACEA,IAAA,CAACf,GAAG,EACFuG,KAAK,CAAE,CACLC,KAAK,CAAE,MAAM,CACbC,OAAO,CAAE,MAAM,CACfC,cAAc,CAAE,MAAM,CACtBC,UAAU,CAAE,MACd,CAAE,CAAAC,QAAA,cAEF7F,IAAA,WACE8F,KAAK,CAAC,iBAAiB,CACvBN,KAAK,CAAE,CACLO,WAAW,CAAE,KAAK,CAClBC,eAAe,CAAE,aAAa,CAC9BC,WAAW,CAAE,KAAK,CAClBC,YAAY,CAAE,MAChB,CAAE,CACFC,OAAO,CAAE,SAAAA,QAAA,CAAM,CACb,GAAIrE,YAAY,EAAIG,eAAe,CAAE,CACnC,OACF,CACAF,eAAe,CAAC,IAAI,CAAC,CACrBlC,OAAO,CAACyF,QAAQ,CAAE,CAChBlC,MAAM,CAAE,QACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClBA,QAAQ,CAACE,IAAI,CAAC,CAAC,CACjB,CAAC,CAAC,CACDH,IAAI,CAAC,UAAM,CACVtB,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACDwC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BzC,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACN,CAAE,CAAA8D,QAAA,cAEF7F,IAAA,CAACf,GAAG,EACFwG,KAAK,CAAC,MAAM,CACZ4B,CAAC,CAAC,QAAQ,CACVC,CAAC,CAAC,KAAK,CACP5B,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvB4B,YAAY,CAAC,KAAK,CAClB/B,KAAK,CAAE,CACLgC,MAAM,CAAE,mBAAmB,CAC3BzB,WAAW,CAAE,KAAK,CAClB0B,WAAW,CAAE,SACf,CAAE,CAAA5B,QAAA,cAEF7F,IAAA,CAACpB,yBAAyB,GAAE,CAAC,CAC1B,CAAC,CACA,CAAC,CACN,CAAC,CAEV,CACF,CAAC,CACF,CACD,GAAM,CAAAgJ,iBAAiB,CAAG,CACxB,CACEjD,KAAK,CAAE,IAAI,CACXC,UAAU,CAAE,IAAI,CAChBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GACZ,CAAC,CACD,CACEH,KAAK,CAAE,YAAY,CACnBC,UAAU,CAAE,MAAM,CAClBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,SAAS,CAChBC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,cAAc,CACrBC,UAAU,CAAE,aAAa,CACzBC,IAAI,CAAE,CACR,CAAC,CACD,CACEF,KAAK,CAAE,KAAK,CACZC,UAAU,CAAE,SAAS,CACrBC,IAAI,CAAE,CAAC,CACPC,QAAQ,CAAE,GAAG,CACbC,QAAQ,CAAE,KAAK,CACfC,UAAU,CAAE,KAAK,CACjBC,iBAAiB,CAAE,IAAI,CACvBC,UAAU,CAAE,SAAAA,WAAA2C,KAAA,CAAa,IAAV,CAAAzC,GAAG,CAAAyC,KAAA,CAAHzC,GAAG,CAChB;AACA,GAAM,CAAAlC,GAAG,CAAGkC,GAAG,CAAClC,GAAG,CACnBuB,OAAO,CAAC2B,GAAG,CAAC,OAAO,CAAGlD,GAAG,CAAC,CAC1B,GAAM,CAAAmC,OAAO,CAAG,GAAAlC,MAAA,CAAGV,QAAQ,MAAMS,GAAG,CACpC,GAAM,CAAAoC,QAAQ,CAAG,GAAAnC,MAAA,CAAGV,QAAQ,gBAAgBS,GAAG,CAC/C,GAAM,CAAAqC,SAAS,CAAG,GAAApC,MAAA,CAAGV,QAAQ,mBAAmBS,GAAG,CAEnD,GAAIA,GAAG,GAAK,YAAY,CAAE,CACxB,mBAAOlD,IAAA,SAAU,CAAC,CACpB,CAEA,mBACEE,KAAA,CAACjB,GAAG,EACFuG,KAAK,CAAE,CACLC,KAAK,CAAE,MAAM,CACbC,OAAO,CAAE,MAAM,CACfC,cAAc,CAAE,MAAM,CACtBC,UAAU,CAAE,MACd,CAAE,CAAAC,QAAA,eAEF7F,IAAA,WACE8F,KAAK,CAAC,eAAe,CACrBN,KAAK,CAAE,CACLO,WAAW,CAAE,KAAK,CAClBC,eAAe,CAAE,aAAa,CAC9BC,WAAW,CAAE,KAAK,CAClBC,YAAY,CAAE,MAChB,CAAE,CACFC,OAAO,CAAE,SAAAA,QAAA,CAAM,CACb,GAAIrE,YAAY,EAAIG,eAAe,CAAE,CACnC;AACA,OACF,CAEAF,eAAe,CAAC,IAAI,CAAC,CAErBlC,OAAO,CAACwF,OAAO,CAAE,CACfjC,MAAM,CAAE,MACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClB,GAAIA,QAAQ,CAACI,MAAM,GAAK,GAAG,CAAE,CAC3B;AACAe,OAAO,CAAC2B,GAAG,CAAC,oCAAoC,CAAC,CACjD,MAAO,CAAAvG,OAAO,CAAC0F,SAAS,CAAE,CACxBnC,MAAM,CAAE,MAAM,CACdiD,OAAO,CAAE,CACP,cAAc,CAAE,kBAClB,CAAC,CACDC,IAAI,CAAEC,IAAI,CAACC,SAAS,CAAC,CACnBnC,UAAU,CAAEe,GAAG,CAACf,UAAU,CAC1BqC,YAAY,CAAEtB,GAAG,CAACsB,YAAY,CAC9BoB,QAAQ,CAAE1C,GAAG,CAACnC,EAAE,CAChB8E,UAAU,CAAE3C,GAAG,CAAC2C,UAAU,CAC1BC,cAAc,CAAE5C,GAAG,CAAC4C,cAAc,CAClCvB,UAAU,CAAErB,GAAG,CAACqB,UAClB,CAAC,CACH,CAAC,CAAC,CACCpD,IAAI,CAAC,SAACC,QAAQ,QAAK,CAAAA,QAAQ,CAACE,IAAI,CAAC,CAAC,GAAC,CACnCH,IAAI,CAAC,iBACJ,CAAA6D,MAAM,CAACC,IAAI,CAAC9B,OAAO,CAAE,QAAQ,CAAE,qBAAqB,CAAC,EACvD,CAAC,CACA+B,OAAO,CAAC,iBAAM,CAAArF,eAAe,CAAC,KAAK,CAAC,GAAC,CAC1C,CAAC,IAAM,IAAIuB,QAAQ,CAACC,EAAE,CAAE,CACtB;AACAkB,OAAO,CAAC2B,GAAG,CAAC,uBAAuB,CAAC,CACpCc,MAAM,CAACC,IAAI,CAAC9B,OAAO,CAAE,QAAQ,CAAE,qBAAqB,CAAC,CACrDtD,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,IAAM,CACL;AACA0C,OAAO,CAACD,KAAK,gCAAArB,MAAA,CACoBG,QAAQ,CAACI,MAAM,CAChD,CAAC,CACD3B,eAAe,CAAC,KAAK,CAAC,CACxB,CACF,CAAC,CAAC,CACDwC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BzC,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACN,CAAE,CAAA8D,QAAA,cAEF7F,IAAA,CAACf,GAAG,EACFwG,KAAK,CAAC,MAAM,CACZ4B,CAAC,CAAC,QAAQ,CACVC,CAAC,CAAC,KAAK,CACP5B,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvB4B,YAAY,CAAC,KAAK,CAClB/B,KAAK,CAAE,CACLgC,MAAM,CAAE,mBAAmB,CAC3BzB,WAAW,CAAE,KAAK,CAClB0B,WAAW,CAAE,SACf,CAAE,CAAA5B,QAAA,cAEF7F,IAAA,CAACnB,yBAAyB,GAAE,CAAC,CAC1B,CAAC,CACA,CAAC,cACTmB,IAAA,WACE8F,KAAK,CAAC,iBAAiB,CACvBN,KAAK,CAAE,CACLO,WAAW,CAAE,KAAK,CAClBC,eAAe,CAAE,aAAa,CAC9BC,WAAW,CAAE,KAAK,CAClBC,YAAY,CAAE,MAChB,CAAE,CACFC,OAAO,CAAE,SAAAA,QAAA,CAAM,CACb,GAAIrE,YAAY,EAAIG,eAAe,CAAE,CACnC,OACF,CACAF,eAAe,CAAC,IAAI,CAAC,CACrBlC,OAAO,CAACyF,QAAQ,CAAE,CAChBlC,MAAM,CAAE,QACV,CAAC,CAAC,CACCC,IAAI,CAAC,SAACC,QAAQ,CAAK,CAClBA,QAAQ,CAACE,IAAI,CAAC,CAAC,CACjB,CAAC,CAAC,CACDH,IAAI,CAAC,UAAM,CACVtB,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACDwC,KAAK,CAAC,SAACC,KAAK,CAAK,CAChBC,OAAO,CAACD,KAAK,CAAC,QAAQ,CAAEA,KAAK,CAAC,CAC9BzC,eAAe,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CACN,CAAE,CAAA8D,QAAA,cAEF7F,IAAA,CAACf,GAAG,EACFwG,KAAK,CAAC,MAAM,CACZ4B,CAAC,CAAC,QAAQ,CACVC,CAAC,CAAC,KAAK,CACP5B,OAAO,CAAC,MAAM,CACdC,cAAc,CAAC,QAAQ,CACvB4B,YAAY,CAAC,KAAK,CAClB/B,KAAK,CAAE,CACLgC,MAAM,CAAE,mBAAmB,CAC3BzB,WAAW,CAAE,KAAK,CAClB0B,WAAW,CAAE,SACf,CAAE,CAAA5B,QAAA,cAEF7F,IAAA,CAACpB,yBAAyB,GAAE,CAAC,CAC1B,CAAC,CACA,CAAC,EACN,CAAC,CAEV,CACF,CAAC,CACF,CACD,GAAM,CAAAqJ,iBAAiB,CAAGP,qBAAqB,CAC/C,GAAM,CAAAQ,kBAAkB,CAAGR,qBAAqB,CAEhD,GAAM,CAAAS,aAAa,CAAG,CACpB,qBAAqB,CAAE,CACrBC,YAAY,CAAE,MAChB,CAAC,CACD,8BAA8B,CAAE,CAC9BA,YAAY,CAAE,MAChB,CAAC,CACD,kCAAkC,CAAE,CAClCC,UAAU,CAAE,MACd,CAAC,CACD,gCAAgC,CAAE,CAChCC,SAAS,CAAE,oBAAoB,CAC/BC,QAAQ,CAAE,SACZ,CAAC,CACD,gCAAgC,CAAE,CAChCC,SAAS,CAAE,MACb,CAAC,CACD,cAAc,CAAE,KAClB,CAAC,CAED,GAAM,CAAAC,aAAa,CAAG,QAAhB,CAAAA,aAAaA,CAAA,CAAS,CAC1B,mBACEzI,IAAA,CAACd,KAAK,EAACwJ,MAAM,CAAC,MAAM,CAAC9C,UAAU,CAAC,QAAQ,CAACD,cAAc,CAAC,QAAQ,CAAAE,QAAA,CAAC,mBAEjE,CAAO,CAAC,CAEZ,CAAC,CAED,GAAM,CAAA8C,gBAAgB,CAAG,QAAnB,CAAAA,gBAAgBA,CAAA,CAAS,CAC7B,mBACE3I,IAAA,CAACd,KAAK,EAACwJ,MAAM,CAAC,MAAM,CAAC9C,UAAU,CAAC,QAAQ,CAACD,cAAc,CAAC,QAAQ,CAAAE,QAAA,CAAC,2BAEjE,CAAO,CAAC,CAEZ,CAAC,CAED,mBACE3F,KAAA,CAACjB,GAAG,EACF2J,EAAE,CAAE,CACFF,MAAM,CAAE,MAAM,CACdjD,KAAK,CAAE,MAAM,CACbQ,WAAW,CAAE,MAAM,CACnB4C,UAAU,CAAE,MACd,CAAE,CAAAhD,QAAA,eAEF7F,IAAA,CAACF,KAAK,EAACgG,KAAK,CAAC,gBAAgB,CAAE,CAAC,cAChC9F,IAAA,CAACJ,oBAAoB,GAAE,CAAC,cACxBM,KAAA,CAACpB,UAAU,EAACgK,KAAK,CAAEvI,QAAS,CAAAsF,QAAA,eAC1B7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAER,YAAY,CAAE,CAAC,CAAEX,WAAW,CAAE,SAAU,CAAE,CAAA5B,QAAA,cACnD3F,KAAA,CAACnB,OAAO,EACN+J,KAAK,CAAEvI,QAAS,CAChBwI,QAAQ,CAAErG,eAAgB,CAC1B,aAAW,MAAM,CAAAmD,QAAA,eAEjB7F,IAAA,CAACb,GAAG,EAAC6J,KAAK,CAAC,iBAAiB,CAACF,KAAK,CAAC,GAAG,CAAE,CAAC,cACzC9I,IAAA,CAACb,GAAG,EAAC6J,KAAK,CAAC,kBAAkB,CAACF,KAAK,CAAC,GAAG,CAAE,CAAC,cAC1C9I,IAAA,CAACb,GAAG,EAAC6J,KAAK,CAAC,eAAe,CAACF,KAAK,CAAC,GAAG,CAAE,CAAC,cACvC9I,IAAA,CAACb,GAAG,EAAC6J,KAAK,CAAC,cAAc,CAACF,KAAK,CAAC,GAAG,CAAE,CAAC,cACtC9I,IAAA,CAACb,GAAG,EAAC6J,KAAK,CAAC,cAAc,CAACF,KAAK,CAAC,GAAG,CAAE,CAAC,EAC/B,CAAC,CACP,CAAC,cACN9I,IAAA,CAAChB,QAAQ,EAAC8J,KAAK,CAAC,GAAG,CAACF,EAAE,CAAE,CAAEK,OAAO,CAAE,CAAE,CAAE,CAAApD,QAAA,cACrC7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAEF,MAAM,CAAE,MAAM,CAAEjD,KAAK,CAAE,MAAO,CAAE,CAAAI,QAAA,cACzC7F,IAAA,CAACZ,QAAQ,EACP8J,IAAI,CAAEvI,OAAQ,CACdwI,OAAO,CAAEzE,UAAW,CACpB0E,UAAU,CAAE,IAAK,CACjBR,EAAE,CAAET,aAAc,CAClBkB,KAAK,CAAE,CACLZ,aAAa,CAAEA,aAAa,CAC5BE,gBAAgB,CAAEA,gBACpB,CAAE,CACH,CAAC,CACC,CAAC,CACE,CAAC,cACX3I,IAAA,CAAChB,QAAQ,EAAC8J,KAAK,CAAC,GAAG,CAACF,EAAE,CAAE,CAAEK,OAAO,CAAE,CAAE,CAAE,CAAApD,QAAA,cACrC7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAEF,MAAM,CAAE,MAAM,CAAEjD,KAAK,CAAE,MAAO,CAAE,CAAAI,QAAA,cACzC7F,IAAA,CAACZ,QAAQ,EACP8J,IAAI,CAAEnI,kBAAmB,CACzBoI,OAAO,CAAEzB,qBAAsB,CAC/B0B,UAAU,CAAE,IAAK,CACjBR,EAAE,CAAET,aAAc,CAClBkB,KAAK,CAAE,CACLZ,aAAa,CAAEA,aAAa,CAC5BE,gBAAgB,CAAEA,gBACpB,CAAE,CACH,CAAC,CACC,CAAC,CACE,CAAC,cACX3I,IAAA,CAAChB,QAAQ,EAAC8J,KAAK,CAAC,GAAG,CAACF,EAAE,CAAE,CAAEK,OAAO,CAAE,CAAE,CAAE,CAAApD,QAAA,cACrC7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAEF,MAAM,CAAE,MAAM,CAAEjD,KAAK,CAAE,MAAO,CAAE,CAAAI,QAAA,cACzC7F,IAAA,CAACZ,QAAQ,EACP8J,IAAI,CAAEvH,eAAgB,CACtBwH,OAAO,CAAEjB,kBAAmB,CAC5BkB,UAAU,CAAE,IAAK,CACjBR,EAAE,CAAET,aAAc,CAClBkB,KAAK,CAAE,CACLZ,aAAa,CAAEA,aAAa,CAC5BE,gBAAgB,CAAEA,gBACpB,CAAE,CACH,CAAC,CACC,CAAC,CACE,CAAC,cACX3I,IAAA,CAAChB,QAAQ,EAAC8J,KAAK,CAAC,GAAG,CAACF,EAAE,CAAE,CAAEK,OAAO,CAAE,CAAE,CAAE,CAAApD,QAAA,cACrC7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAEF,MAAM,CAAE,MAAM,CAAEjD,KAAK,CAAE,MAAO,CAAE,CAAAI,QAAA,cACzC7F,IAAA,CAACZ,QAAQ,EACP8J,IAAI,CAAE/H,cAAe,CACrBgI,OAAO,CAAEvB,iBAAkB,CAC3BwB,UAAU,CAAE,IAAK,CACjBR,EAAE,CAAET,aAAc,CAClBkB,KAAK,CAAE,CACLZ,aAAa,CAAEA,aAAa,CAC5BE,gBAAgB,CAAEA,gBACpB,CAAE,CACH,CAAC,CACC,CAAC,CACE,CAAC,cACX3I,IAAA,CAAChB,QAAQ,EAAC8J,KAAK,CAAC,GAAG,CAACF,EAAE,CAAE,CAAEK,OAAO,CAAE,CAAE,CAAE,CAAApD,QAAA,cACrC7F,IAAA,CAACf,GAAG,EAAC2J,EAAE,CAAE,CAAEF,MAAM,CAAE,MAAM,CAAEjD,KAAK,CAAE,MAAO,CAAE,CAAAI,QAAA,cACzC7F,IAAA,CAACZ,QAAQ,EACP8J,IAAI,CAAE3H,cAAe,CACrB4H,OAAO,CAAElB,iBAAkB,CAC3BmB,UAAU,CAAE,IAAK,CACjBR,EAAE,CAAET,aAAc,CAClBkB,KAAK,CAAE,CACLZ,aAAa,CAAEA,aAAa,CAC5BE,gBAAgB,CAAEA,gBACpB,CAAE,CACH,CAAC,CACC,CAAC,CACE,CAAC,EACD,CAAC,EACV,CAAC,CAEV,CAAC,CAED,cAAe,CAAAxI,aAAa"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,Tab}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import Title from'../../components/Title';import LaunchAudio from'./launchAudio';import LaunchCustom from'./launchCustom';import LaunchEmbedding from'./launchEmbedding';import LaunchImage from'./launchImage';import LaunchLLM from'./launchLLM';import LaunchRerank from'./launchRerank';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchModel=function LaunchModel(){var endPoint=useContext(ApiContext).endPoint;var _React$useState=React.useState('1'),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var _useState=useState(-1),_useState2=_slicedToArray(_useState,2),gpuAvailable=_useState2[0],setGPUAvailable=_useState2[1];var _useContext=useContext(ApiContext),setErrorMsg=_useContext.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();var handleTabChange=function handleTabChange(event,newValue){setValue(newValue);};useEffect(function(){if(cookie.token===''||cookie.token===undefined){return;}if(cookie.token==='need_auth'){navigate('/login',{replace:true});return;}if(gpuAvailable===-1){fetch(endPoint+'/v1/cluster/devices',{method:'GET',headers:{'Content-Type':'application/json'}}).then(function(res){if(!res.ok){// Usually, if some errors happen here, check if the cluster is available\nres.json().then(function(errorData){setErrorMsg(\"Server error: \".concat(res.status,\" - \").concat(errorData.detail||'Unknown error'));});}else{res.json().then(function(data){setGPUAvailable(parseInt(data,10));});}});}},[cookie.token]);return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsx(Title,{title:\"Launch Model\"}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:value,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsxs(TabList,{value:value,onChange:handleTabChange,\"aria-label\":\"tabs\",children:[/*#__PURE__*/_jsx(Tab,{label:\"Language Models\",value:\"1\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Models\",value:\"2\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank Models\",value:\"3\"}),/*#__PURE__*/_jsx(Tab,{label:\"Image Models\",value:\"4\"}),/*#__PURE__*/_jsx(Tab,{label:\"Audio Models\",value:\"5\"}),/*#__PURE__*/_jsx(Tab,{label:\"Custom Models\",value:\"6\"})]})}),/*#__PURE__*/_jsx(TabPanel,{value:\"1\",sx:{padding:0},children:/*#__PURE__*/_jsx(LaunchLLM,{gpuAvailable:gpuAvailable})}),/*#__PURE__*/_jsx(TabPanel,{value:\"2\",sx:{padding:0},children:/*#__PURE__*/_jsx(LaunchEmbedding,{})}),/*#__PURE__*/_jsx(TabPanel,{value:\"3\",sx:{padding:0},children:/*#__PURE__*/_jsx(LaunchRerank,{})}),/*#__PURE__*/_jsx(TabPanel,{value:\"4\",sx:{paddding:0},children:/*#__PURE__*/_jsx(LaunchImage,{})}),/*#__PURE__*/_jsx(TabPanel,{value:\"5\",sx:{padding:0},children:/*#__PURE__*/_jsx(LaunchAudio,{})}),/*#__PURE__*/_jsx(TabPanel,{value:\"6\",sx:{padding:0},children:/*#__PURE__*/_jsx(LaunchCustom,{gpuAvailable:gpuAvailable})})]})]});};export default LaunchModel;","map":{"version":3,"names":["TabContext","TabList","TabPanel","Box","Tab","React","useContext","useEffect","useState","useCookies","useNavigate","ApiContext","ErrorMessageSnackBar","Title","LaunchAudio","LaunchCustom","LaunchEmbedding","LaunchImage","LaunchLLM","LaunchRerank","jsx","_jsx","jsxs","_jsxs","LaunchModel","endPoint","_React$useState","_React$useState2","_slicedToArray","value","setValue","_useState","_useState2","gpuAvailable","setGPUAvailable","_useContext","setErrorMsg","_useCookies","_useCookies2","cookie","navigate","handleTabChange","event","newValue","token","undefined","replace","fetch","method","headers","then","res","ok","json","errorData","concat","status","detail","data","parseInt","m","children","title","sx","borderBottom","borderColor","onChange","label","padding","paddding"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/index.js"],"sourcesContent":["import { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Box, Tab } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport Title from '../../components/Title'\nimport LaunchAudio from './launchAudio'\nimport LaunchCustom from './launchCustom'\nimport LaunchEmbedding from './launchEmbedding'\nimport LaunchImage from './launchImage'\nimport LaunchLLM from './launchLLM'\nimport LaunchRerank from './launchRerank'\n\nconst LaunchModel = () => {\n let endPoint = useContext(ApiContext).endPoint\n const [value, setValue] = React.useState('1')\n const [gpuAvailable, setGPUAvailable] = useState(-1)\n\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n\n const handleTabChange = (event, newValue) => {\n setValue(newValue)\n }\n\n useEffect(() => {\n if (cookie.token === '' || cookie.token === undefined) {\n return\n }\n if (cookie.token === 'need_auth') {\n navigate('/login', { replace: true })\n return\n }\n\n if (gpuAvailable === -1) {\n fetch(endPoint + '/v1/cluster/devices', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n }).then((res) => {\n if (!res.ok) {\n // Usually, if some errors happen here, check if the cluster is available\n res.json().then((errorData) => {\n setErrorMsg(\n `Server error: ${res.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n })\n } else {\n res.json().then((data) => {\n setGPUAvailable(parseInt(data, 10))\n })\n }\n })\n }\n }, [cookie.token])\n\n return (\n <Box m=\"20px\">\n <Title title=\"Launch Model\" />\n <ErrorMessageSnackBar />\n <TabContext value={value}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList value={value} onChange={handleTabChange} aria-label=\"tabs\">\n <Tab label=\"Language Models\" value=\"1\" />\n <Tab label=\"Embedding Models\" value=\"2\" />\n <Tab label=\"Rerank Models\" value=\"3\" />\n <Tab label=\"Image Models\" value=\"4\" />\n <Tab label=\"Audio Models\" value=\"5\" />\n <Tab label=\"Custom Models\" value=\"6\" />\n </TabList>\n </Box>\n <TabPanel value=\"1\" sx={{ padding: 0 }}>\n <LaunchLLM gpuAvailable={gpuAvailable} />\n </TabPanel>\n <TabPanel value=\"2\" sx={{ padding: 0 }}>\n <LaunchEmbedding />\n </TabPanel>\n <TabPanel value=\"3\" sx={{ padding: 0 }}>\n <LaunchRerank />\n </TabPanel>\n <TabPanel value=\"4\" sx={{ paddding: 0 }}>\n <LaunchImage />\n </TabPanel>\n <TabPanel value=\"5\" sx={{ padding: 0 }}>\n <LaunchAudio />\n </TabPanel>\n <TabPanel value=\"6\" sx={{ padding: 0 }}>\n <LaunchCustom gpuAvailable={gpuAvailable} />\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default LaunchModel\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{RocketLaunchOutlined,UndoOutlined}from'@mui/icons-material';import DeleteIcon from'@mui/icons-material/Delete';import{Box,Chip,CircularProgress,FormControl,Stack,TextField}from'@mui/material';import IconButton from'@mui/material/IconButton';import React,{useContext,useEffect,useState}from'react';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var CARD_HEIGHT=270;var CARD_WIDTH=270;var AudioCard=function AudioCard(_ref){var url=_ref.url,modelData=_ref.modelData,_ref$cardHeight=_ref.cardHeight,cardHeight=_ref$cardHeight===void 0?CARD_HEIGHT:_ref$cardHeight,_ref$is_custom=_ref.is_custom,is_custom=_ref$is_custom===void 0?false:_ref$is_custom;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),modelUID=_useState2[0],setModelUID=_useState2[1];var _useState3=useState(false),_useState4=_slicedToArray(_useState3,2),hover=_useState4[0],setHover=_useState4[1];var _useState5=useState(false),_useState6=_slicedToArray(_useState5,2),selected=_useState6[0],setSelected=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),customDeleted=_useState8[0],setCustomDeleted=_useState8[1];var _useContext=useContext(ApiContext),setErrorMsg=_useContext.setErrorMsg;var _useContext2=useContext(ApiContext),isCallingApi=_useContext2.isCallingApi,setIsCallingApi=_useContext2.setIsCallingApi;var _useContext3=useContext(ApiContext),isUpdatingModel=_useContext3.isUpdatingModel;var navigate=useNavigate();// UseEffects for parameter selection, change options based on previous selections\nuseEffect(function(){},[modelData]);var launchModel=function launchModel(url){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);var modelDataWithID={model_uid:modelUID.trim()===''?null:modelUID.trim(),model_name:modelData.model_name,model_type:'audio'};// First fetcher request to initiate the model\nfetcher(url+'/v1/models',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(modelDataWithID)}).then(function(response){if(!response.ok){// Assuming the server returns error details in JSON format\nresponse.json().then(function(errorData){setErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));});}else{navigate('/running_models');}setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});};var styles={container:{display:'block',position:'relative',width:\"\".concat(CARD_WIDTH,\"px\"),height:\"\".concat(cardHeight,\"px\"),border:'1px solid #ddd',borderRadius:'20px',background:'white',overflow:'hidden'},containerSelected:{display:'block',position:'relative',width:\"\".concat(CARD_WIDTH,\"px\"),height:\"\".concat(cardHeight,\"px\"),border:'1px solid #ddd',borderRadius:'20px',background:'white',overflow:'hidden',boxShadow:'0 0 2px #00000099'},descriptionCard:{position:'relative',top:'-1px',left:'-1px',width:\"\".concat(CARD_WIDTH,\"px\"),height:\"\".concat(cardHeight,\"px\"),border:'1px solid #ddd',padding:'20px',borderRadius:'20px',background:'white'},parameterCard:{position:'relative',top:\"-\".concat(cardHeight+1,\"px\"),left:'-1px',width:\"\".concat(CARD_WIDTH,\"px\"),height:\"\".concat(cardHeight,\"px\"),border:'1px solid #ddd',padding:'20px',borderRadius:'20px',background:'white'},img:{display:'block',margin:'0 auto',width:'180px',height:'180px',objectFit:'cover',borderRadius:'10px'},titleContainer:{minHeight:'120px'},h2:{margin:'10px 10px',fontSize:'20px'},buttonsContainer:{display:'flex',border:'none',justifyContent:'space-between',alignItems:'center'},buttonContainer:{width:'45%',borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'0px'},buttonItem:{width:'100%',margin:'0 auto',padding:'5px',display:'flex',justifyContent:'center',borderRadius:'4px',border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},instructionText:{fontSize:'12px',color:'#666666',fontStyle:'italic',margin:'10px 0',textAlign:'center'},slideIn:{transform:'translateX(0%)',transition:'transform 0.2s ease-in-out'},slideOut:{transform:'translateX(100%)',transition:'transform 0.2s ease-in-out'},iconRow:{display:'flex',justifyContent:'space-between',alignItems:'center'},iconItem:{display:'flex',flexDirection:'column',alignItems:'center',margin:'20px'},boldIconText:{fontWeight:'bold',fontSize:'1.2em'},muiIcon:{fontSize:'1.5em'},smallText:{fontSize:'0.8em'},langRow:{margin:'2px 5px 40px 5px'}};var handeCustomDelete=function handeCustomDelete(e){e.stopPropagation();fetcher(url+\"/v1/model_registrations/audio/\".concat(modelData.model_name),{method:'DELETE',headers:{'Content-Type':'application/json'}}).then(function(){return setCustomDeleted(true);}).catch(console.error);};// Set two different states based on mouse hover\nreturn/*#__PURE__*/_jsxs(Box,{style:hover?styles.containerSelected:styles.container,onMouseEnter:function onMouseEnter(){return setHover(true);},onMouseLeave:function onMouseLeave(){return setHover(false);},onClick:function onClick(){if(!selected&&!customDeleted){setSelected(true);}},children:[/*#__PURE__*/_jsxs(Box,{style:styles.descriptionCard,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.titleContainer,children:[is_custom&&/*#__PURE__*/_jsxs(Stack,{direction:\"row\",justifyContent:\"space-evenly\",alignItems:\"center\",spacing:1,children:[/*#__PURE__*/_jsx(\"h2\",{style:styles.h2,children:modelData.model_name}),/*#__PURE__*/_jsx(IconButton,{\"aria-label\":\"delete\",onClick:handeCustomDelete,disabled:customDeleted,children:/*#__PURE__*/_jsx(DeleteIcon,{})})]}),!is_custom&&/*#__PURE__*/_jsx(\"h2\",{style:styles.h2,children:modelData.model_name}),/*#__PURE__*/_jsxs(Stack,{spacing:1,direction:\"row\",useFlexGap:true,flexWrap:\"wrap\",sx:{marginLeft:1},children:[function(){return/*#__PURE__*/_jsx(Chip,{label:modelData.model_family,variant:\"outlined\",size:\"small\"});}(),function(){if(modelData.cache_status){return/*#__PURE__*/_jsx(Chip,{label:\"Cached\",variant:\"outlined\",size:\"small\"});}}(),function(){if(is_custom&&customDeleted){return/*#__PURE__*/_jsx(Chip,{label:\"Deleted\",variant:\"outlined\",size:\"small\"});}}()]})]}),!selected&&hover&&/*#__PURE__*/_jsx(\"p\",{style:styles.instructionText,children:\"Click with mouse to launch the model\"})]}),/*#__PURE__*/_jsxs(Box,{style:selected?_objectSpread(_objectSpread({},styles.parameterCard),styles.slideIn):_objectSpread(_objectSpread({},styles.parameterCard),styles.slideOut),children:[/*#__PURE__*/_jsx(\"h2\",{style:styles.h2,children:modelData.model_name}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",fullWidth:true,children:/*#__PURE__*/_jsx(TextField,{variant:\"outlined\",value:modelUID,label:\"(Optional) Model UID, model name by default\",onChange:function onChange(e){return setModelUID(e.target.value);}})}),/*#__PURE__*/_jsxs(Box,{style:styles.buttonsContainer,children:[/*#__PURE__*/_jsx(\"button\",{title:\"Launch Audio\",style:styles.buttonContainer,onClick:function onClick(){return launchModel(url,modelData);},disabled:isCallingApi||isUpdatingModel||!modelData,children:function(){if(isCallingApi||isUpdatingModel){return/*#__PURE__*/_jsx(Box,{style:_objectSpread(_objectSpread({},styles.buttonItem),{},{backgroundColor:'#f2f2f2'}),children:/*#__PURE__*/_jsx(CircularProgress,{size:\"20px\",sx:{color:'#000000'}})});}else if(!modelData){return/*#__PURE__*/_jsx(Box,{style:_objectSpread(_objectSpread({},styles.buttonItem),{},{backgroundColor:'#f2f2f2'}),children:/*#__PURE__*/_jsx(RocketLaunchOutlined,{size:\"20px\"})});}else{return/*#__PURE__*/_jsx(Box,{style:styles.buttonItem,children:/*#__PURE__*/_jsx(RocketLaunchOutlined,{color:\"#000000\",size:\"20px\"})});}}()}),/*#__PURE__*/_jsx(\"button\",{title:\"Launch Audio\",style:styles.buttonContainer,onClick:function onClick(){return setSelected(false);},children:/*#__PURE__*/_jsx(Box,{style:styles.buttonItem,children:/*#__PURE__*/_jsx(UndoOutlined,{color:\"#000000\",size:\"20px\"})})})]})]})]});};export default AudioCard;","map":{"version":3,"names":["RocketLaunchOutlined","UndoOutlined","DeleteIcon","Box","Chip","CircularProgress","FormControl","Stack","TextField","IconButton","React","useContext","useEffect","useState","useNavigate","ApiContext","fetcher","jsx","_jsx","jsxs","_jsxs","CARD_HEIGHT","CARD_WIDTH","AudioCard","_ref","url","modelData","_ref$cardHeight","cardHeight","_ref$is_custom","is_custom","_useState","_useState2","_slicedToArray","modelUID","setModelUID","_useState3","_useState4","hover","setHover","_useState5","_useState6","selected","setSelected","_useState7","_useState8","customDeleted","setCustomDeleted","_useContext","setErrorMsg","_useContext2","isCallingApi","setIsCallingApi","_useContext3","isUpdatingModel","navigate","launchModel","modelDataWithID","model_uid","trim","model_name","model_type","method","headers","body","JSON","stringify","then","response","ok","json","errorData","concat","status","detail","catch","error","console","styles","container","display","position","width","height","border","borderRadius","background","overflow","containerSelected","boxShadow","descriptionCard","top","left","padding","parameterCard","img","margin","objectFit","titleContainer","minHeight","h2","fontSize","buttonsContainer","justifyContent","alignItems","buttonContainer","borderWidth","backgroundColor","paddingLeft","paddingRight","buttonItem","borderColor","instructionText","color","fontStyle","textAlign","slideIn","transform","transition","slideOut","iconRow","iconItem","flexDirection","boldIconText","fontWeight","muiIcon","smallText","langRow","handeCustomDelete","e","stopPropagation","style","onMouseEnter","onMouseLeave","onClick","children","direction","spacing","disabled","useFlexGap","flexWrap","sx","marginLeft","label","model_family","variant","size","cache_status","_objectSpread","fullWidth","value","onChange","target","title"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/audioCard.js"],"sourcesContent":["import { RocketLaunchOutlined, UndoOutlined } from '@mui/icons-material'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport {\n Box,\n Chip,\n CircularProgress,\n FormControl,\n Stack,\n TextField,\n} from '@mui/material'\nimport IconButton from '@mui/material/IconButton'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\n\nconst CARD_HEIGHT = 270\nconst CARD_WIDTH = 270\n\nconst AudioCard = ({\n url,\n modelData,\n cardHeight = CARD_HEIGHT,\n is_custom = false,\n}) => {\n const [modelUID, setModelUID] = useState('')\n const [hover, setHover] = useState(false)\n const [selected, setSelected] = useState(false)\n const [customDeleted, setCustomDeleted] = useState(false)\n const { setErrorMsg } = useContext(ApiContext)\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n const navigate = useNavigate()\n // UseEffects for parameter selection, change options based on previous selections\n useEffect(() => {}, [modelData])\n\n const launchModel = (url) => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n\n setIsCallingApi(true)\n\n const modelDataWithID = {\n model_uid: modelUID.trim() === '' ? null : modelUID.trim(),\n model_name: modelData.model_name,\n model_type: 'audio',\n }\n\n // First fetcher request to initiate the model\n fetcher(url + '/v1/models', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(modelDataWithID),\n })\n .then((response) => {\n if (!response.ok) {\n // Assuming the server returns error details in JSON format\n response.json().then((errorData) => {\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n })\n } else {\n navigate('/running_models')\n }\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }\n\n const styles = {\n container: {\n display: 'block',\n position: 'relative',\n width: `${CARD_WIDTH}px`,\n height: `${cardHeight}px`,\n border: '1px solid #ddd',\n borderRadius: '20px',\n background: 'white',\n overflow: 'hidden',\n },\n containerSelected: {\n display: 'block',\n position: 'relative',\n width: `${CARD_WIDTH}px`,\n height: `${cardHeight}px`,\n border: '1px solid #ddd',\n borderRadius: '20px',\n background: 'white',\n overflow: 'hidden',\n boxShadow: '0 0 2px #00000099',\n },\n descriptionCard: {\n position: 'relative',\n top: '-1px',\n left: '-1px',\n width: `${CARD_WIDTH}px`,\n height: `${cardHeight}px`,\n border: '1px solid #ddd',\n padding: '20px',\n borderRadius: '20px',\n background: 'white',\n },\n parameterCard: {\n position: 'relative',\n top: `-${cardHeight + 1}px`,\n left: '-1px',\n width: `${CARD_WIDTH}px`,\n height: `${cardHeight}px`,\n border: '1px solid #ddd',\n padding: '20px',\n borderRadius: '20px',\n background: 'white',\n },\n img: {\n display: 'block',\n margin: '0 auto',\n width: '180px',\n height: '180px',\n objectFit: 'cover',\n borderRadius: '10px',\n },\n titleContainer: {\n minHeight: '120px',\n },\n h2: {\n margin: '10px 10px',\n fontSize: '20px',\n },\n buttonsContainer: {\n display: 'flex',\n border: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n buttonContainer: {\n width: '45%',\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '0px',\n },\n buttonItem: {\n width: '100%',\n margin: '0 auto',\n padding: '5px',\n display: 'flex',\n justifyContent: 'center',\n borderRadius: '4px',\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n },\n instructionText: {\n fontSize: '12px',\n color: '#666666',\n fontStyle: 'italic',\n margin: '10px 0',\n textAlign: 'center',\n },\n slideIn: {\n transform: 'translateX(0%)',\n transition: 'transform 0.2s ease-in-out',\n },\n slideOut: {\n transform: 'translateX(100%)',\n transition: 'transform 0.2s ease-in-out',\n },\n iconRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n iconItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '20px',\n },\n boldIconText: {\n fontWeight: 'bold',\n fontSize: '1.2em',\n },\n muiIcon: {\n fontSize: '1.5em',\n },\n smallText: {\n fontSize: '0.8em',\n },\n langRow: {\n margin: '2px 5px 40px 5px',\n },\n }\n\n const handeCustomDelete = (e) => {\n e.stopPropagation()\n fetcher(url + `/v1/model_registrations/audio/${modelData.model_name}`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .then(() => setCustomDeleted(true))\n .catch(console.error)\n }\n\n // Set two different states based on mouse hover\n return (\n <Box\n style={hover ? styles.containerSelected : styles.container}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n onClick={() => {\n if (!selected && !customDeleted) {\n setSelected(true)\n }\n }}\n >\n {/* First state: show description page */}\n <Box style={styles.descriptionCard}>\n <div style={styles.titleContainer}>\n {is_custom && (\n <Stack\n direction=\"row\"\n justifyContent=\"space-evenly\"\n alignItems=\"center\"\n spacing={1}\n >\n <h2 style={styles.h2}>{modelData.model_name}</h2>\n <IconButton\n aria-label=\"delete\"\n onClick={handeCustomDelete}\n disabled={customDeleted}\n >\n <DeleteIcon />\n </IconButton>\n </Stack>\n )}\n {!is_custom && <h2 style={styles.h2}>{modelData.model_name}</h2>}\n <Stack\n spacing={1}\n direction=\"row\"\n useFlexGap\n flexWrap=\"wrap\"\n sx={{ marginLeft: 1 }}\n >\n {(() => {\n return (\n <Chip\n label={modelData.model_family}\n variant=\"outlined\"\n size=\"small\"\n />\n )\n })()}\n {(() => {\n if (modelData.cache_status) {\n return <Chip label=\"Cached\" variant=\"outlined\" size=\"small\" />\n }\n })()}\n {(() => {\n if (is_custom && customDeleted) {\n return <Chip label=\"Deleted\" variant=\"outlined\" size=\"small\" />\n }\n })()}\n </Stack>\n </div>\n {!selected && hover && (\n <p style={styles.instructionText}>\n Click with mouse to launch the model\n </p>\n )}\n </Box>\n {/* Second state: show parameter selection page */}\n <Box\n style={\n selected\n ? { ...styles.parameterCard, ...styles.slideIn }\n : { ...styles.parameterCard, ...styles.slideOut }\n }\n >\n <h2 style={styles.h2}>{modelData.model_name}</h2>\n <FormControl variant=\"outlined\" margin=\"normal\" fullWidth>\n <TextField\n variant=\"outlined\"\n value={modelUID}\n label=\"(Optional) Model UID, model name by default\"\n onChange={(e) => setModelUID(e.target.value)}\n />\n </FormControl>\n <Box style={styles.buttonsContainer}>\n <button\n title=\"Launch Audio\"\n style={styles.buttonContainer}\n onClick={() => launchModel(url, modelData)}\n disabled={isCallingApi || isUpdatingModel || !modelData}\n >\n {(() => {\n if (isCallingApi || isUpdatingModel) {\n return (\n <Box\n style={{ ...styles.buttonItem, backgroundColor: '#f2f2f2' }}\n >\n <CircularProgress\n size=\"20px\"\n sx={{\n color: '#000000',\n }}\n />\n </Box>\n )\n } else if (!modelData) {\n return (\n <Box\n style={{ ...styles.buttonItem, backgroundColor: '#f2f2f2' }}\n >\n <RocketLaunchOutlined size=\"20px\" />\n </Box>\n )\n } else {\n return (\n <Box style={styles.buttonItem}>\n <RocketLaunchOutlined color=\"#000000\" size=\"20px\" />\n </Box>\n )\n }\n })()}\n </button>\n <button\n title=\"Launch Audio\"\n style={styles.buttonContainer}\n onClick={() => setSelected(false)}\n >\n <Box style={styles.buttonItem}>\n <UndoOutlined color=\"#000000\" size=\"20px\" />\n </Box>\n </button>\n </Box>\n </Box>\n </Box>\n )\n}\n\nexport default AudioCard\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: xinference
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Model Serving Made Easy
|
|
5
5
|
Home-page: https://github.com/xorbitsai/inference
|
|
6
6
|
Author: Qin Xuye
|
|
@@ -43,12 +43,14 @@ Requires-Dist: aioprometheus[starlette] >=23.12.0
|
|
|
43
43
|
Requires-Dist: pynvml
|
|
44
44
|
Requires-Dist: async-timeout
|
|
45
45
|
Requires-Dist: peft
|
|
46
|
+
Requires-Dist: timm
|
|
47
|
+
Requires-Dist: opencv-python
|
|
46
48
|
Provides-Extra: all
|
|
47
49
|
Requires-Dist: chatglm-cpp >=0.3.0 ; extra == 'all'
|
|
48
50
|
Requires-Dist: llama-cpp-python >=0.2.25 ; extra == 'all'
|
|
49
51
|
Requires-Dist: transformers >=4.34.1 ; extra == 'all'
|
|
50
52
|
Requires-Dist: torch ; extra == 'all'
|
|
51
|
-
Requires-Dist: accelerate >=0.
|
|
53
|
+
Requires-Dist: accelerate >=0.27.2 ; extra == 'all'
|
|
52
54
|
Requires-Dist: sentencepiece ; extra == 'all'
|
|
53
55
|
Requires-Dist: transformers-stream-generator ; extra == 'all'
|
|
54
56
|
Requires-Dist: bitsandbytes ; extra == 'all'
|
|
@@ -60,7 +62,12 @@ Requires-Dist: diffusers ; extra == 'all'
|
|
|
60
62
|
Requires-Dist: controlnet-aux ; extra == 'all'
|
|
61
63
|
Requires-Dist: orjson ; extra == 'all'
|
|
62
64
|
Requires-Dist: optimum ; extra == 'all'
|
|
65
|
+
Requires-Dist: outlines ==0.0.34 ; extra == 'all'
|
|
66
|
+
Requires-Dist: attrdict ; extra == 'all'
|
|
67
|
+
Requires-Dist: timm >=0.9.16 ; extra == 'all'
|
|
68
|
+
Requires-Dist: torchvision ; extra == 'all'
|
|
63
69
|
Requires-Dist: auto-gptq ; (sys_platform != "darwin") and extra == 'all'
|
|
70
|
+
Requires-Dist: autoawq ; (sys_platform != "darwin") and extra == 'all'
|
|
64
71
|
Requires-Dist: vllm >=0.2.6 ; (sys_platform == "linux") and extra == 'all'
|
|
65
72
|
Requires-Dist: sglang[all] ; (sys_platform == "linux") and extra == 'all'
|
|
66
73
|
Provides-Extra: benchmark
|
|
@@ -94,6 +101,8 @@ Requires-Dist: sphinx-intl >=0.9.9 ; extra == 'doc'
|
|
|
94
101
|
Requires-Dist: sphinx-tabs ; extra == 'doc'
|
|
95
102
|
Requires-Dist: sphinx-design ; extra == 'doc'
|
|
96
103
|
Requires-Dist: prometheus-client ; extra == 'doc'
|
|
104
|
+
Requires-Dist: timm ; extra == 'doc'
|
|
105
|
+
Requires-Dist: opencv-python ; extra == 'doc'
|
|
97
106
|
Provides-Extra: embedding
|
|
98
107
|
Requires-Dist: sentence-transformers >=2.3.1 ; extra == 'embedding'
|
|
99
108
|
Provides-Extra: ggml
|
|
@@ -111,7 +120,7 @@ Requires-Dist: sglang[all] ; extra == 'sglang'
|
|
|
111
120
|
Provides-Extra: transformers
|
|
112
121
|
Requires-Dist: transformers >=4.34.1 ; extra == 'transformers'
|
|
113
122
|
Requires-Dist: torch ; extra == 'transformers'
|
|
114
|
-
Requires-Dist: accelerate >=0.
|
|
123
|
+
Requires-Dist: accelerate >=0.27.2 ; extra == 'transformers'
|
|
115
124
|
Requires-Dist: sentencepiece ; extra == 'transformers'
|
|
116
125
|
Requires-Dist: transformers-stream-generator ; extra == 'transformers'
|
|
117
126
|
Requires-Dist: bitsandbytes ; extra == 'transformers'
|
|
@@ -119,7 +128,11 @@ Requires-Dist: protobuf ; extra == 'transformers'
|
|
|
119
128
|
Requires-Dist: einops ; extra == 'transformers'
|
|
120
129
|
Requires-Dist: tiktoken ; extra == 'transformers'
|
|
121
130
|
Requires-Dist: auto-gptq ; extra == 'transformers'
|
|
131
|
+
Requires-Dist: autoawq ; extra == 'transformers'
|
|
122
132
|
Requires-Dist: optimum ; extra == 'transformers'
|
|
133
|
+
Requires-Dist: attrdict ; extra == 'transformers'
|
|
134
|
+
Requires-Dist: timm >=0.9.16 ; extra == 'transformers'
|
|
135
|
+
Requires-Dist: torchvision ; extra == 'transformers'
|
|
123
136
|
Requires-Dist: peft ; extra == 'transformers'
|
|
124
137
|
Provides-Extra: vllm
|
|
125
138
|
Requires-Dist: vllm >=0.2.6 ; extra == 'vllm'
|
|
@@ -152,20 +165,20 @@ potential of cutting-edge AI models.
|
|
|
152
165
|
|
|
153
166
|
## 🔥 Hot Topics
|
|
154
167
|
### Framework Enhancements
|
|
168
|
+
- Support SGLang backend: [#1161](https://github.com/xorbitsai/inference/pull/1161)
|
|
155
169
|
- Support LoRA for LLM and image models: [#1080](https://github.com/xorbitsai/inference/pull/1080)
|
|
156
170
|
- Support speech recognition model: [#929](https://github.com/xorbitsai/inference/pull/929)
|
|
157
171
|
- Metrics support: [#906](https://github.com/xorbitsai/inference/pull/906)
|
|
158
172
|
- Docker image: [#855](https://github.com/xorbitsai/inference/pull/855)
|
|
159
173
|
- Support multimodal: [#829](https://github.com/xorbitsai/inference/pull/829)
|
|
160
174
|
- Auto recover: [#694](https://github.com/xorbitsai/inference/pull/694)
|
|
161
|
-
- Function calling API: [#701](https://github.com/xorbitsai/inference/pull/701), here's example: https://github.com/xorbitsai/inference/blob/main/examples/FunctionCall.ipynb
|
|
162
175
|
### New Models
|
|
176
|
+
- Built-in support for [OmniLMM](https://github.com/OpenBMB/OmniLMM): [#1171](https://github.com/xorbitsai/inference/pull/1171)
|
|
163
177
|
- Built-in support for [Gemma](https://github.com/google-deepmind/gemma): [#1024](https://github.com/xorbitsai/inference/pull/1024)
|
|
164
178
|
- Built-in support for [Qwen1.5](https://github.com/QwenLM/Qwen1.5): [#994](https://github.com/xorbitsai/inference/pull/994)
|
|
165
179
|
- Built-in support for [Yi-VL](https://github.com/01-ai/Yi): [#946](https://github.com/xorbitsai/inference/pull/946)
|
|
166
180
|
- Built-in support for [Whisper](https://github.com/openai/whisper): [#929](https://github.com/xorbitsai/inference/pull/929)
|
|
167
181
|
- Built-in support for [Orion-chat](https://huggingface.co/OrionStarAI): [#933](https://github.com/xorbitsai/inference/pull/933)
|
|
168
|
-
- Built-in support for [InternLM2-chat](https://huggingface.co/internlm/internlm2-chat-7b): [#829](https://github.com/xorbitsai/inference/pull/913)
|
|
169
182
|
### Integrations
|
|
170
183
|
- [Dify](https://docs.dify.ai/advanced/model-configuration/xinference): an LLMOps platform that enables developers (and even non-developers) to quickly build useful applications based on large language models, ensuring they are visual, operable, and improvable.
|
|
171
184
|
- [Chatbox](https://chatboxai.app/): a desktop client for multiple cutting-edge LLM models, available on Windows, Mac and Linux.
|