xinference 0.12.0__py3-none-any.whl → 0.12.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (67) hide show
  1. xinference/_version.py +3 -3
  2. xinference/api/restful_api.py +74 -6
  3. xinference/client/restful/restful_client.py +74 -5
  4. xinference/constants.py +1 -0
  5. xinference/core/cache_tracker.py +48 -28
  6. xinference/core/model.py +54 -42
  7. xinference/core/scheduler.py +34 -16
  8. xinference/core/supervisor.py +73 -24
  9. xinference/core/worker.py +68 -2
  10. xinference/deploy/cmdline.py +86 -2
  11. xinference/deploy/test/test_cmdline.py +19 -10
  12. xinference/model/audio/__init__.py +14 -1
  13. xinference/model/audio/core.py +12 -1
  14. xinference/model/audio/custom.py +6 -4
  15. xinference/model/audio/model_spec_modelscope.json +20 -0
  16. xinference/model/llm/__init__.py +34 -2
  17. xinference/model/llm/llm_family.json +2 -0
  18. xinference/model/llm/llm_family.py +86 -1
  19. xinference/model/llm/llm_family_csghub.json +66 -0
  20. xinference/model/llm/llm_family_modelscope.json +2 -0
  21. xinference/model/llm/pytorch/chatglm.py +18 -12
  22. xinference/model/llm/pytorch/core.py +92 -42
  23. xinference/model/llm/pytorch/glm4v.py +13 -3
  24. xinference/model/llm/pytorch/qwen_vl.py +1 -1
  25. xinference/model/llm/pytorch/utils.py +27 -14
  26. xinference/model/llm/utils.py +14 -13
  27. xinference/model/llm/vllm/core.py +10 -4
  28. xinference/model/utils.py +8 -2
  29. xinference/thirdparty/ChatTTS/experimental/__init__.py +0 -0
  30. xinference/thirdparty/ChatTTS/experimental/llm.py +40 -0
  31. xinference/thirdparty/ChatTTS/infer/__init__.py +0 -0
  32. xinference/thirdparty/ChatTTS/infer/api.py +125 -0
  33. xinference/thirdparty/ChatTTS/model/__init__.py +0 -0
  34. xinference/thirdparty/ChatTTS/model/dvae.py +155 -0
  35. xinference/thirdparty/ChatTTS/model/gpt.py +265 -0
  36. xinference/thirdparty/ChatTTS/utils/__init__.py +0 -0
  37. xinference/thirdparty/ChatTTS/utils/gpu_utils.py +23 -0
  38. xinference/thirdparty/ChatTTS/utils/infer_utils.py +141 -0
  39. xinference/thirdparty/ChatTTS/utils/io_utils.py +14 -0
  40. xinference/web/ui/build/asset-manifest.json +6 -6
  41. xinference/web/ui/build/index.html +1 -1
  42. xinference/web/ui/build/static/css/main.074e2b31.css +2 -0
  43. xinference/web/ui/build/static/css/main.074e2b31.css.map +1 -0
  44. xinference/web/ui/build/static/js/main.a58ff436.js +3 -0
  45. xinference/web/ui/build/static/js/main.a58ff436.js.map +1 -0
  46. xinference/web/ui/node_modules/.cache/babel-loader/10262a281dec3bc2b185f4385ceb6846626f52d41cb4d46c7c649e719f979d4d.json +1 -0
  47. xinference/web/ui/node_modules/.cache/babel-loader/762a75a62daf3bec2cfc97ec8612798493fb34ef87087dcad6aad64ab7f14345.json +1 -0
  48. xinference/web/ui/node_modules/.cache/babel-loader/7f3bdb3a48fa00c046c8b185acd4da6f2e2940a20dbd77f9373d60de3fd6633e.json +1 -0
  49. xinference/web/ui/node_modules/.cache/babel-loader/f2f73bfdc13b12b02c8cbc4769b0b8e6367e9b6d8331c322d94318491a0b3653.json +1 -0
  50. xinference/web/ui/node_modules/.cache/babel-loader/f51bf63ddaa7afd125ef2254a105789333eecc1c94fdf5157a9b88ef7ad0a5bd.json +1 -0
  51. {xinference-0.12.0.dist-info → xinference-0.12.1.dist-info}/METADATA +1 -1
  52. {xinference-0.12.0.dist-info → xinference-0.12.1.dist-info}/RECORD +57 -45
  53. xinference/web/ui/build/static/css/main.54bca460.css +0 -2
  54. xinference/web/ui/build/static/css/main.54bca460.css.map +0 -1
  55. xinference/web/ui/build/static/js/main.551aa479.js +0 -3
  56. xinference/web/ui/build/static/js/main.551aa479.js.map +0 -1
  57. xinference/web/ui/node_modules/.cache/babel-loader/1e86938a0cdf706d21e99b21f5d868fa247c0c88b26807047e26dcdc4d9a9db3.json +0 -1
  58. xinference/web/ui/node_modules/.cache/babel-loader/1fa824d82b2af519de7700c594e50bde4bbca60d13bd3fabff576802e4070304.json +0 -1
  59. xinference/web/ui/node_modules/.cache/babel-loader/3e737bcdbcbc407ccd65b90e199ef0c3214b261e8e41dbf14d921384a717d9ee.json +0 -1
  60. xinference/web/ui/node_modules/.cache/babel-loader/46b6dd1f6d1109cd0e2455a0ea0be3e9bda1097cd4ebec9c4040070372671cfc.json +0 -1
  61. xinference/web/ui/node_modules/.cache/babel-loader/59ce49eae0f486af4c5034d4d2f9ca77c3ec3a32ecc560085caf5ef482b5f4c9.json +0 -1
  62. xinference/web/ui/node_modules/.cache/babel-loader/a6da6bc3d0d2191adebee87fb58ecebe82d071087bd2f7f3a9c7fdd2ada130f2.json +0 -1
  63. /xinference/web/ui/build/static/js/{main.551aa479.js.LICENSE.txt → main.a58ff436.js.LICENSE.txt} +0 -0
  64. {xinference-0.12.0.dist-info → xinference-0.12.1.dist-info}/LICENSE +0 -0
  65. {xinference-0.12.0.dist-info → xinference-0.12.1.dist-info}/WHEEL +0 -0
  66. {xinference-0.12.0.dist-info → xinference-0.12.1.dist-info}/entry_points.txt +0 -0
  67. {xinference-0.12.0.dist-info → xinference-0.12.1.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 _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import style from'./styles/launchModelStyle';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchModelComponent=function LaunchModelComponent(_ref){var modelType=_ref.modelType,gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];var _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState('all'),_useState6=_slicedToArray(_useState5,2),status=_useState6[0],setStatus=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),completeDeleteArr=_useState8[0],setCompleteDeleteArr=_useState8[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var handleChange=function handleChange(e){setSearchTerm(e.target.value);};var handleStatusChange=function handleStatusChange(event){setStatus(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())){return false;}if(completeDeleteArr.includes(registration.model_name)){registration.cache_status=Array.isArray(registration.cache_status)?[false]:false;}if(status&&status!=='all'){if(registration.cache_status&&!completeDeleteArr.includes(registration.model_name)){return true;}else{return false;}}return true;};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,registrations,builtinModels;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/\").concat(modelType,\"?detailed=true\"),{method:'GET'});case 6:response=_context.sent;_context.next=9;return response.json();case 9:registrations=_context.sent;builtinModels=registrations.filter(function(v){return v.is_builtin;});setRegistrationData(builtinModels);_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 _ref2.apply(this,arguments);};}();useEffect(function(){update();},[]);return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:'150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:\"Status\",onChange:handleStatusChange,value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:\"cached\"})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for \".concat(modelType,\" model name\"),value:searchTerm,onChange:handleChange,size:\"small\",hotkey:\"/\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,modelType:modelType,gpuAvailable:gpuAvailable,onHandleCompleteDelete:handleCompleteDelete},filteredRegistration.model_name);})})]});};export default LaunchModelComponent;","map":{"version":3,"names":["Box","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","ApiContext","fetcher","HotkeyFocusTextField","ModelCard","style","jsx","_jsx","jsxs","_jsxs","LaunchModelComponent","_ref","modelType","gpuAvailable","endPoint","_useState","_useState2","_slicedToArray","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","status","setStatus","_useState7","_useState8","completeDeleteArr","setCompleteDeleteArr","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","handleChange","e","target","value","handleStatusChange","event","filter","registration","modelName","model_name","toLowerCase","includes","cache_status","Array","isArray","handleCompleteDelete","concat","_toConsumableArray","update","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","registrations","builtinModels","wrap","_callee$","_context","prev","next","abrupt","method","sent","json","v","is_builtin","t0","console","error","finish","stop","apply","arguments","m","children","display","gridTemplateColumns","columnGap","margin","variant","id","labelId","label","onChange","size","sx","width","type","hotkey","map","filteredRegistration","url","modelData","onHandleCompleteDelete"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/LaunchModelComponent.js"],"sourcesContent":["import { Box, FormControl, InputLabel, MenuItem, Select } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\nimport style from './styles/launchModelStyle'\n\nconst LaunchModelComponent = ({ modelType, gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const [registrationData, setRegistrationData] = useState([])\n const [searchTerm, setSearchTerm] = useState('')\n const [status, setStatus] = useState('all')\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n const handleStatusChange = (event) => {\n setStatus(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 if (!modelName.includes(searchTerm.toLowerCase())) {\n return false\n }\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.cache_status = Array.isArray(registration.cache_status)\n ? [false]\n : false\n }\n if (status && status !== 'all') {\n if (\n registration.cache_status &&\n !completeDeleteArr.includes(registration.model_name)\n ) {\n return true\n } else {\n return false\n }\n }\n return true\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = async () => {\n if (isCallingApi || isUpdatingModel) return\n\n try {\n setIsCallingApi(true)\n\n const response = await fetcher(\n `${endPoint}/v1/model_registrations/${modelType}?detailed=true`,\n {\n method: 'GET',\n }\n )\n\n const registrations = await response.json()\n\n const builtinModels = registrations.filter((v) => {\n return v.is_builtin\n })\n setRegistrationData(builtinModels)\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [])\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"select-status\">Status</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label=\"Status\"\n onChange={handleStatusChange}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"cached\">cached</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label={`Search for ${modelType} model name`}\n value={searchTerm}\n onChange={handleChange}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n modelType={modelType}\n gpuAvailable={gpuAvailable}\n onHandleCompleteDelete={handleCompleteDelete}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchModelComponent\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -0,0 +1 @@
1
+ {"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _defineProperty from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _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'./styles/registerModelStyle.css';import CheckIcon from'@mui/icons-material/Check';import FilterNoneIcon from'@mui/icons-material/FilterNone';import KeyboardDoubleArrowRightIcon from'@mui/icons-material/KeyboardDoubleArrowRight';import NotesIcon from'@mui/icons-material/Notes';import{Alert,Box,Button,Checkbox,Chip,FormControl,FormControlLabel,InputLabel,MenuItem,Radio,RadioGroup,Select,Snackbar,Stack,Switch,TextField,Tooltip}from'@mui/material';import ClipboardJS from'clipboard';import React,{useContext,useEffect,useRef,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import AddControlnet from'./components/addControlnet';import AddModelSpecs from'./components/addModelSpecs';import languages from'./data/languages';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";var SUPPORTED_LANGUAGES_DICT={en:'English',zh:'Chinese'};var SUPPORTED_FEATURES=['Generate','Chat','Vision'];// Convert dictionary of supported languages into list\nvar SUPPORTED_LANGUAGES=Object.keys(SUPPORTED_LANGUAGES_DICT);var RegisterModelComponent=function RegisterModelComponent(_ref){var modelType=_ref.modelType,customData=_ref.customData;var endPoint=useContext(ApiContext).endPoint;var _useContext=useContext(ApiContext),setErrorMsg=_useContext.setErrorMsg;var _useState=useState(customData),_useState2=_slicedToArray(_useState,2),formData=_useState2[0],setFormData=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),promptStyles=_useState4[0],setPromptStyles=_useState4[1];var _useState5=useState({chat:[],generate:[]}),_useState6=_slicedToArray(_useState5,2),family=_useState6[0],setFamily=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),isShow=_useState8[0],setIsShow=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),languagesArr=_useState10[0],setLanguagesArr=_useState10[1];var _useState11=useState(false),_useState12=_slicedToArray(_useState11,2),isContextLengthAlert=_useState12[0],setIsContextLengthAlert=_useState12[1];var _useState13=useState(false),_useState14=_slicedToArray(_useState13,2),isDimensionsAlert=_useState14[0],setIsDimensionsAlert=_useState14[1];var _useState15=useState(false),_useState16=_slicedToArray(_useState15,2),isMaxTokensAlert=_useState16[0],setIsMaxTokensAlert=_useState16[1];var _useState17=useState(''),_useState18=_slicedToArray(_useState17,2),jsonData=_useState18[0],setJsonData=_useState18[1];var _useState19=useState(false),_useState20=_slicedToArray(_useState19,2),isCopySuccess=_useState20[0],setIsCopySuccess=_useState20[1];var _useState21=useState(false),_useState22=_slicedToArray(_useState21,2),isSpecsArrError=_useState22[0],setIsSpecsArrError=_useState22[1];var scrollRef=useRef(null);var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();useEffect(function(){if(cookie.token===''||cookie.token===undefined){return;}if(cookie.token!=='no_auth'&&!sessionStorage.getItem('token')){navigate('/login',{replace:true});return;}var getBuiltinFamilies=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,errorData,data;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetch(endPoint+'/v1/models/families',{method:'GET',headers:{'Content-Type':'application/json'}});case 2:response=_context.sent;if(response.ok){_context.next=10;break;}_context.next=6;return response.json();case 6:errorData=_context.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context.next=16;break;case 10:_context.next=12;return response.json();case 12:data=_context.sent;data.chat.push('other');data.generate.push('other');setFamily(data);case 16:case\"end\":return _context.stop();}},_callee);}));return function getBuiltinFamilies(){return _ref2.apply(this,arguments);};}();var getBuiltInPromptStyles=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var response,errorData,data,res,key,v;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return fetch(endPoint+'/v1/models/prompts',{method:'GET',headers:{'Content-Type':'application/json'}});case 2:response=_context2.sent;if(response.ok){_context2.next=10;break;}_context2.next=6;return response.json();case 6:errorData=_context2.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context2.next=16;break;case 10:_context2.next=12;return response.json();case 12:data=_context2.sent;res=[];for(key in data){v=data[key];v['name']=key;res.push(v);}setPromptStyles(res);case 16:case\"end\":return _context2.stop();}},_callee2);}));return function getBuiltInPromptStyles(){return _ref3.apply(this,arguments);};}();if(Object.prototype.hasOwnProperty.call(customData,'model_ability')&&Object.prototype.hasOwnProperty.call(customData,'model_family')){// avoid keep requesting backend to get prompts\nif(promptStyles.length===0){getBuiltInPromptStyles().catch(function(error){setErrorMsg(error.message||'An unexpected error occurred when getting builtin prompt styles.');console.error('Error: ',error);});}if(family.chat.length===0){getBuiltinFamilies().catch(function(error){setErrorMsg(error.message||'An unexpected error occurred when getting builtin prompt styles.');console.error('Error: ',error);});}}},[cookie.token]);useEffect(function(){setJsonData(JSON.stringify(formData,null,4));},[formData]);var getFamilyByAbility=function getFamilyByAbility(){if(formData.model_ability.includes('chat')||formData.model_ability.includes('vision')){return family.chat;}else{return family.generate;}};var sortStringsByFirstLetter=function sortStringsByFirstLetter(arr){return arr.sort(function(a,b){var firstCharA=a.charAt(0).toLowerCase();var firstCharB=b.charAt(0).toLowerCase();if(firstCharA<firstCharB){return-1;}if(firstCharA>firstCharB){return 1;}return 0;});};var handleClick=/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(){var key,type,response,errorData;return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:console.log('formData',modelType,formData);_context3.t0=_regeneratorRuntime().keys(formData);case 2:if((_context3.t1=_context3.t0()).done){_context3.next=10;break;}key=_context3.t1.value;type=Object.prototype.toString.call(formData[key]).slice(8,-1);if(!(key!=='model_description'&&(type==='Array'&&key!=='controlnet'&&formData[key].length===0||type==='String'&&formData[key]===''||type==='Number'&&formData[key]<=0))){_context3.next=8;break;}setErrorMsg('Please fill in valid value for all fields');return _context3.abrupt(\"return\");case 8:_context3.next=2;break;case 10:if(!(isSpecsArrError||isContextLengthAlert||isDimensionsAlert||isMaxTokensAlert)){_context3.next=13;break;}setErrorMsg('Please fill in valid value for all fields');return _context3.abrupt(\"return\");case 13:_context3.prev=13;_context3.next=16;return fetcher(endPoint+\"/v1/model_registrations/\".concat(modelType),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model:JSON.stringify(formData),persist:true})});case 16:response=_context3.sent;if(response.ok){_context3.next=24;break;}_context3.next=20;return response.json();case 20:errorData=_context3.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context3.next=27;break;case 24:navigate(\"/launch_model/custom/\".concat(modelType.toLowerCase()));sessionStorage.setItem('modelType','/launch_model/custom/llm');sessionStorage.setItem('subType',\"/launch_model/custom/\".concat(modelType.toLowerCase()));case 27:_context3.next=33;break;case 29:_context3.prev=29;_context3.t2=_context3[\"catch\"](13);console.error('There was a problem with the fetch operation:',_context3.t2);setErrorMsg(_context3.t2.message||'An unexpected error occurred.');case 33:case\"end\":return _context3.stop();}},_callee3,null,[[13,29]]);}));return function handleClick(){return _ref4.apply(this,arguments);};}();var handleNumber=function handleNumber(value,parameterName){setIsContextLengthAlert(false);setIsDimensionsAlert(false);setIsMaxTokensAlert(false);setFormData(_objectSpread(_objectSpread({},formData),{},_defineProperty({},parameterName,value)));// if(value !== '' && Number(value) > 0) {\n// console.log(111);\n// setFormData({ ...formData, [parameterName]: Number(value) })\n// }\nif(value!==''&&(!Number(value)||Number(value)<=0||parseInt(value)!==parseFloat(value))){parameterName==='context_length'?setIsContextLengthAlert(true):'';parameterName==='dimensions'?setIsDimensionsAlert(true):'';parameterName==='max_tokens'?setIsMaxTokensAlert(true):'';}else if(value!==''){setFormData(_objectSpread(_objectSpread({},formData),{},_defineProperty({},parameterName,Number(value))));}};var toggleLanguage=function toggleLanguage(lang){if(modelType==='LLM'){if(formData.model_lang.includes(lang)){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:formData.model_lang.filter(function(l){return l!==lang;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:[].concat(_toConsumableArray(formData.model_lang),[lang])}));}}else{if(formData.language.includes(lang)){setFormData(_objectSpread(_objectSpread({},formData),{},{language:formData.language.filter(function(l){return l!==lang;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:[].concat(_toConsumableArray(formData.language),[lang])}));}}};var toggleAbility=function toggleAbility(ability){if(formData.model_ability.includes(ability)){var obj=JSON.parse(JSON.stringify(formData));if(ability==='chat'){delete obj.prompt_style;}setFormData(_objectSpread(_objectSpread({},obj),{},{model_ability:formData.model_ability.filter(function(a){return a!==ability;}),model_family:''}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_ability:[].concat(_toConsumableArray(formData.model_ability),[ability]),model_family:''}));}};var toggleFamily=function toggleFamily(value){var ps=promptStyles.find(function(item){return item.name===value;});if(formData.model_ability.includes('chat')&&ps){var _ps$stop,_ps$stop_token_ids;var prompt_style={style_name:ps.style_name,system_prompt:ps.system_prompt,roles:ps.roles,intra_message_sep:ps.intra_message_sep,inter_message_sep:ps.inter_message_sep,stop:(_ps$stop=ps.stop)!==null&&_ps$stop!==void 0?_ps$stop:null,stop_token_ids:(_ps$stop_token_ids=ps.stop_token_ids)!==null&&_ps$stop_token_ids!==void 0?_ps$stop_token_ids:null};setFormData(_objectSpread(_objectSpread({},formData),{},{model_family:value,prompt_style:prompt_style}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_family:value}));}};var handleSelectLanguages=function handleSelectLanguages(value){var arr=[].concat(_toConsumableArray(languagesArr),[value]);setLanguagesArr(arr);if(modelType==='LLM'){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:Array.from(new Set([].concat(_toConsumableArray(formData.model_lang),_toConsumableArray(arr))))}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:Array.from(new Set([].concat(_toConsumableArray(formData.language),_toConsumableArray(arr))))}));}};var handleDeleteLanguages=function handleDeleteLanguages(item){var arr=languagesArr.filter(function(subItem){return subItem!==item;});setLanguagesArr(arr);if(modelType==='LLM'){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:formData.model_lang.filter(function(subItem){return subItem!==item;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:formData.language.filter(function(subItem){return subItem!==item;})}));}};var getSpecsArr=function getSpecsArr(arr,isSpecsArrError){setFormData(_objectSpread(_objectSpread({},formData),{},{model_specs:arr}));setIsSpecsArrError(isSpecsArrError);};var getControlnetArr=function getControlnetArr(arr){setFormData(_objectSpread(_objectSpread({},formData),{},{controlnet:arr}));};var handleCopy=function handleCopy(){var clipboard=new ClipboardJS('.copyIcon',{text:function text(){return jsonData;}});clipboard.on('success',function(event){event.clearSelection();setIsCopySuccess(true);});};return/*#__PURE__*/_jsxs(Box,{style:{display:'flex',overFlow:'hidden',maxWidth:'100%'},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"show-json\",children:[/*#__PURE__*/_jsx(\"p\",{children:\"Show custom json config used by api\"}),isShow?/*#__PURE__*/_jsx(Tooltip,{title:\"Pack up\",placement:\"top\",children:/*#__PURE__*/_jsx(KeyboardDoubleArrowRightIcon,{className:\"icon arrow\",onClick:function onClick(){return setIsShow(!isShow);}})}):/*#__PURE__*/_jsx(Tooltip,{title:\"Unfold\",placement:\"top\",children:/*#__PURE__*/_jsx(NotesIcon,{className:\"icon notes\",onClick:function onClick(){return setIsShow(!isShow);}})})]}),/*#__PURE__*/_jsxs(\"div\",{ref:scrollRef,className:isShow?'formBox':'formBox broaden',children:[/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[customData.model_name&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Name\",error:formData.model_name?false:true,value:formData.model_name,size:\"small\",helperText:\"Alphanumeric characters with properly placed hyphens and underscores. Must not match any built-in model names.\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_name:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_description&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Description (Optional)\",value:formData.model_description,size:\"small\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_description:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.context_length&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{error:Number(formData.context_length)>0?false:true,label:\"Context Length\",value:formData.context_length,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'context_length');}}),isContextLengthAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.dimensions&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Dimensions\",error:Number(formData.dimensions)>0?false:true,value:formData.dimensions,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'dimensions');}}),isDimensionsAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.max_tokens&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Max Tokens\",error:Number(formData.max_tokens)>0?false:true,value:formData.max_tokens,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'max_tokens');}}),isMaxTokensAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_uri&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Path\",error:formData.model_uri?false:true,value:formData.model_uri,size:\"small\",helperText:\"Provide the model directory path.\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_uri:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),(customData.model_lang||customData.language)&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:modelType==='LLM'?formData.model_lang.length===0?'#d32f2f':'inherit':formData.language.length===0?'#d32f2f':'inherit'},children:\"Model Languages\"}),/*#__PURE__*/_jsxs(Box,{sx:styles.checkboxWrapper,children:[SUPPORTED_LANGUAGES.map(function(lang){return/*#__PURE__*/_jsx(Box,{sx:{marginRight:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{control:/*#__PURE__*/_jsx(Checkbox,{checked:modelType==='LLM'?formData.model_lang.includes(lang):formData.language.includes(lang),onChange:function onChange(){return toggleLanguage(lang);},name:lang}),label:SUPPORTED_LANGUAGES_DICT[lang],style:{paddingLeft:10}})},lang);}),/*#__PURE__*/_jsxs(FormControl,{sx:{m:1,minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Languages\"}),/*#__PURE__*/_jsx(Select,{value:'',label:\"Languages\",onChange:function onChange(e){return handleSelectLanguages(e.target.value);},MenuProps:{PaperProps:{style:{maxHeight:'20vh'}}},children:languages.filter(function(item){return!languagesArr.includes(item.code);}).map(function(item){return/*#__PURE__*/_jsx(MenuItem,{value:item.code,children:item.code},item.code);})})]})]}),/*#__PURE__*/_jsx(Stack,{direction:\"row\",spacing:1,style:{marginLeft:'10px'},children:languagesArr.map(function(item){return/*#__PURE__*/_jsx(Chip,{label:item,variant:\"outlined\",size:\"small\",color:\"primary\",onDelete:function onDelete(){return handleDeleteLanguages(item);}},item);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),'multilingual'in customData&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:\"Multilingual\"}),/*#__PURE__*/_jsx(FormControlLabel,{style:{marginLeft:0,width:50},control:/*#__PURE__*/_jsx(Switch,{}),onChange:function onChange(e){return setFormData(_objectSpread(_objectSpread({},formData),{},{multilingual:e.target.checked}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_ability&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:formData.model_ability.length==0?'#d32f2f':'inherit'},children:\"Model Abilities\"}),/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:SUPPORTED_FEATURES.map(function(ability){return/*#__PURE__*/_jsx(Box,{sx:{marginRight:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{control:/*#__PURE__*/_jsx(Checkbox,{checked:formData.model_ability.includes(ability.toLowerCase()),onChange:function onChange(){return toggleAbility(ability.toLowerCase());},name:ability}),label:ability,style:{paddingLeft:10}})},ability);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),(customData.model_family===''||customData.model_family)&&/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:'inherit'},children:\"Model Family\"}),modelType==='LLM'&&formData.model_family&&/*#__PURE__*/_jsxs(Alert,{icon:/*#__PURE__*/_jsx(CheckIcon,{fontSize:\"inherit\"}),severity:\"success\",children:[\"Please be careful to select the family name corresponding to the model you want to register. If not found, please choose\",/*#__PURE__*/_jsx(\"i\",{style:{fontStyle:'italic',fontWeight:700},children:\" other\"}),\".\"]}),modelType==='LLM'&&!formData.model_family&&/*#__PURE__*/_jsxs(Alert,{severity:\"error\",children:[\"Please be careful to select the family name corresponding to the model you want to register. If not found, please choose\",/*#__PURE__*/_jsx(\"i\",{style:{fontStyle:'italic',fontWeight:700},children:\" other\"}),\".\"]}),/*#__PURE__*/_jsx(RadioGroup,{value:formData.model_family,onChange:function onChange(e){toggleFamily(e.target.value);},children:/*#__PURE__*/_jsxs(Box,{sx:styles.checkboxWrapper,style:{paddingLeft:'10px'},children:[modelType==='LLM'&&sortStringsByFirstLetter(getFamilyByAbility()).map(function(v){return/*#__PURE__*/_jsx(Box,{sx:{width:'20%'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:v,control:/*#__PURE__*/_jsx(Radio,{}),label:v})},v);}),(modelType==='image'||modelType==='audio')&&/*#__PURE__*/_jsx(FormControlLabel,{value:formData.model_family,checked:true,control:/*#__PURE__*/_jsx(Radio,{}),label:formData.model_family})]})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_specs&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddModelSpecs,{formData:customData.model_specs[0],onGetArr:getSpecsArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.controlnet&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddControlnet,{onGetControlnetArr:getControlnetArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]})]}),/*#__PURE__*/_jsx(Box,{width:'100%',children:/*#__PURE__*/_jsx(Button,{variant:\"contained\",color:\"primary\",type:\"submit\",onClick:handleClick,children:\"Register Model\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:isShow?'jsonBox':'jsonBox hide',children:[/*#__PURE__*/_jsx(\"div\",{className:\"jsonBox-header\",children:\"JSON Format\"}),/*#__PURE__*/_jsx(Tooltip,{title:\"Copy all\",placement:\"top\",children:/*#__PURE__*/_jsx(FilterNoneIcon,{className:\"copyIcon\",onClick:handleCopy})}),/*#__PURE__*/_jsx(\"textarea\",{readOnly:true,className:\"textarea\",value:jsonData})]}),/*#__PURE__*/_jsx(Snackbar,{anchorOrigin:{vertical:'top',horizontal:'center'},open:isCopySuccess,autoHideDuration:1500,onClose:function onClose(){return setIsCopySuccess(false);},children:/*#__PURE__*/_jsx(Alert,{severity:\"success\",variant:\"filled\",sx:{width:'100%'},children:\"Copied to clipboard!\"})})]});};export default RegisterModelComponent;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',alignItems:'center',width:'100%'}};","map":{"version":3,"names":["CheckIcon","FilterNoneIcon","KeyboardDoubleArrowRightIcon","NotesIcon","Alert","Box","Button","Checkbox","Chip","FormControl","FormControlLabel","InputLabel","MenuItem","Radio","RadioGroup","Select","Snackbar","Stack","Switch","TextField","Tooltip","ClipboardJS","React","useContext","useEffect","useRef","useState","useCookies","useNavigate","ApiContext","fetcher","AddControlnet","AddModelSpecs","languages","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SUPPORTED_LANGUAGES_DICT","en","zh","SUPPORTED_FEATURES","SUPPORTED_LANGUAGES","Object","keys","RegisterModelComponent","_ref","modelType","customData","endPoint","_useContext","setErrorMsg","_useState","_useState2","_slicedToArray","formData","setFormData","_useState3","_useState4","promptStyles","setPromptStyles","_useState5","chat","generate","_useState6","family","setFamily","_useState7","_useState8","isShow","setIsShow","_useState9","_useState10","languagesArr","setLanguagesArr","_useState11","_useState12","isContextLengthAlert","setIsContextLengthAlert","_useState13","_useState14","isDimensionsAlert","setIsDimensionsAlert","_useState15","_useState16","isMaxTokensAlert","setIsMaxTokensAlert","_useState17","_useState18","jsonData","setJsonData","_useState19","_useState20","isCopySuccess","setIsCopySuccess","_useState21","_useState22","isSpecsArrError","setIsSpecsArrError","scrollRef","_useCookies","_useCookies2","cookie","navigate","token","undefined","sessionStorage","getItem","replace","getBuiltinFamilies","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","errorData","data","wrap","_callee$","_context","prev","next","fetch","method","headers","sent","ok","json","concat","status","detail","push","stop","apply","arguments","getBuiltInPromptStyles","_ref3","_callee2","res","key","v","_callee2$","_context2","prototype","hasOwnProperty","call","length","catch","error","message","console","JSON","stringify","getFamilyByAbility","model_ability","includes","sortStringsByFirstLetter","arr","sort","a","b","firstCharA","charAt","toLowerCase","firstCharB","handleClick","_ref4","_callee3","type","_callee3$","_context3","log","t0","t1","done","value","toString","slice","abrupt","body","model","persist","setItem","t2","handleNumber","parameterName","_objectSpread","_defineProperty","Number","parseInt","parseFloat","toggleLanguage","lang","model_lang","filter","l","_toConsumableArray","language","toggleAbility","ability","obj","parse","prompt_style","model_family","toggleFamily","ps","find","item","name","_ps$stop","_ps$stop_token_ids","style_name","system_prompt","roles","intra_message_sep","inter_message_sep","stop_token_ids","handleSelectLanguages","Array","from","Set","handleDeleteLanguages","subItem","getSpecsArr","model_specs","getControlnetArr","controlnet","handleCopy","clipboard","text","on","event","clearSelection","style","display","overFlow","maxWidth","children","className","title","placement","onClick","ref","sx","styles","baseFormControl","model_name","label","size","helperText","onChange","target","padding","model_description","context_length","severity","dimensions","max_tokens","model_uri","paddingLeft","color","checkboxWrapper","map","marginRight","control","checked","m","minWidth","e","MenuProps","PaperProps","maxHeight","code","direction","spacing","marginLeft","variant","onDelete","width","multilingual","icon","fontSize","fontStyle","fontWeight","onGetArr","onGetControlnetArr","readOnly","anchorOrigin","vertical","horizontal","open","autoHideDuration","onClose","margin","flexWrap","alignItems"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/registerModel.js"],"sourcesContent":["import './styles/registerModelStyle.css'\n\nimport CheckIcon from '@mui/icons-material/Check'\nimport FilterNoneIcon from '@mui/icons-material/FilterNone'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport NotesIcon from '@mui/icons-material/Notes'\nimport {\n Alert,\n Box,\n Button,\n Checkbox,\n Chip,\n FormControl,\n FormControlLabel,\n InputLabel,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n Snackbar,\n Stack,\n Switch,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport ClipboardJS from 'clipboard'\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport AddControlnet from './components/addControlnet'\nimport AddModelSpecs from './components/addModelSpecs'\nimport languages from './data/languages'\nconst SUPPORTED_LANGUAGES_DICT = { en: 'English', zh: 'Chinese' }\nconst SUPPORTED_FEATURES = ['Generate', 'Chat', 'Vision']\n\n// Convert dictionary of supported languages into list\nconst SUPPORTED_LANGUAGES = Object.keys(SUPPORTED_LANGUAGES_DICT)\n\nconst RegisterModelComponent = ({ modelType, customData }) => {\n const endPoint = useContext(ApiContext).endPoint\n const { setErrorMsg } = useContext(ApiContext)\n const [formData, setFormData] = useState(customData)\n const [promptStyles, setPromptStyles] = useState([])\n const [family, setFamily] = useState({\n chat: [],\n generate: [],\n })\n const [isShow, setIsShow] = useState(false)\n const [languagesArr, setLanguagesArr] = useState([])\n const [isContextLengthAlert, setIsContextLengthAlert] = useState(false)\n const [isDimensionsAlert, setIsDimensionsAlert] = useState(false)\n const [isMaxTokensAlert, setIsMaxTokensAlert] = useState(false)\n const [jsonData, setJsonData] = useState('')\n const [isCopySuccess, setIsCopySuccess] = useState(false)\n const [isSpecsArrError, setIsSpecsArrError] = useState(false)\n const scrollRef = useRef(null)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n\n useEffect(() => {\n if (cookie.token === '' || cookie.token === undefined) {\n return\n }\n if (cookie.token !== 'no_auth' && !sessionStorage.getItem('token')) {\n navigate('/login', { replace: true })\n return\n }\n\n const getBuiltinFamilies = async () => {\n const response = await fetch(endPoint + '/v1/models/families', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n const data = await response.json()\n data.chat.push('other')\n data.generate.push('other')\n setFamily(data)\n }\n }\n\n const getBuiltInPromptStyles = async () => {\n const response = await fetch(endPoint + '/v1/models/prompts', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n const data = await response.json()\n let res = []\n for (const key in data) {\n let v = data[key]\n v['name'] = key\n res.push(v)\n }\n setPromptStyles(res)\n }\n }\n\n if (\n Object.prototype.hasOwnProperty.call(customData, 'model_ability') &&\n Object.prototype.hasOwnProperty.call(customData, 'model_family')\n ) {\n // avoid keep requesting backend to get prompts\n if (promptStyles.length === 0) {\n getBuiltInPromptStyles().catch((error) => {\n setErrorMsg(\n error.message ||\n 'An unexpected error occurred when getting builtin prompt styles.'\n )\n console.error('Error: ', error)\n })\n }\n if (family.chat.length === 0) {\n getBuiltinFamilies().catch((error) => {\n setErrorMsg(\n error.message ||\n 'An unexpected error occurred when getting builtin prompt styles.'\n )\n console.error('Error: ', error)\n })\n }\n }\n }, [cookie.token])\n\n useEffect(() => {\n setJsonData(JSON.stringify(formData, null, 4))\n }, [formData])\n\n const getFamilyByAbility = () => {\n if (\n formData.model_ability.includes('chat') ||\n formData.model_ability.includes('vision')\n ) {\n return family.chat\n } else {\n return family.generate\n }\n }\n\n const sortStringsByFirstLetter = (arr) => {\n return arr.sort((a, b) => {\n const firstCharA = a.charAt(0).toLowerCase()\n const firstCharB = b.charAt(0).toLowerCase()\n if (firstCharA < firstCharB) {\n return -1\n }\n if (firstCharA > firstCharB) {\n return 1\n }\n return 0\n })\n }\n\n const handleClick = async () => {\n console.log('formData', modelType, formData)\n\n for (let key in formData) {\n const type = Object.prototype.toString.call(formData[key]).slice(8, -1)\n if (\n key !== 'model_description' &&\n ((type === 'Array' &&\n key !== 'controlnet' &&\n formData[key].length === 0) ||\n (type === 'String' && formData[key] === '') ||\n (type === 'Number' && formData[key] <= 0))\n ) {\n setErrorMsg('Please fill in valid value for all fields')\n return\n }\n }\n\n if (\n isSpecsArrError ||\n isContextLengthAlert ||\n isDimensionsAlert ||\n isMaxTokensAlert\n ) {\n setErrorMsg('Please fill in valid value for all fields')\n return\n }\n\n try {\n const response = await fetcher(\n endPoint + `/v1/model_registrations/${modelType}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model: JSON.stringify(formData),\n persist: true,\n }),\n }\n )\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n navigate(`/launch_model/custom/${modelType.toLowerCase()}`)\n sessionStorage.setItem('modelType', '/launch_model/custom/llm')\n sessionStorage.setItem(\n 'subType',\n `/launch_model/custom/${modelType.toLowerCase()}`\n )\n }\n } catch (error) {\n console.error('There was a problem with the fetch operation:', error)\n setErrorMsg(error.message || 'An unexpected error occurred.')\n }\n }\n\n const handleNumber = (value, parameterName) => {\n setIsContextLengthAlert(false)\n setIsDimensionsAlert(false)\n setIsMaxTokensAlert(false)\n setFormData({ ...formData, [parameterName]: value })\n\n // if(value !== '' && Number(value) > 0) {\n // console.log(111);\n // setFormData({ ...formData, [parameterName]: Number(value) })\n // }\n\n if (\n value !== '' &&\n (!Number(value) ||\n Number(value) <= 0 ||\n parseInt(value) !== parseFloat(value))\n ) {\n parameterName === 'context_length' ? setIsContextLengthAlert(true) : ''\n parameterName === 'dimensions' ? setIsDimensionsAlert(true) : ''\n parameterName === 'max_tokens' ? setIsMaxTokensAlert(true) : ''\n } else if (value !== '') {\n setFormData({ ...formData, [parameterName]: Number(value) })\n }\n }\n\n const toggleLanguage = (lang) => {\n if (modelType === 'LLM') {\n if (formData.model_lang.includes(lang)) {\n setFormData({\n ...formData,\n model_lang: formData.model_lang.filter((l) => l !== lang),\n })\n } else {\n setFormData({\n ...formData,\n model_lang: [...formData.model_lang, lang],\n })\n }\n } else {\n if (formData.language.includes(lang)) {\n setFormData({\n ...formData,\n language: formData.language.filter((l) => l !== lang),\n })\n } else {\n setFormData({\n ...formData,\n language: [...formData.language, lang],\n })\n }\n }\n }\n\n const toggleAbility = (ability) => {\n if (formData.model_ability.includes(ability)) {\n const obj = JSON.parse(JSON.stringify(formData))\n if (ability === 'chat') {\n delete obj.prompt_style\n }\n setFormData({\n ...obj,\n model_ability: formData.model_ability.filter((a) => a !== ability),\n model_family: '',\n })\n } else {\n setFormData({\n ...formData,\n model_ability: [...formData.model_ability, ability],\n model_family: '',\n })\n }\n }\n\n const toggleFamily = (value) => {\n const ps = promptStyles.find((item) => item.name === value)\n if (formData.model_ability.includes('chat') && ps) {\n const prompt_style = {\n style_name: ps.style_name,\n system_prompt: ps.system_prompt,\n roles: ps.roles,\n intra_message_sep: ps.intra_message_sep,\n inter_message_sep: ps.inter_message_sep,\n stop: ps.stop ?? null,\n stop_token_ids: ps.stop_token_ids ?? null,\n }\n setFormData({\n ...formData,\n model_family: value,\n prompt_style,\n })\n } else {\n setFormData({ ...formData, model_family: value })\n }\n }\n\n const handleSelectLanguages = (value) => {\n const arr = [...languagesArr, value]\n setLanguagesArr(arr)\n if (modelType === 'LLM') {\n setFormData({\n ...formData,\n model_lang: Array.from(new Set([...formData.model_lang, ...arr])),\n })\n } else {\n setFormData({\n ...formData,\n language: Array.from(new Set([...formData.language, ...arr])),\n })\n }\n }\n\n const handleDeleteLanguages = (item) => {\n const arr = languagesArr.filter((subItem) => subItem !== item)\n setLanguagesArr(arr)\n if (modelType === 'LLM') {\n setFormData({\n ...formData,\n model_lang: formData.model_lang.filter((subItem) => subItem !== item),\n })\n } else {\n setFormData({\n ...formData,\n language: formData.language.filter((subItem) => subItem !== item),\n })\n }\n }\n\n const getSpecsArr = (arr, isSpecsArrError) => {\n setFormData({ ...formData, model_specs: arr })\n setIsSpecsArrError(isSpecsArrError)\n }\n\n const getControlnetArr = (arr) => {\n setFormData({ ...formData, controlnet: arr })\n }\n\n const handleCopy = () => {\n const clipboard = new ClipboardJS('.copyIcon', {\n text: () => jsonData,\n })\n\n clipboard.on('success', function (event) {\n event.clearSelection()\n setIsCopySuccess(true)\n })\n }\n\n return (\n <Box style={{ display: 'flex', overFlow: 'hidden', maxWidth: '100%' }}>\n <div className=\"show-json\">\n <p>Show custom json config used by api</p>\n {isShow ? (\n <Tooltip title=\"Pack up\" placement=\"top\">\n <KeyboardDoubleArrowRightIcon\n className=\"icon arrow\"\n onClick={() => setIsShow(!isShow)}\n />\n </Tooltip>\n ) : (\n <Tooltip title=\"Unfold\" placement=\"top\">\n <NotesIcon\n className=\"icon notes\"\n onClick={() => setIsShow(!isShow)}\n />\n </Tooltip>\n )}\n </div>\n <div ref={scrollRef} className={isShow ? 'formBox' : 'formBox broaden'}>\n {/* Base Information */}\n <FormControl sx={styles.baseFormControl}>\n {/* name */}\n {customData.model_name && (\n <>\n <TextField\n label=\"Model Name\"\n error={formData.model_name ? false : true}\n value={formData.model_name}\n size=\"small\"\n helperText=\"Alphanumeric characters with properly placed hyphens and underscores. Must not match any built-in model names.\"\n onChange={(event) =>\n setFormData({ ...formData, model_name: event.target.value })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* description */}\n {customData.model_description && (\n <>\n <TextField\n label=\"Model Description (Optional)\"\n value={formData.model_description}\n size=\"small\"\n onChange={(event) =>\n setFormData({\n ...formData,\n model_description: event.target.value,\n })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* Context Length */}\n {customData.context_length && (\n <>\n <TextField\n error={Number(formData.context_length) > 0 ? false : true}\n label=\"Context Length\"\n value={formData.context_length}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'context_length')\n }}\n />\n {isContextLengthAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* dimensions */}\n {customData.dimensions && (\n <>\n <TextField\n label=\"Dimensions\"\n error={Number(formData.dimensions) > 0 ? false : true}\n value={formData.dimensions}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'dimensions')\n }}\n />\n {isDimensionsAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* Max Tokens */}\n {customData.max_tokens && (\n <>\n <TextField\n label=\"Max Tokens\"\n error={Number(formData.max_tokens) > 0 ? false : true}\n value={formData.max_tokens}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'max_tokens')\n }}\n />\n {isMaxTokensAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* path */}\n {customData.model_uri && (\n <>\n <TextField\n label=\"Model Path\"\n error={formData.model_uri ? false : true}\n value={formData.model_uri}\n size=\"small\"\n helperText=\"Provide the model directory path.\"\n onChange={(event) =>\n setFormData({ ...formData, model_uri: event.target.value })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* model_lang */}\n {(customData.model_lang || customData.language) && (\n <>\n <label\n style={{\n paddingLeft: 5,\n color:\n modelType === 'LLM'\n ? formData.model_lang.length === 0\n ? '#d32f2f'\n : 'inherit'\n : formData.language.length === 0\n ? '#d32f2f'\n : 'inherit',\n }}\n >\n Model Languages\n </label>\n <Box sx={styles.checkboxWrapper}>\n {SUPPORTED_LANGUAGES.map((lang) => (\n <Box key={lang} sx={{ marginRight: '10px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={\n modelType === 'LLM'\n ? formData.model_lang.includes(lang)\n : formData.language.includes(lang)\n }\n onChange={() => toggleLanguage(lang)}\n name={lang}\n />\n }\n label={SUPPORTED_LANGUAGES_DICT[lang]}\n style={{\n paddingLeft: 10,\n }}\n />\n </Box>\n ))}\n <FormControl sx={{ m: 1, minWidth: 120 }} size=\"small\">\n <InputLabel>Languages</InputLabel>\n <Select\n value={''}\n label=\"Languages\"\n onChange={(e) => handleSelectLanguages(e.target.value)}\n MenuProps={{\n PaperProps: {\n style: { maxHeight: '20vh' },\n },\n }}\n >\n {languages\n .filter((item) => !languagesArr.includes(item.code))\n .map((item) => (\n <MenuItem key={item.code} value={item.code}>\n {item.code}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n <Stack direction=\"row\" spacing={1} style={{ marginLeft: '10px' }}>\n {languagesArr.map((item) => (\n <Chip\n key={item}\n label={item}\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n onDelete={() => handleDeleteLanguages(item)}\n />\n ))}\n </Stack>\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* multilingual */}\n {'multilingual' in customData && (\n <>\n <label\n style={{\n paddingLeft: 5,\n }}\n >\n Multilingual\n </label>\n <FormControlLabel\n style={{ marginLeft: 0, width: 50 }}\n control={<Switch />}\n onChange={(e) =>\n setFormData({ ...formData, multilingual: e.target.checked })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* abilities */}\n {customData.model_ability && (\n <>\n <label\n style={{\n paddingLeft: 5,\n color:\n formData.model_ability.length == 0 ? '#d32f2f' : 'inherit',\n }}\n >\n Model Abilities\n </label>\n <Box sx={styles.checkboxWrapper}>\n {SUPPORTED_FEATURES.map((ability) => (\n <Box key={ability} sx={{ marginRight: '10px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={formData.model_ability.includes(\n ability.toLowerCase()\n )}\n onChange={() => toggleAbility(ability.toLowerCase())}\n name={ability}\n />\n }\n label={ability}\n style={{\n paddingLeft: 10,\n }}\n />\n </Box>\n ))}\n </Box>\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* family */}\n {(customData.model_family === '' || customData.model_family) && (\n <FormControl sx={styles.baseFormControl}>\n <label\n style={{\n paddingLeft: 5,\n color: 'inherit',\n }}\n >\n Model Family\n </label>\n {modelType === 'LLM' && formData.model_family && (\n <Alert\n icon={<CheckIcon fontSize=\"inherit\" />}\n severity=\"success\"\n >\n Please be careful to select the family name corresponding to\n the model you want to register. If not found, please choose\n <i style={{ fontStyle: 'italic', fontWeight: 700 }}> other</i>\n .\n </Alert>\n )}\n {modelType === 'LLM' && !formData.model_family && (\n <Alert severity=\"error\">\n Please be careful to select the family name corresponding to\n the model you want to register. If not found, please choose\n <i style={{ fontStyle: 'italic', fontWeight: 700 }}> other</i>\n .\n </Alert>\n )}\n <RadioGroup\n value={formData.model_family}\n onChange={(e) => {\n toggleFamily(e.target.value)\n }}\n >\n <Box\n sx={styles.checkboxWrapper}\n style={{ paddingLeft: '10px' }}\n >\n {modelType === 'LLM' &&\n sortStringsByFirstLetter(getFamilyByAbility()).map((v) => (\n <Box sx={{ width: '20%' }} key={v}>\n <FormControlLabel\n value={v}\n control={<Radio />}\n label={v}\n />\n </Box>\n ))}\n {(modelType === 'image' || modelType === 'audio') && (\n <FormControlLabel\n value={formData.model_family}\n checked\n control={<Radio />}\n label={formData.model_family}\n />\n )}\n </Box>\n </RadioGroup>\n <Box padding=\"15px\"></Box>\n </FormControl>\n )}\n\n {/* specs */}\n {customData.model_specs && (\n <>\n <AddModelSpecs\n formData={customData.model_specs[0]}\n onGetArr={getSpecsArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* controlnet */}\n {customData.controlnet && (\n <>\n <AddControlnet\n onGetControlnetArr={getControlnetArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n </FormControl>\n\n <Box width={'100%'}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleClick}\n >\n Register Model\n </Button>\n </Box>\n </div>\n\n {/* JSON */}\n <div className={isShow ? 'jsonBox' : 'jsonBox hide'}>\n <div className=\"jsonBox-header\">JSON Format</div>\n <Tooltip title=\"Copy all\" placement=\"top\">\n <FilterNoneIcon className=\"copyIcon\" onClick={handleCopy} />\n </Tooltip>\n <textarea readOnly className=\"textarea\" value={jsonData} />\n </div>\n\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={isCopySuccess}\n autoHideDuration={1500}\n onClose={() => setIsCopySuccess(false)}\n >\n <Alert severity=\"success\" variant=\"filled\" sx={{ width: '100%' }}>\n Copied to clipboard!\n </Alert>\n </Snackbar>\n </Box>\n )\n}\n\nexport default RegisterModelComponent\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n },\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -0,0 +1 @@
1
+ {"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchLLM=function LaunchLLM(_ref){var gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];// States used for filtering\nvar _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState('all'),_useState6=_slicedToArray(_useState5,2),modelAbility=_useState6[0],setModelAbility=_useState6[1];var _useState7=useState('all'),_useState8=_slicedToArray(_useState7,2),status=_useState8[0],setStatus=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),completeDeleteArr=_useState10[0],setCompleteDeleteArr=_useState10[1];var handleChange=function handleChange(event){setSearchTerm(event.target.value);};var handleAbilityChange=function handleAbilityChange(event){setModelAbility(event.target.value);};var handleStatusChange=function handleStatusChange(event){setStatus(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';var modelDescription=registration.model_description?registration.model_description.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())&&!modelDescription.includes(searchTerm.toLowerCase())){return false;}if(modelAbility&&modelAbility!=='all'){if(registration.model_ability.indexOf(modelAbility)<0){return false;}}if(completeDeleteArr.includes(registration.model_name)){registration.model_specs.forEach(function(item){item.cache_status=Array.isArray(item)?[false]:false;});}if(status&&status!=='all'){var judge=registration.model_specs.some(function(spec){return filterCache(spec);});if(judge&&!completeDeleteArr.includes(registration.model_name)){return true;}else{return false;}}return true;};var filterCache=function filterCache(spec){if(spec.model_format==='pytorch'){return spec.cache_status&&spec.cache_status===true;}else{return spec.cache_status&&spec.cache_status.some(function(cs){return cs;});}};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=function update(){if(isCallingApi||isUpdatingModel||cookie.token!=='no_auth'&&!sessionStorage.getItem('token'))return;try{setIsCallingApi(true);fetcher(\"\".concat(endPoint,\"/v1/model_registrations/LLM?detailed=true\"),{method:'GET'}).then(function(response){if(!response.ok){response.json().then(function(errData){return setErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errData.detail||'Unknown error'));});}else{response.json().then(function(data){var builtinRegistrations=data.filter(function(v){return v.is_builtin;});setRegistrationData(builtinRegistrations);});}});}catch(error){console.error('Error:',error);}finally{setIsCallingApi(false);}};useEffect(function(){update();},[cookie.token]);var style={display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'};return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:'150px 150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"ability-select-label\",children:\"Model Ability\"}),/*#__PURE__*/_jsxs(Select,{id:\"ability\",labelId:\"ability-select-label\",label:\"Model Ability\",onChange:handleAbilityChange,value:modelAbility,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"generate\",children:\"generate\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"chat\",children:\"chat\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"vision\",children:\"vl-chat\"})]})]}),/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:\"Status\",onChange:handleStatusChange,value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:\"cached\"})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for model name and description\",value:searchTerm,onChange:handleChange,size:\"small\",hotkey:\"/\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,gpuAvailable:gpuAvailable,modelType:'LLM',onHandleCompleteDelete:handleCompleteDelete},filteredRegistration.model_name);})})]});};export default LaunchLLM;","map":{"version":3,"names":["Box","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","useCookies","ApiContext","fetcher","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","LaunchLLM","_ref","gpuAvailable","endPoint","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","_slicedToArray","cookie","_useState","_useState2","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","modelAbility","setModelAbility","_useState7","_useState8","status","setStatus","_useState9","_useState10","completeDeleteArr","setCompleteDeleteArr","handleChange","event","target","value","handleAbilityChange","handleStatusChange","filter","registration","modelName","model_name","toLowerCase","modelDescription","model_description","includes","model_ability","indexOf","model_specs","forEach","item","cache_status","Array","isArray","judge","some","spec","filterCache","model_format","cs","handleCompleteDelete","concat","_toConsumableArray","update","token","sessionStorage","getItem","method","then","response","ok","json","errData","detail","data","builtinRegistrations","v","is_builtin","error","console","style","display","gridTemplateColumns","paddingLeft","gridGap","m","children","columnGap","margin","variant","id","labelId","label","onChange","size","sx","width","type","hotkey","map","filteredRegistration","url","modelData","modelType","onHandleCompleteDelete"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/launchLLM.js"],"sourcesContent":["import { Box, FormControl, InputLabel, MenuItem, Select } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst LaunchLLM = ({ gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n\n const [registrationData, setRegistrationData] = useState([])\n // States used for filtering\n const [searchTerm, setSearchTerm] = useState('')\n const [modelAbility, setModelAbility] = useState('all')\n const [status, setStatus] = useState('all')\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n\n const handleChange = (event) => {\n setSearchTerm(event.target.value)\n }\n\n const handleAbilityChange = (event) => {\n setModelAbility(event.target.value)\n }\n\n const handleStatusChange = (event) => {\n setStatus(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 const modelDescription = registration.model_description\n ? registration.model_description.toLowerCase()\n : ''\n\n if (\n !modelName.includes(searchTerm.toLowerCase()) &&\n !modelDescription.includes(searchTerm.toLowerCase())\n ) {\n return false\n }\n if (modelAbility && modelAbility !== 'all') {\n if (registration.model_ability.indexOf(modelAbility) < 0) {\n return false\n }\n }\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.model_specs.forEach((item) => {\n item.cache_status = Array.isArray(item) ? [false] : false\n })\n }\n if (status && status !== 'all') {\n const judge = registration.model_specs.some((spec) => {\n return filterCache(spec)\n })\n if (judge && !completeDeleteArr.includes(registration.model_name)) {\n return true\n } else {\n return false\n }\n }\n return true\n }\n\n const filterCache = (spec) => {\n if (spec.model_format === 'pytorch') {\n return spec.cache_status && spec.cache_status === true\n } else {\n return spec.cache_status && spec.cache_status.some((cs) => cs)\n }\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = () => {\n if (\n isCallingApi ||\n isUpdatingModel ||\n (cookie.token !== 'no_auth' && !sessionStorage.getItem('token'))\n )\n return\n\n try {\n setIsCallingApi(true)\n\n fetcher(`${endPoint}/v1/model_registrations/LLM?detailed=true`, {\n method: 'GET',\n }).then((response) => {\n if (!response.ok) {\n response\n .json()\n .then((errData) =>\n setErrorMsg(\n `Server error: ${response.status} - ${\n errData.detail || 'Unknown error'\n }`\n )\n )\n } else {\n response.json().then((data) => {\n const builtinRegistrations = data.filter((v) => v.is_builtin)\n setRegistrationData(builtinRegistrations)\n })\n }\n })\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [cookie.token])\n\n const 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: '150px 150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"ability-select-label\">Model Ability</InputLabel>\n <Select\n id=\"ability\"\n labelId=\"ability-select-label\"\n label=\"Model Ability\"\n onChange={handleAbilityChange}\n value={modelAbility}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"generate\">generate</MenuItem>\n <MenuItem value=\"chat\">chat</MenuItem>\n <MenuItem value=\"vision\">vl-chat</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"select-status\">Status</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label=\"Status\"\n onChange={handleStatusChange}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"cached\">cached</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label=\"Search for model name and description\"\n value={searchTerm}\n onChange={handleChange}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n gpuAvailable={gpuAvailable}\n modelType={'LLM'}\n onHandleCompleteDelete={handleCompleteDelete}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchLLM\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}