xinference 1.11.0__py3-none-any.whl → 1.12.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (43) hide show
  1. xinference/__init__.py +8 -0
  2. xinference/_version.py +3 -3
  3. xinference/api/oauth2/utils.py +26 -5
  4. xinference/core/model.py +1 -10
  5. xinference/device_utils.py +11 -1
  6. xinference/model/embedding/model_spec.json +70 -0
  7. xinference/model/image/core.py +20 -10
  8. xinference/model/image/model_spec.json +55 -3
  9. xinference/model/image/ocr/__init__.py +5 -0
  10. xinference/model/image/ocr/deepseek_ocr.py +958 -0
  11. xinference/model/llm/core.py +2 -0
  12. xinference/model/llm/llama_cpp/core.py +2 -0
  13. xinference/model/llm/llm_family.json +319 -6
  14. xinference/model/llm/lmdeploy/core.py +2 -0
  15. xinference/model/llm/sglang/core.py +2 -0
  16. xinference/model/llm/transformers/core.py +22 -36
  17. xinference/model/llm/transformers/multimodal/qwen-omni.py +60 -11
  18. xinference/model/llm/transformers/multimodal/qwen2_vl.py +2 -2
  19. xinference/model/llm/transformers/utils.py +0 -20
  20. xinference/model/llm/vllm/core.py +2 -0
  21. xinference/model/rerank/model_spec.json +368 -252
  22. xinference/model/rerank/sentence_transformers/core.py +10 -2
  23. xinference/thirdparty/indextts/gpt/transformers_generation_utils.py +71 -5
  24. xinference/thirdparty/indextts/gpt/transformers_gpt2.py +51 -1
  25. xinference/ui/gradio/media_interface.py +469 -4
  26. xinference/ui/gradio/utils/__init__.py +19 -0
  27. xinference/ui/gradio/utils/latex.py +342 -0
  28. xinference/ui/web/ui/build/asset-manifest.json +3 -3
  29. xinference/ui/web/ui/build/index.html +1 -1
  30. xinference/ui/web/ui/build/static/js/{main.45e78536.js → main.87d6859b.js} +3 -3
  31. xinference/ui/web/ui/build/static/js/main.87d6859b.js.map +1 -0
  32. xinference/ui/web/ui/node_modules/.cache/babel-loader/412a6b414a8267c7a349d9beda4593cdf218abf32edaaf339e6a230df40397b8.json +1 -0
  33. xinference/ui/web/ui/node_modules/.cache/babel-loader/e6770a05771952175c9fbf48fce283c9bb1bc8b5763e39edc36d099d1fe16b4a.json +1 -0
  34. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/METADATA +11 -11
  35. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/RECORD +40 -37
  36. xinference/ui/web/ui/build/static/js/main.45e78536.js.map +0 -1
  37. xinference/ui/web/ui/node_modules/.cache/babel-loader/7275b67c78ec76ce38a686bb8a576d8c9cecf54e1573614c84859d538efb9be5.json +0 -1
  38. xinference/ui/web/ui/node_modules/.cache/babel-loader/bb4e8722d2d41d87f1fce3661bc8937bffe9448e231fc5f0462630849e851592.json +0 -1
  39. /xinference/ui/web/ui/build/static/js/{main.45e78536.js.LICENSE.txt → main.87d6859b.js.LICENSE.txt} +0 -0
  40. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/WHEEL +0 -0
  41. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/entry_points.txt +0 -0
  42. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/licenses/LICENSE +0 -0
  43. {xinference-1.11.0.dist-info → xinference-1.12.0.dist-info}/top_level.txt +0 -0
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _defineProperty from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _objectWithoutProperties from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _asyncToGenerator from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/ui/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";var _excluded=[\"__isInitializing\"];import{ContentPasteGo,ExpandLess,ExpandMore,RocketLaunchOutlined,StopCircle,UndoOutlined}from'@mui/icons-material';import{Box,Button,Chip,CircularProgress,Collapse,Drawer,FormControl,FormControlLabel,InputLabel,ListItemButton,ListItemText,MenuItem,Radio,RadioGroup,Select,Switch,TextField,Tooltip}from'@mui/material';import React,{useContext,useEffect,useMemo,useRef,useState}from'react';import{useTranslation}from'react-i18next';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../../components/apiContext';import fetchWrapper from'../../../components/fetchWrapper';import TitleTypography from'../../../components/titleTypography';import{llmAllDataKey}from'../data/data';import CopyToCommandLine from'./commandBuilder';import DynamicFieldList from'./dynamicFieldList';import getModelFormConfig from'./modelFormConfig';import PasteDialog from'./pasteDialog';import Progress from'./progress';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var enginesWithNWorker=['SGLang','vLLM','MLX'];var modelEngineType=['LLM','embedding','rerank'];var SelectField=function SelectField(_ref){var label=_ref.label,labelId=_ref.labelId,name=_ref.name,value=_ref.value,onChange=_ref.onChange,_ref$options=_ref.options,options=_ref$options===void 0?[]:_ref$options,_ref$disabled=_ref.disabled,disabled=_ref$disabled===void 0?false:_ref$disabled,_ref$required=_ref.required,required=_ref$required===void 0?false:_ref$required;return/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",disabled:disabled,required:required,fullWidth:true,children:[/*#__PURE__*/_jsx(InputLabel,{id:labelId,children:label}),/*#__PURE__*/_jsx(Select,{labelId:labelId,name:name,value:value,onChange:onChange,label:label,className:\"textHighlight\",children:options.map(function(item){return/*#__PURE__*/_jsx(MenuItem,{value:item.value||item,children:item.label||item},item.value||item);})})]});};var LaunchModelDrawer=function LaunchModelDrawer(_ref2){var modelData=_ref2.modelData,modelType=_ref2.modelType,gpuAvailable=_ref2.gpuAvailable,open=_ref2.open,onClose=_ref2.onClose;var navigate=useNavigate();var _useTranslation=useTranslation(),t=_useTranslation.t;var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,isUpdatingModel=_useContext.isUpdatingModel,setErrorMsg=_useContext.setErrorMsg,setSuccessMsg=_useContext.setSuccessMsg,setIsCallingApi=_useContext.setIsCallingApi;var _useState=useState({}),_useState2=_slicedToArray(_useState,2),formData=_useState2[0],setFormData=_useState2[1];var _useState3=useState(false),_useState4=_slicedToArray(_useState3,2),hasHistory=_useState4[0],setHasHistory=_useState4[1];var _useState5=useState({}),_useState6=_slicedToArray(_useState5,2),enginesObj=_useState6[0],setEnginesObj=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),engineOptions=_useState8[0],setEngineOptions=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),formatOptions=_useState10[0],setFormatOptions=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),sizeOptions=_useState12[0],setSizeOptions=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),quantizationOptions=_useState14[0],setQuantizationOptions=_useState14[1];var _useState15=useState([]),_useState16=_slicedToArray(_useState15,2),multimodalProjectorOptions=_useState16[0],setMultimodalProjectorOptions=_useState16[1];var _useState17=useState([]),_useState18=_slicedToArray(_useState17,2),multimodalProjector=_useState18[0],setMultimodalProjector=_useState18[1];var _useState19=useState(false),_useState20=_slicedToArray(_useState19,2),isOpenPasteDialog=_useState20[0],setIsOpenPasteDialog=_useState20[1];var _useState21=useState({}),_useState22=_slicedToArray(_useState21,2),collapseState=_useState22[0],setCollapseState=_useState22[1];var _useState23=useState(false),_useState24=_slicedToArray(_useState23,2),isShowProgress=_useState24[0],setIsShowProgress=_useState24[1];var _useState25=useState(false),_useState26=_slicedToArray(_useState25,2),isShowCancel=_useState26[0],setIsShowCancel=_useState26[1];var _useState27=useState(false),_useState28=_slicedToArray(_useState27,2),isLoading=_useState28[0],setIsLoading=_useState28[1];var _useState29=useState(0),_useState30=_slicedToArray(_useState29,2),progress=_useState30[0],setProgress=_useState30[1];var _useState31=useState([]),_useState32=_slicedToArray(_useState31,2),checkDynamicFieldComplete=_useState32[0],setCheckDynamicFieldComplete=_useState32[1];var intervalRef=useRef(null);var downloadHubOptions=useMemo(function(){return['none'].concat(_toConsumableArray((modelData===null||modelData===void 0?void 0:modelData.download_hubs)||[]));},[modelData===null||modelData===void 0?void 0:modelData.download_hubs]);var isCached=function isCached(spec){if(Array.isArray(spec.cache_status)){return spec.cache_status.some(function(cs){return cs;});}else{return spec.cache_status===true;}};var convertModelSize=function convertModelSize(size){return size.toString().includes('_')?size:parseInt(size,10);};var range=function range(start,end){return new Array(end-start+1).fill(undefined).map(function(_,i){return i+start;});};var getNGPURange=function getNGPURange(modelType){if(['LLM','image'].includes(modelType)){return gpuAvailable>0?['auto','CPU'].concat(_toConsumableArray(range(1,gpuAvailable))):['auto','CPU'];}else{return gpuAvailable===0?['CPU']:['GPU','CPU'];}};var normalizeNGPU=function normalizeNGPU(value){if(!value)return null;if(value==='CPU')return null;if(value==='auto'||value==='GPU')return'auto';var num=parseInt(value,10);return isNaN(num)||num===0?null:num;};var handleValueType=function handleValueType(str){str=String(str);if(str.toLowerCase()==='none'){return null;}else if(str.toLowerCase()==='true'){return true;}else if(str.toLowerCase()==='false'){return false;}else if(str.includes(',')){return str.split(',');}else if(str.includes(',')){return str.split(',');}else if(Number(str)||str!==''&&Number(str)===0){return Number(str);}else{return str;}};var arrayToObject=function arrayToObject(arr){var transformValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(v){return v;};return Object.fromEntries(arr.map(function(_ref3){var key=_ref3.key,value=_ref3.value;return[key,transformValue(value)];}));};var handleGetHistory=function handleGetHistory(){var historyArr=JSON.parse(localStorage.getItem('historyArr'))||[];return historyArr.find(function(item){return item.model_name===modelData.model_name;});};var deleteHistory=function deleteHistory(){var arr=JSON.parse(localStorage.getItem('historyArr'));var newArr=arr.filter(function(item){return item.model_name!==modelData.model_name;});localStorage.setItem('historyArr',JSON.stringify(newArr));setHasHistory(false);setFormData({});setCollapseState({});};var objectToArray=function objectToArray(obj){if(!obj||typeof obj!=='object')return[];return Object.entries(obj).map(function(_ref4){var _ref5=_slicedToArray(_ref4,2),key=_ref5[0],value=_ref5[1];return{key:key,value:value};});};var restoreNGPU=function restoreNGPU(value){if(value===null)return'CPU';if(value==='auto'){return['LLM','image'].includes(modelType)?'auto':'GPU';}if(typeof value==='number')return String(value);return value||'CPU';};var restoreFormDataFormat=function restoreFormDataFormat(finalData){var result=_objectSpread({},finalData);var customData=[];for(var key in result){!llmAllDataKey.includes(key)&&customData.push({key:key,value:result[key]===null?'none':result[key]===false?false:result[key]});}if(customData.length)result.custom=customData;result.n_gpu=restoreNGPU(result.n_gpu);if(result!==null&&result!==void 0&&result.gpu_idx&&Array.isArray(result.gpu_idx)){result.gpu_idx=result.gpu_idx.join(',');}if(result!==null&&result!==void 0&&result.peft_model_config){var pmc=result.peft_model_config;if(pmc.image_lora_load_kwargs){result.image_lora_load_kwargs=objectToArray(pmc.image_lora_load_kwargs);}if(pmc.image_lora_fuse_kwargs){result.image_lora_fuse_kwargs=objectToArray(pmc.image_lora_fuse_kwargs);}if(pmc.lora_list){result.lora_list=pmc.lora_list;}delete result.peft_model_config;}if(result!==null&&result!==void 0&&result.envs&&typeof result.envs==='object'&&!Array.isArray(result.envs)){result.envs=objectToArray(result.envs);}if(result!==null&&result!==void 0&&result.quantization_config&&typeof result.quantization_config==='object'&&!Array.isArray(result.quantization_config)){result.quantization_config=objectToArray(result.quantization_config);}return result;};var getCollapseStateFromData=function getCollapseStateFromData(result){var _result$image_lora_lo,_result$image_lora_fu,_result$lora_list,_result$envs,_result$virtual_env_p,_result$virtual_env_p2;var newState={};if(result.model_uid||result.request_limits||result.worker_ip||result.gpu_idx||result.download_hub||result.model_path){newState.nested_section_optional=true;}if((_result$image_lora_lo=result.image_lora_load_kwargs)!==null&&_result$image_lora_lo!==void 0&&_result$image_lora_lo.length||(_result$image_lora_fu=result.image_lora_fuse_kwargs)!==null&&_result$image_lora_fu!==void 0&&_result$image_lora_fu.length||(_result$lora_list=result.lora_list)!==null&&_result$lora_list!==void 0&&_result$lora_list.length){newState.nested_section_optional=true;newState.nested_section_lora=true;}if((_result$envs=result.envs)!==null&&_result$envs!==void 0&&_result$envs.length){newState.nested_section_optional=true;newState.nested_section_env=true;}if(((_result$virtual_env_p=(_result$virtual_env_p2=result.virtual_env_packages)===null||_result$virtual_env_p2===void 0?void 0:_result$virtual_env_p2.length)!==null&&_result$virtual_env_p!==void 0?_result$virtual_env_p:0)>0||result.enable_virtual_env!==undefined){newState.nested_section_optional=true;newState.nested_section_virtualEnv=true;}return newState;};var handleCommandLine=function handleCommandLine(data){if(data.model_name===modelData.model_name){var restoredData=restoreFormDataFormat(data);setFormData(restoredData);var collapseFromData=getCollapseStateFromData(restoredData);setCollapseState(function(prev){return _objectSpread(_objectSpread({},prev),collapseFromData);});}else{setErrorMsg(t('launchModel.commandLineTip'));}};var fetchModelEngine=function fetchModelEngine(model_name,model_type){fetchWrapper.get(model_type==='LLM'?\"/v1/engines/\".concat(model_name):\"/v1/engines/\".concat(model_type,\"/\").concat(model_name)).then(function(data){setEnginesObj(data);setEngineOptions(Object.keys(data));}).catch(function(error){var _error$response;console.error('Error:',error);if((error===null||error===void 0?void 0:(_error$response=error.response)===null||_error$response===void 0?void 0:_error$response.status)!==403){setErrorMsg(error.message);}}).finally(function(){setIsCallingApi(false);});};var fetchCancelModel=/*#__PURE__*/function(){var _ref6=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var _error$response2;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return fetchWrapper.post(\"/v1/models/\".concat(modelData.model_name,\"/cancel\"));case 3:setIsLoading(true);_context.next=10;break;case 6:_context.prev=6;_context.t0=_context[\"catch\"](0);console.error('Error:',_context.t0);if((_context.t0===null||_context.t0===void 0?void 0:(_error$response2=_context.t0.response)===null||_error$response2===void 0?void 0:_error$response2.status)!==403){setErrorMsg(_context.t0.message);}case 10:_context.prev=10;setProgress(0);stopPolling();setIsShowProgress(false);setIsShowCancel(false);return _context.finish(10);case 16:case\"end\":return _context.stop();}},_callee,null,[[0,6,10,16]]);}));return function fetchCancelModel(){return _ref6.apply(this,arguments);};}();var fetchProgress=/*#__PURE__*/function(){var _ref7=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var res,_error$response3;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=3;return fetchWrapper.get(\"/v1/models/\".concat(modelData.model_name,\"/progress\"));case 3:res=_context2.sent;if(res.progress!==1.0)setProgress(Number(res.progress));_context2.next=11;break;case 7:_context2.prev=7;_context2.t0=_context2[\"catch\"](0);console.error('Error:',_context2.t0);if((_context2.t0===null||_context2.t0===void 0?void 0:(_error$response3=_context2.t0.response)===null||_error$response3===void 0?void 0:_error$response3.status)!==403){setErrorMsg(_context2.t0.message);}case 11:_context2.prev=11;stopPolling();setIsCallingApi(false);return _context2.finish(11);case 15:case\"end\":return _context2.stop();}},_callee2,null,[[0,7,11,15]]);}));return function fetchProgress(){return _ref7.apply(this,arguments);};}();var startPolling=function startPolling(){if(intervalRef.current)return;intervalRef.current=setInterval(fetchProgress,500);};var stopPolling=function stopPolling(){if(intervalRef.current!==null){clearInterval(intervalRef.current);intervalRef.current=null;}};useEffect(function(){var data=handleGetHistory();if(data){setHasHistory(true);var restoredData=restoreFormDataFormat(data);setFormData(modelEngineType.includes(modelType)?_objectSpread(_objectSpread({},restoredData),{},{__isInitializing:true}):restoredData);var collapseFromData=getCollapseStateFromData(restoredData);setCollapseState(function(prev){return _objectSpread(_objectSpread({},prev),collapseFromData);});}},[]);useEffect(function(){if(modelEngineType.includes(modelType))fetchModelEngine(modelData.model_name,modelType);},[modelData.model_name,modelType]);useEffect(function(){if(formData.__isInitializing){setFormData(function(prev){var __isInitializing=prev.__isInitializing,rest=_objectWithoutProperties(prev,_excluded);console.log('__isInitializing',__isInitializing);return rest;});return;}if(formData.model_engine&&modelEngineType.includes(modelType)){var _enginesObj$formData$;var format=_toConsumableArray(new Set((_enginesObj$formData$=enginesObj[formData.model_engine])===null||_enginesObj$formData$===void 0?void 0:_enginesObj$formData$.map(function(item){return item.model_format;})));setFormatOptions(format);if(!format.includes(formData.model_format)){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},{model_format:''});});}if(format.length===1){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},{model_format:format[0]});});}}},[formData.model_engine,enginesObj]);useEffect(function(){var _enginesObj$formData$2,_enginesObj$formData$3;if(formData.__isInitializing)return;if(!formData.model_engine||!formData.model_format)return;var configMap={LLM:{field:'model_size_in_billions',optionSetter:setSizeOptions,extractor:function extractor(item){return item.model_size_in_billions;}},embedding:{field:'quantization',optionSetter:setQuantizationOptions,extractor:function extractor(item){return item.quantization;}},rerank:{field:'quantization',optionSetter:setQuantizationOptions,extractor:function extractor(item){return item.quantization;}}};var config=configMap[modelType];if(!config)return;var options=_toConsumableArray(new Set((_enginesObj$formData$2=enginesObj[formData.model_engine])===null||_enginesObj$formData$2===void 0?void 0:(_enginesObj$formData$3=_enginesObj$formData$2.filter(function(item){return item.model_format===formData.model_format;}))===null||_enginesObj$formData$3===void 0?void 0:_enginesObj$formData$3.map(config.extractor)));config.optionSetter(options);if(!options.includes(formData[config.field])){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},_defineProperty({},config.field,''));});}if(options.length===1){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},_defineProperty({},config.field,options[0]));});}},[formData.model_engine,formData.model_format,enginesObj]);useEffect(function(){if(formData.__isInitializing)return;if(formData.model_engine&&formData.model_format&&formData.model_size_in_billions){var _enginesObj$formData$4,_enginesObj$formData$5;var quants=_toConsumableArray(new Set((_enginesObj$formData$4=enginesObj[formData.model_engine])===null||_enginesObj$formData$4===void 0?void 0:_enginesObj$formData$4.filter(function(item){return item.model_format===formData.model_format&&item.model_size_in_billions===convertModelSize(formData.model_size_in_billions);}).flatMap(function(item){return item.quantizations;})));var multimodal_projectors=_toConsumableArray(new Set((_enginesObj$formData$5=enginesObj[formData.model_engine])===null||_enginesObj$formData$5===void 0?void 0:_enginesObj$formData$5.filter(function(item){return item.model_format===formData.model_format&&item.model_size_in_billions===convertModelSize(formData.model_size_in_billions);}).flatMap(function(item){return item.multimodal_projectors||[];})));setQuantizationOptions(quants);setMultimodalProjectorOptions(multimodal_projectors||[]);if(!quants.includes(formData.quantization)){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},{quantization:''});});}if(quants.length===1){setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},{quantization:quants[0]});});}if(!multimodal_projectors.includes(multimodalProjector)){setMultimodalProjector('');}if(multimodal_projectors.length>0&&!multimodalProjector){setMultimodalProjector(multimodal_projectors[0]);}}},[formData.model_engine,formData.model_format,formData.model_size_in_billions,enginesObj]);var engineItems=useMemo(function(){return engineOptions.map(function(engine){var _enginesObj$engine;var modelFormats=Array.from(new Set((_enginesObj$engine=enginesObj[engine])===null||_enginesObj$engine===void 0?void 0:_enginesObj$engine.map(function(item){return item.model_format;})));var relevantSpecs=modelData.model_specs.filter(function(spec){return modelFormats.includes(spec.model_format);});var cached=relevantSpecs.some(function(spec){return isCached(spec);});return{value:engine,label:cached?\"\".concat(engine,\" \").concat(t('launchModel.cached')):engine};});},[engineOptions,enginesObj,modelData]);var formatItems=useMemo(function(){return formatOptions.map(function(format){var specs=modelData.model_specs.filter(function(spec){return spec.model_format===format;});var cached=specs.some(function(spec){return isCached(spec);});return{value:format,label:cached?\"\".concat(format,\" \").concat(t('launchModel.cached')):format};});},[formatOptions,modelData]);var sizeItems=useMemo(function(){return sizeOptions.map(function(size){var specs=modelData.model_specs.filter(function(spec){return spec.model_format===formData.model_format;}).filter(function(spec){return spec.model_size_in_billions===size;});var cached=specs.some(function(spec){return isCached(spec);});return{value:size,label:cached?\"\".concat(size,\" \").concat(t('launchModel.cached')):size};});},[sizeOptions,modelData]);var quantizationItems=useMemo(function(){return quantizationOptions.map(function(quant){var specs=modelData.model_specs.filter(function(spec){return spec.model_format===formData.model_format;}).filter(function(spec){return modelType==='LLM'?spec.model_size_in_billions===convertModelSize(formData.model_size_in_billions):true;});var spec=specs.find(function(s){return s.quantizations===quant;});var cached=Array.isArray(spec===null||spec===void 0?void 0:spec.cache_status)?spec===null||spec===void 0?void 0:spec.cache_status[spec===null||spec===void 0?void 0:spec.quantizations.indexOf(quant)]:spec===null||spec===void 0?void 0:spec.cache_status;return{value:quant,label:cached?\"\".concat(quant,\" \").concat(t('launchModel.cached')):quant};});},[quantizationOptions,modelData]);var checkRequiredFields=function checkRequiredFields(fields,data){return fields.every(function(field){if(field.type==='collapse'&&field.children){return checkRequiredFields(field.children,data);}if(field.visible&&field.required){var value=data[field.name];return value!==undefined&&value!==null&&String(value).trim()!=='';}return true;});};var isDynamicFieldComplete=function isDynamicFieldComplete(val){if(!val)return false;if(Array.isArray(val)&&typeof val[0]==='string'){return val.every(function(item){return item===null||item===void 0?void 0:item.trim();});}if(Array.isArray(val)&&typeof val[0]==='object'){return val.every(function(obj){return Object.values(obj).every(function(v){return typeof v!=='string'||v.trim();});});}return true;};var handleDynamicField=function handleDynamicField(name,val){setCheckDynamicFieldComplete(function(prev){var filtered=prev.filter(function(item){return item.name!==name;});return[].concat(_toConsumableArray(filtered),[{name:name,isComplete:isDynamicFieldComplete(val)}]);});setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},_defineProperty({},name,val));});};var handleChange=function handleChange(e){var _e$target=e.target,name=_e$target.name,value=_e$target.value,type=_e$target.type,checked=_e$target.checked;setFormData(function(prev){return _objectSpread(_objectSpread({},prev),{},_defineProperty({},name,type==='checkbox'?checked:value));});};var handleGPUIdx=function handleGPUIdx(data){var arr=[];data===null||data===void 0?void 0:data.split(',').forEach(function(item){arr.push(Number(item));});return arr;};var processFieldsRecursively=function processFieldsRecursively(fields,result){fields.forEach(function(field){if(result[field.name]===undefined&&field.default!==undefined){result[field.name]=field.default;}if((result[field.name]||result[field.name]===0)&&field.type==='number'&&typeof result[field.name]!=='number'){result[field.name]=parseInt(result[field.name],10);}if(field.name==='gpu_idx'&&result[field.name]){result[field.name]=handleGPUIdx(result[field.name]);}if(field.visible===false||result[field.name]===''||result[field.name]==null){delete result[field.name];}if(field.type==='dynamicField'&&Array.isArray(result[field.name])){result[field.name]=result[field.name].filter(function(item){if(typeof item==='string'){return item.trim()!=='';}else if(typeof item==='object'&&item!==null){return Object.values(item).every(function(val){if(typeof val==='string'){return val.trim()!=='';}return val!==undefined&&val!==null;});}return false;});if(result[field.name].length===0){delete result[field.name];}}if(field.type==='collapse'&&Array.isArray(field.children)){processFieldsRecursively(field.children,result);}});};var getFinalFormData=function getFinalFormData(){var _result$lora_list2,_result$envs2,_result$quantization_,_result$custom;var fields=modelFormConfig[modelType]||[];var result=_objectSpread({model_name:modelData.model_name,model_type:modelType},formData);processFieldsRecursively(fields,result);if(result.n_gpu){result.n_gpu=normalizeNGPU(result.n_gpu);}if(result.n_gpu_layers<0){delete result.n_gpu_layers;}if(result.download_hub==='none'){delete result.download_hub;}if(result.gguf_quantization==='none'){delete result.gguf_quantization;}var peft_model_config={};['image_lora_load_kwargs','image_lora_fuse_kwargs'].forEach(function(key){var _result$key;if((_result$key=result[key])!==null&&_result$key!==void 0&&_result$key.length){peft_model_config[key]=arrayToObject(result[key],handleValueType);delete result[key];}});if((_result$lora_list2=result.lora_list)!==null&&_result$lora_list2!==void 0&&_result$lora_list2.length){peft_model_config.lora_list=result.lora_list;delete result.lora_list;}if(Object.keys(peft_model_config).length){result.peft_model_config=peft_model_config;}if(result.enable_virtual_env==='unset'){delete result.enable_virtual_env;}else if(result.enable_virtual_env==='true'){result.enable_virtual_env=true;}else if(result.enable_virtual_env==='false'){result.enable_virtual_env=false;}if((_result$envs2=result.envs)!==null&&_result$envs2!==void 0&&_result$envs2.length){result.envs=arrayToObject(result.envs);}if((_result$quantization_=result.quantization_config)!==null&&_result$quantization_!==void 0&&_result$quantization_.length){result.quantization_config=arrayToObject(result.quantization_config,handleValueType);}for(var key in result){if(![].concat(_toConsumableArray(llmAllDataKey),['custom']).includes(key)){delete result[key];}}if((_result$custom=result.custom)!==null&&_result$custom!==void 0&&_result$custom.length){Object.assign(result,arrayToObject(result.custom,handleValueType));delete result.custom;}return result;};var handleSubmit=function handleSubmit(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);setProgress(0);setIsShowProgress(true);setIsShowCancel(true);try{var data=getFinalFormData();// First fetcher request to initiate the model\nfetchWrapper.post('/v1/models',data).then(function(){navigate(\"/running_models/\".concat(modelType));sessionStorage.setItem('runningModelType',\"/running_models/\".concat(modelType));var historyArr=JSON.parse(localStorage.getItem('historyArr'))||[];var historyModelNameArr=historyArr.map(function(item){return item.model_name;});if(historyModelNameArr.includes(data.model_name)){historyArr=historyArr.map(function(item){if(item.model_name===data.model_name){return data;}return item;});}else{historyArr.push(data);}localStorage.setItem('historyArr',JSON.stringify(historyArr));}).catch(function(error){var _error$response4,_error$response5;console.error('Error:',error);if(((_error$response4=error.response)===null||_error$response4===void 0?void 0:_error$response4.status)===499){setSuccessMsg(t('launchModel.cancelledSuccessfully'));}else if(((_error$response5=error.response)===null||_error$response5===void 0?void 0:_error$response5.status)!==403){setErrorMsg(error.message);}}).finally(function(){setIsCallingApi(false);stopPolling();setIsShowProgress(false);setIsShowCancel(false);setIsLoading(false);});startPolling();}catch(error){setErrorMsg(\"\".concat(error));setIsCallingApi(false);}};var modelFormConfig=getModelFormConfig({t:t,formData:formData,modelData:modelData,gpuAvailable:gpuAvailable,engineItems:engineItems,formatItems:formatItems,sizeItems:sizeItems,quantizationItems:quantizationItems,getNGPURange:getNGPURange,downloadHubOptions:downloadHubOptions,enginesWithNWorker:enginesWithNWorker,multimodalProjectorOptions:multimodalProjectorOptions});var areRequiredFieldsFilled=useMemo(function(){var data=getFinalFormData();var fields=modelFormConfig[modelType]||[];return checkRequiredFields(fields,data);},[formData,modelType]);var renderFormFields=function renderFormFields(){var fields=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var enhancedFields=fields.map(function(field){if(field.name==='reasoning_content'){var _modelData$model_abil,_ref8,_ref9,_formData$enable_thin;var enable_thinking_default=fields.find(function(item){return item.name==='enable_thinking';}).default;return _objectSpread(_objectSpread({},field),{},{visible:!!((_modelData$model_abil=modelData.model_ability)!==null&&_modelData$model_abil!==void 0&&_modelData$model_abil.includes('reasoning'))&&((_ref8=(_ref9=(_formData$enable_thin=formData.enable_thinking)!==null&&_formData$enable_thin!==void 0?_formData$enable_thin:enable_thinking_default)!==null&&_ref9!==void 0?_ref9:field.default)!==null&&_ref8!==void 0?_ref8:false)});}if(field.name==='gpu_idx'&&field.visible!==true){var n_gpu_default=fields.find(function(item){return item.name==='n_gpu';}).default;return _objectSpread(_objectSpread({},field),{},{visible:formData.n_gpu==='GPU'||(formData.n_gpu===undefined||formData.n_gpu===null||formData.n_gpu==='')&&n_gpu_default==='GPU'});}return field;});return enhancedFields.filter(function(field){return field.visible;}).map(function(field){var _ref10,_formData$field$name,_ref11,_formData$field$name2,_ref12,_formData$field$name3,_ref13,_formData$field$name4,_ref14,_ref15,_formData$field$name5,_field$options,_field$options$;var fieldKey=field.name;switch(field.type){case'collapse':{var _collapseState$fieldK;var _open=(_collapseState$fieldK=collapseState[fieldKey])!==null&&_collapseState$fieldK!==void 0?_collapseState$fieldK:false;var toggleCollapse=function toggleCollapse(){setCollapseState(function(prev){return _objectSpread(_objectSpread({},prev),{},_defineProperty({},fieldKey,!prev[fieldKey]));});};return/*#__PURE__*/_jsxs(Box,{sx:{mt:2},children:[/*#__PURE__*/_jsx(ListItemButton,{onClick:toggleCollapse,children:/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',gap:10},children:[/*#__PURE__*/_jsx(ListItemText,{primary:field.label}),_open?/*#__PURE__*/_jsx(ExpandLess,{}):/*#__PURE__*/_jsx(ExpandMore,{})]})}),/*#__PURE__*/_jsx(Collapse,{in:_open,timeout:\"auto\",unmountOnExit:true,children:/*#__PURE__*/_jsx(Box,{sx:{pl:2},children:renderFormFields(field.children||[])})})]},fieldKey);}case'select':return/*#__PURE__*/_jsx(SelectField,{label:field.label,labelId:\"\".concat(field.name,\"-label\"),name:field.name,disabled:field.disabled,value:(_ref10=(_formData$field$name=formData[field.name])!==null&&_formData$field$name!==void 0?_formData$field$name:field.default)!==null&&_ref10!==void 0?_ref10:'',onChange:handleChange,options:field.options,required:field.required},fieldKey);case'number':return/*#__PURE__*/_jsx(TextField,{name:field.name,label:field.label,type:\"number\",disabled:field.disabled,InputProps:field.inputProps,value:(_ref11=(_formData$field$name2=formData[field.name])!==null&&_formData$field$name2!==void 0?_formData$field$name2:field.default)!==null&&_ref11!==void 0?_ref11:'',onChange:handleChange,required:field.required,error:field.error,helperText:field.error&&field.helperText,fullWidth:true,margin:\"normal\",className:\"textHighlight\"},fieldKey);case'input':return/*#__PURE__*/_jsx(TextField,{name:field.name,label:field.label,disabled:field.disabled,InputProps:field.inputProps,value:(_ref12=(_formData$field$name3=formData[field.name])!==null&&_formData$field$name3!==void 0?_formData$field$name3:field.default)!==null&&_ref12!==void 0?_ref12:'',onChange:handleChange,required:field.required,error:field.error,helperText:field.error&&field.helperText,fullWidth:true,margin:\"normal\",className:\"textHighlight\"},fieldKey);case'switch':return/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Tooltip,{title:field.tip,placement:\"top\",children:/*#__PURE__*/_jsx(FormControlLabel,{name:field.name,label:field.label,labelPlacement:\"start\",control:/*#__PURE__*/_jsx(Switch,{checked:(_ref13=(_formData$field$name4=formData[field.name])!==null&&_formData$field$name4!==void 0?_formData$field$name4:field.default)!==null&&_ref13!==void 0?_ref13:false}),onChange:handleChange,required:field.required})})},fieldKey);case'radio':return/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',gap:10,marginLeft:15},children:[/*#__PURE__*/_jsx(\"span\",{children:field.label}),/*#__PURE__*/_jsx(RadioGroup,{row:true,name:field.name,value:(_ref14=(_ref15=(_formData$field$name5=formData[field.name])!==null&&_formData$field$name5!==void 0?_formData$field$name5:field.default)!==null&&_ref15!==void 0?_ref15:(_field$options=field.options)===null||_field$options===void 0?void 0:(_field$options$=_field$options[0])===null||_field$options$===void 0?void 0:_field$options$.value)!==null&&_ref14!==void 0?_ref14:'',onChange:handleChange,children:field.options.map(function(item){return/*#__PURE__*/_jsx(FormControlLabel,{value:item.value,control:/*#__PURE__*/_jsx(Radio,{}),label:item.label},item.label);})})]},fieldKey);case'dynamicField':return/*#__PURE__*/_jsx(DynamicFieldList,{name:field.name,label:field.label,mode:field.mode,keyPlaceholder:field.keyPlaceholder,valuePlaceholder:field.valuePlaceholder,value:formData[field.name],onChange:handleDynamicField,keyOptions:field.keyOptions},fieldKey);default:return null;}});};var renderButtonContent=function renderButtonContent(){if(isShowCancel){return/*#__PURE__*/_jsx(StopCircle,{sx:{fontSize:26}});}if(isLoading){return/*#__PURE__*/_jsx(CircularProgress,{size:26});}return/*#__PURE__*/_jsx(RocketLaunchOutlined,{sx:{fontSize:26}});};return/*#__PURE__*/_jsx(Drawer,{open:open,onClose:onClose,anchor:\"right\",children:/*#__PURE__*/_jsxs(Box,{className:\"drawerCard\",children:[/*#__PURE__*/_jsxs(Box,{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",children:[/*#__PURE__*/_jsxs(Box,{display:\"flex\",alignItems:\"center\",children:[/*#__PURE__*/_jsx(TitleTypography,{value:modelData.model_name}),hasHistory&&/*#__PURE__*/_jsx(Chip,{label:t('launchModel.lastConfig'),variant:\"outlined\",size:\"small\",color:\"primary\",onDelete:deleteHistory})]}),/*#__PURE__*/_jsxs(Box,{display:\"flex\",alignItems:\"center\",gap:1,children:[/*#__PURE__*/_jsx(Tooltip,{title:t('launchModel.commandLineParsing'),placement:\"top\",children:/*#__PURE__*/_jsx(ContentPasteGo,{className:\"pasteText\",onClick:function onClick(){return setIsOpenPasteDialog(true);}})}),areRequiredFieldsFilled&&/*#__PURE__*/_jsx(CopyToCommandLine,{getData:getFinalFormData,predefinedKeys:llmAllDataKey})]})]}),/*#__PURE__*/_jsxs(Box,{sx:{flex:1,display:'flex',flexDirection:'column',justifyContent:'space-between'},component:\"form\",onSubmit:handleSubmit,children:[/*#__PURE__*/_jsx(Box,{children:renderFormFields(modelFormConfig[modelType])}),/*#__PURE__*/_jsxs(Box,{marginTop:4,children:[/*#__PURE__*/_jsx(Box,{height:16,children:isShowProgress&&/*#__PURE__*/_jsx(Progress,{style:{marginBottom:20},progress:progress})}),/*#__PURE__*/_jsxs(Box,{display:\"flex\",gap:2,children:[/*#__PURE__*/_jsx(Button,{style:{flex:1},variant:\"outlined\",color:\"primary\",title:t(isShowCancel?'launchModel.cancel':'launchModel.launch'),disabled:!areRequiredFieldsFilled||isLoading||isCallingApi||checkDynamicFieldComplete.some(function(item){return!item.isComplete;}),onClick:function onClick(){if(isShowCancel){fetchCancelModel();}else{handleSubmit();}},children:renderButtonContent()}),/*#__PURE__*/_jsx(Button,{style:{flex:1},variant:\"outlined\",color:\"primary\",onClick:onClose,title:t('launchModel.goBack'),children:/*#__PURE__*/_jsx(UndoOutlined,{sx:{fontSize:26}})})]})]})]}),/*#__PURE__*/_jsx(PasteDialog,{open:isOpenPasteDialog,onHandleClose:function onHandleClose(){return setIsOpenPasteDialog(false);},onHandleCommandLine:handleCommandLine})]})});};export default LaunchModelDrawer;","map":{"version":3,"names":["ContentPasteGo","ExpandLess","ExpandMore","RocketLaunchOutlined","StopCircle","UndoOutlined","Box","Button","Chip","CircularProgress","Collapse","Drawer","FormControl","FormControlLabel","InputLabel","ListItemButton","ListItemText","MenuItem","Radio","RadioGroup","Select","Switch","TextField","Tooltip","React","useContext","useEffect","useMemo","useRef","useState","useTranslation","useNavigate","ApiContext","fetchWrapper","TitleTypography","llmAllDataKey","CopyToCommandLine","DynamicFieldList","getModelFormConfig","PasteDialog","Progress","jsx","_jsx","jsxs","_jsxs","enginesWithNWorker","modelEngineType","SelectField","_ref","label","labelId","name","value","onChange","_ref$options","options","_ref$disabled","disabled","_ref$required","required","variant","margin","fullWidth","children","id","className","map","item","LaunchModelDrawer","_ref2","modelData","modelType","gpuAvailable","open","onClose","navigate","_useTranslation","t","_useContext","isCallingApi","isUpdatingModel","setErrorMsg","setSuccessMsg","setIsCallingApi","_useState","_useState2","_slicedToArray","formData","setFormData","_useState3","_useState4","hasHistory","setHasHistory","_useState5","_useState6","enginesObj","setEnginesObj","_useState7","_useState8","engineOptions","setEngineOptions","_useState9","_useState10","formatOptions","setFormatOptions","_useState11","_useState12","sizeOptions","setSizeOptions","_useState13","_useState14","quantizationOptions","setQuantizationOptions","_useState15","_useState16","multimodalProjectorOptions","setMultimodalProjectorOptions","_useState17","_useState18","multimodalProjector","setMultimodalProjector","_useState19","_useState20","isOpenPasteDialog","setIsOpenPasteDialog","_useState21","_useState22","collapseState","setCollapseState","_useState23","_useState24","isShowProgress","setIsShowProgress","_useState25","_useState26","isShowCancel","setIsShowCancel","_useState27","_useState28","isLoading","setIsLoading","_useState29","_useState30","progress","setProgress","_useState31","_useState32","checkDynamicFieldComplete","setCheckDynamicFieldComplete","intervalRef","downloadHubOptions","concat","_toConsumableArray","download_hubs","isCached","spec","Array","isArray","cache_status","some","cs","convertModelSize","size","toString","includes","parseInt","range","start","end","fill","undefined","_","i","getNGPURange","normalizeNGPU","num","isNaN","handleValueType","str","String","toLowerCase","split","Number","arrayToObject","arr","transformValue","arguments","length","v","Object","fromEntries","_ref3","key","handleGetHistory","historyArr","JSON","parse","localStorage","getItem","find","model_name","deleteHistory","newArr","filter","setItem","stringify","objectToArray","obj","entries","_ref4","_ref5","restoreNGPU","restoreFormDataFormat","finalData","result","_objectSpread","customData","push","custom","n_gpu","gpu_idx","join","peft_model_config","pmc","image_lora_load_kwargs","image_lora_fuse_kwargs","lora_list","envs","quantization_config","getCollapseStateFromData","_result$image_lora_lo","_result$image_lora_fu","_result$lora_list","_result$envs","_result$virtual_env_p","_result$virtual_env_p2","newState","model_uid","request_limits","worker_ip","download_hub","model_path","nested_section_optional","nested_section_lora","nested_section_env","virtual_env_packages","enable_virtual_env","nested_section_virtualEnv","handleCommandLine","data","restoredData","collapseFromData","prev","fetchModelEngine","model_type","get","then","keys","catch","error","_error$response","console","response","status","message","finally","fetchCancelModel","_ref6","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_error$response2","wrap","_callee$","_context","next","post","t0","stopPolling","finish","stop","apply","fetchProgress","_ref7","_callee2","res","_error$response3","_callee2$","_context2","sent","startPolling","current","setInterval","clearInterval","__isInitializing","rest","_objectWithoutProperties","_excluded","log","model_engine","_enginesObj$formData$","format","Set","model_format","_enginesObj$formData$2","_enginesObj$formData$3","configMap","LLM","field","optionSetter","extractor","model_size_in_billions","embedding","quantization","rerank","config","_defineProperty","_enginesObj$formData$4","_enginesObj$formData$5","quants","flatMap","quantizations","multimodal_projectors","engineItems","engine","_enginesObj$engine","modelFormats","from","relevantSpecs","model_specs","cached","formatItems","specs","sizeItems","quantizationItems","quant","s","indexOf","checkRequiredFields","fields","every","type","visible","trim","isDynamicFieldComplete","val","values","handleDynamicField","filtered","isComplete","handleChange","e","_e$target","target","checked","handleGPUIdx","forEach","processFieldsRecursively","default","getFinalFormData","_result$lora_list2","_result$envs2","_result$quantization_","_result$custom","modelFormConfig","n_gpu_layers","gguf_quantization","_result$key","assign","handleSubmit","sessionStorage","historyModelNameArr","_error$response4","_error$response5","areRequiredFieldsFilled","renderFormFields","enhancedFields","_modelData$model_abil","_ref8","_ref9","_formData$enable_thin","enable_thinking_default","model_ability","enable_thinking","n_gpu_default","_ref10","_formData$field$name","_ref11","_formData$field$name2","_ref12","_formData$field$name3","_ref13","_formData$field$name4","_ref14","_ref15","_formData$field$name5","_field$options","_field$options$","fieldKey","_collapseState$fieldK","toggleCollapse","sx","mt","onClick","style","display","alignItems","gap","primary","in","timeout","unmountOnExit","pl","InputProps","inputProps","helperText","title","tip","placement","labelPlacement","control","marginLeft","row","mode","keyPlaceholder","valuePlaceholder","keyOptions","renderButtonContent","fontSize","anchor","justifyContent","color","onDelete","getData","predefinedKeys","flex","flexDirection","component","onSubmit","marginTop","height","marginBottom","onHandleClose","onHandleCommandLine"],"sources":["/home/runner/work/inference/inference/xinference/ui/web/ui/src/scenes/launch_model/components/launchModelDrawer.js"],"sourcesContent":["import {\n ContentPasteGo,\n ExpandLess,\n ExpandMore,\n RocketLaunchOutlined,\n StopCircle,\n UndoOutlined,\n} from '@mui/icons-material'\nimport {\n Box,\n Button,\n Chip,\n CircularProgress,\n Collapse,\n Drawer,\n FormControl,\n FormControlLabel,\n InputLabel,\n ListItemButton,\n ListItemText,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n Switch,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../../components/apiContext'\nimport fetchWrapper from '../../../components/fetchWrapper'\nimport TitleTypography from '../../../components/titleTypography'\nimport { llmAllDataKey } from '../data/data'\nimport CopyToCommandLine from './commandBuilder'\nimport DynamicFieldList from './dynamicFieldList'\nimport getModelFormConfig from './modelFormConfig'\nimport PasteDialog from './pasteDialog'\nimport Progress from './progress'\n\nconst enginesWithNWorker = ['SGLang', 'vLLM', 'MLX']\nconst modelEngineType = ['LLM', 'embedding', 'rerank']\n\nconst SelectField = ({\n label,\n labelId,\n name,\n value,\n onChange,\n options = [],\n disabled = false,\n required = false,\n}) => (\n <FormControl\n variant=\"outlined\"\n margin=\"normal\"\n disabled={disabled}\n required={required}\n fullWidth\n >\n <InputLabel id={labelId}>{label}</InputLabel>\n <Select\n labelId={labelId}\n name={name}\n value={value}\n onChange={onChange}\n label={label}\n className=\"textHighlight\"\n >\n {options.map((item) => (\n <MenuItem key={item.value || item} value={item.value || item}>\n {item.label || item}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n)\n\nconst LaunchModelDrawer = ({\n modelData,\n modelType,\n gpuAvailable,\n open,\n onClose,\n}) => {\n const navigate = useNavigate()\n const { t } = useTranslation()\n const {\n isCallingApi,\n isUpdatingModel,\n setErrorMsg,\n setSuccessMsg,\n setIsCallingApi,\n } = useContext(ApiContext)\n const [formData, setFormData] = useState({})\n const [hasHistory, setHasHistory] = useState(false)\n\n const [enginesObj, setEnginesObj] = useState({})\n const [engineOptions, setEngineOptions] = useState([])\n const [formatOptions, setFormatOptions] = useState([])\n const [sizeOptions, setSizeOptions] = useState([])\n const [quantizationOptions, setQuantizationOptions] = useState([])\n const [multimodalProjectorOptions, setMultimodalProjectorOptions] = useState(\n []\n )\n const [multimodalProjector, setMultimodalProjector] = useState([])\n const [isOpenPasteDialog, setIsOpenPasteDialog] = useState(false)\n const [collapseState, setCollapseState] = useState({})\n const [isShowProgress, setIsShowProgress] = useState(false)\n const [isShowCancel, setIsShowCancel] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [progress, setProgress] = useState(0)\n const [checkDynamicFieldComplete, setCheckDynamicFieldComplete] = useState([])\n\n const intervalRef = useRef(null)\n\n const downloadHubOptions = useMemo(\n () => ['none', ...(modelData?.download_hubs || [])],\n [modelData?.download_hubs]\n )\n\n const isCached = (spec) => {\n if (Array.isArray(spec.cache_status)) {\n return spec.cache_status.some((cs) => cs)\n } else {\n return spec.cache_status === true\n }\n }\n\n const convertModelSize = (size) => {\n return size.toString().includes('_') ? size : parseInt(size, 10)\n }\n\n const range = (start, end) => {\n return new Array(end - start + 1).fill(undefined).map((_, i) => i + start)\n }\n\n const getNGPURange = (modelType) => {\n if (['LLM', 'image'].includes(modelType)) {\n return gpuAvailable > 0\n ? ['auto', 'CPU', ...range(1, gpuAvailable)]\n : ['auto', 'CPU']\n } else {\n return gpuAvailable === 0 ? ['CPU'] : ['GPU', 'CPU']\n }\n }\n\n const normalizeNGPU = (value) => {\n if (!value) return null\n\n if (value === 'CPU') return null\n if (value === 'auto' || value === 'GPU') return 'auto'\n\n const num = parseInt(value, 10)\n return isNaN(num) || num === 0 ? null : num\n }\n\n const handleValueType = (str) => {\n str = String(str)\n if (str.toLowerCase() === 'none') {\n return null\n } else if (str.toLowerCase() === 'true') {\n return true\n } else if (str.toLowerCase() === 'false') {\n return false\n } else if (str.includes(',')) {\n return str.split(',')\n } else if (str.includes(',')) {\n return str.split(',')\n } else if (Number(str) || (str !== '' && Number(str) === 0)) {\n return Number(str)\n } else {\n return str\n }\n }\n\n const arrayToObject = (arr, transformValue = (v) => v) =>\n Object.fromEntries(\n arr.map(({ key, value }) => [key, transformValue(value)])\n )\n\n const handleGetHistory = () => {\n const historyArr = JSON.parse(localStorage.getItem('historyArr')) || []\n return historyArr.find((item) => item.model_name === modelData.model_name)\n }\n\n const deleteHistory = () => {\n const arr = JSON.parse(localStorage.getItem('historyArr'))\n const newArr = arr.filter(\n (item) => item.model_name !== modelData.model_name\n )\n localStorage.setItem('historyArr', JSON.stringify(newArr))\n setHasHistory(false)\n setFormData({})\n setCollapseState({})\n }\n\n const objectToArray = (obj) => {\n if (!obj || typeof obj !== 'object') return []\n return Object.entries(obj).map(([key, value]) => ({ key, value }))\n }\n\n const restoreNGPU = (value) => {\n if (value === null) return 'CPU'\n if (value === 'auto') {\n return ['LLM', 'image'].includes(modelType) ? 'auto' : 'GPU'\n }\n if (typeof value === 'number') return String(value)\n return value || 'CPU'\n }\n\n const restoreFormDataFormat = (finalData) => {\n const result = { ...finalData }\n\n let customData = []\n for (let key in result) {\n !llmAllDataKey.includes(key) &&\n customData.push({\n key: key,\n value:\n result[key] === null\n ? 'none'\n : result[key] === false\n ? false\n : result[key],\n })\n }\n if (customData.length) result.custom = customData\n\n result.n_gpu = restoreNGPU(result.n_gpu)\n if (result?.gpu_idx && Array.isArray(result.gpu_idx)) {\n result.gpu_idx = result.gpu_idx.join(',')\n }\n\n if (result?.peft_model_config) {\n const pmc = result.peft_model_config\n\n if (pmc.image_lora_load_kwargs) {\n result.image_lora_load_kwargs = objectToArray(\n pmc.image_lora_load_kwargs\n )\n }\n\n if (pmc.image_lora_fuse_kwargs) {\n result.image_lora_fuse_kwargs = objectToArray(\n pmc.image_lora_fuse_kwargs\n )\n }\n\n if (pmc.lora_list) {\n result.lora_list = pmc.lora_list\n }\n\n delete result.peft_model_config\n }\n\n if (\n result?.envs &&\n typeof result.envs === 'object' &&\n !Array.isArray(result.envs)\n ) {\n result.envs = objectToArray(result.envs)\n }\n\n if (\n result?.quantization_config &&\n typeof result.quantization_config === 'object' &&\n !Array.isArray(result.quantization_config)\n ) {\n result.quantization_config = objectToArray(result.quantization_config)\n }\n\n return result\n }\n\n const getCollapseStateFromData = (result) => {\n const newState = {}\n\n if (\n result.model_uid ||\n result.request_limits ||\n result.worker_ip ||\n result.gpu_idx ||\n result.download_hub ||\n result.model_path\n ) {\n newState.nested_section_optional = true\n }\n\n if (\n result.image_lora_load_kwargs?.length ||\n result.image_lora_fuse_kwargs?.length ||\n result.lora_list?.length\n ) {\n newState.nested_section_optional = true\n newState.nested_section_lora = true\n }\n\n if (result.envs?.length) {\n newState.nested_section_optional = true\n newState.nested_section_env = true\n }\n\n if (\n (result.virtual_env_packages?.length ?? 0) > 0 ||\n result.enable_virtual_env !== undefined\n ) {\n newState.nested_section_optional = true\n newState.nested_section_virtualEnv = true\n }\n\n return newState\n }\n\n const handleCommandLine = (data) => {\n if (data.model_name === modelData.model_name) {\n const restoredData = restoreFormDataFormat(data)\n setFormData(restoredData)\n\n const collapseFromData = getCollapseStateFromData(restoredData)\n setCollapseState((prev) => ({ ...prev, ...collapseFromData }))\n } else {\n setErrorMsg(t('launchModel.commandLineTip'))\n }\n }\n\n const fetchModelEngine = (model_name, model_type) => {\n fetchWrapper\n .get(\n model_type === 'LLM'\n ? `/v1/engines/${model_name}`\n : `/v1/engines/${model_type}/${model_name}`\n )\n .then((data) => {\n setEnginesObj(data)\n setEngineOptions(Object.keys(data))\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error?.response?.status !== 403) {\n setErrorMsg(error.message)\n }\n })\n .finally(() => {\n setIsCallingApi(false)\n })\n }\n\n const fetchCancelModel = async () => {\n try {\n await fetchWrapper.post(`/v1/models/${modelData.model_name}/cancel`)\n setIsLoading(true)\n } catch (error) {\n console.error('Error:', error)\n if (error?.response?.status !== 403) {\n setErrorMsg(error.message)\n }\n } finally {\n setProgress(0)\n stopPolling()\n setIsShowProgress(false)\n setIsShowCancel(false)\n }\n }\n\n const fetchProgress = async () => {\n try {\n const res = await fetchWrapper.get(\n `/v1/models/${modelData.model_name}/progress`\n )\n if (res.progress !== 1.0) setProgress(Number(res.progress))\n } catch (error) {\n console.error('Error:', error)\n if (error?.response?.status !== 403) {\n setErrorMsg(error.message)\n }\n } finally {\n stopPolling()\n setIsCallingApi(false)\n }\n }\n\n const startPolling = () => {\n if (intervalRef.current) return\n intervalRef.current = setInterval(fetchProgress, 500)\n }\n\n const stopPolling = () => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }\n\n useEffect(() => {\n const data = handleGetHistory()\n if (data) {\n setHasHistory(true)\n const restoredData = restoreFormDataFormat(data)\n setFormData(\n modelEngineType.includes(modelType)\n ? { ...restoredData, __isInitializing: true }\n : restoredData\n )\n const collapseFromData = getCollapseStateFromData(restoredData)\n setCollapseState((prev) => ({ ...prev, ...collapseFromData }))\n }\n }, [])\n\n useEffect(() => {\n if (modelEngineType.includes(modelType))\n fetchModelEngine(modelData.model_name, modelType)\n }, [modelData.model_name, modelType])\n\n useEffect(() => {\n if (formData.__isInitializing) {\n setFormData((prev) => {\n const { __isInitializing, ...rest } = prev\n console.log('__isInitializing', __isInitializing)\n return rest\n })\n return\n }\n\n if (formData.model_engine && modelEngineType.includes(modelType)) {\n const format = [\n ...new Set(\n enginesObj[formData.model_engine]?.map((item) => item.model_format)\n ),\n ]\n setFormatOptions(format)\n\n if (!format.includes(formData.model_format)) {\n setFormData((prev) => ({\n ...prev,\n model_format: '',\n }))\n }\n if (format.length === 1) {\n setFormData((prev) => ({\n ...prev,\n model_format: format[0],\n }))\n }\n }\n }, [formData.model_engine, enginesObj])\n\n useEffect(() => {\n if (formData.__isInitializing) return\n\n if (!formData.model_engine || !formData.model_format) return\n\n const configMap = {\n LLM: {\n field: 'model_size_in_billions',\n optionSetter: setSizeOptions,\n extractor: (item) => item.model_size_in_billions,\n },\n embedding: {\n field: 'quantization',\n optionSetter: setQuantizationOptions,\n extractor: (item) => item.quantization,\n },\n rerank: {\n field: 'quantization',\n optionSetter: setQuantizationOptions,\n extractor: (item) => item.quantization,\n },\n }\n\n const config = configMap[modelType]\n if (!config) return\n\n const options = [\n ...new Set(\n enginesObj[formData.model_engine]\n ?.filter((item) => item.model_format === formData.model_format)\n ?.map(config.extractor)\n ),\n ]\n\n config.optionSetter(options)\n if (!options.includes(formData[config.field])) {\n setFormData((prev) => ({ ...prev, [config.field]: '' }))\n }\n\n if (options.length === 1) {\n setFormData((prev) => ({ ...prev, [config.field]: options[0] }))\n }\n }, [formData.model_engine, formData.model_format, enginesObj])\n\n useEffect(() => {\n if (formData.__isInitializing) return\n if (\n formData.model_engine &&\n formData.model_format &&\n formData.model_size_in_billions\n ) {\n const quants = [\n ...new Set(\n enginesObj[formData.model_engine]\n ?.filter(\n (item) =>\n item.model_format === formData.model_format &&\n item.model_size_in_billions ===\n convertModelSize(formData.model_size_in_billions)\n )\n .flatMap((item) => item.quantizations)\n ),\n ]\n const multimodal_projectors = [\n ...new Set(\n enginesObj[formData.model_engine]\n ?.filter(\n (item) =>\n item.model_format === formData.model_format &&\n item.model_size_in_billions ===\n convertModelSize(formData.model_size_in_billions)\n )\n .flatMap((item) => item.multimodal_projectors || [])\n ),\n ]\n setQuantizationOptions(quants)\n setMultimodalProjectorOptions(multimodal_projectors || [])\n if (!quants.includes(formData.quantization)) {\n setFormData((prev) => ({\n ...prev,\n quantization: '',\n }))\n }\n if (quants.length === 1) {\n setFormData((prev) => ({\n ...prev,\n quantization: quants[0],\n }))\n }\n if (!multimodal_projectors.includes(multimodalProjector)) {\n setMultimodalProjector('')\n }\n if (multimodal_projectors.length > 0 && !multimodalProjector) {\n setMultimodalProjector(multimodal_projectors[0])\n }\n }\n }, [\n formData.model_engine,\n formData.model_format,\n formData.model_size_in_billions,\n enginesObj,\n ])\n\n const engineItems = useMemo(() => {\n return engineOptions.map((engine) => {\n const modelFormats = Array.from(\n new Set(enginesObj[engine]?.map((item) => item.model_format))\n )\n\n const relevantSpecs = modelData.model_specs.filter((spec) =>\n modelFormats.includes(spec.model_format)\n )\n\n const cached = relevantSpecs.some((spec) => isCached(spec))\n\n return {\n value: engine,\n label: cached ? `${engine} ${t('launchModel.cached')}` : engine,\n }\n })\n }, [engineOptions, enginesObj, modelData])\n\n const formatItems = useMemo(() => {\n return formatOptions.map((format) => {\n const specs = modelData.model_specs.filter(\n (spec) => spec.model_format === format\n )\n\n const cached = specs.some((spec) => isCached(spec))\n\n return {\n value: format,\n label: cached ? `${format} ${t('launchModel.cached')}` : format,\n }\n })\n }, [formatOptions, modelData])\n\n const sizeItems = useMemo(() => {\n return sizeOptions.map((size) => {\n const specs = modelData.model_specs\n .filter((spec) => spec.model_format === formData.model_format)\n .filter((spec) => spec.model_size_in_billions === size)\n const cached = specs.some((spec) => isCached(spec))\n\n return {\n value: size,\n label: cached ? `${size} ${t('launchModel.cached')}` : size,\n }\n })\n }, [sizeOptions, modelData])\n\n const quantizationItems = useMemo(() => {\n return quantizationOptions.map((quant) => {\n const specs = modelData.model_specs\n .filter((spec) => spec.model_format === formData.model_format)\n .filter((spec) =>\n modelType === 'LLM'\n ? spec.model_size_in_billions ===\n convertModelSize(formData.model_size_in_billions)\n : true\n )\n\n const spec = specs.find((s) => {\n return s.quantizations === quant\n })\n const cached = Array.isArray(spec?.cache_status)\n ? spec?.cache_status[spec?.quantizations.indexOf(quant)]\n : spec?.cache_status\n\n return {\n value: quant,\n label: cached ? `${quant} ${t('launchModel.cached')}` : quant,\n }\n })\n }, [quantizationOptions, modelData])\n\n const checkRequiredFields = (fields, data) => {\n return fields.every((field) => {\n if (field.type === 'collapse' && field.children) {\n return checkRequiredFields(field.children, data)\n }\n if (field.visible && field.required) {\n const value = data[field.name]\n return (\n value !== undefined && value !== null && String(value).trim() !== ''\n )\n }\n return true\n })\n }\n\n const isDynamicFieldComplete = (val) => {\n if (!val) return false\n if (Array.isArray(val) && typeof val[0] === 'string') {\n return val.every((item) => item?.trim())\n }\n if (Array.isArray(val) && typeof val[0] === 'object') {\n return val.every((obj) => {\n return Object.values(obj).every(\n (v) => typeof v !== 'string' || v.trim()\n )\n })\n }\n return true\n }\n\n const handleDynamicField = (name, val) => {\n setCheckDynamicFieldComplete((prev) => {\n const filtered = prev.filter((item) => item.name !== name)\n return [...filtered, { name, isComplete: isDynamicFieldComplete(val) }]\n })\n setFormData((prev) => ({\n ...prev,\n [name]: val,\n }))\n }\n\n const handleChange = (e) => {\n const { name, value, type, checked } = e.target\n setFormData((prev) => ({\n ...prev,\n [name]: type === 'checkbox' ? checked : value,\n }))\n }\n\n const handleGPUIdx = (data) => {\n const arr = []\n data?.split(',').forEach((item) => {\n arr.push(Number(item))\n })\n return arr\n }\n\n const processFieldsRecursively = (fields, result) => {\n fields.forEach((field) => {\n if (result[field.name] === undefined && field.default !== undefined) {\n result[field.name] = field.default\n }\n if (\n (result[field.name] || result[field.name] === 0) &&\n field.type === 'number' &&\n typeof result[field.name] !== 'number'\n ) {\n result[field.name] = parseInt(result[field.name], 10)\n }\n if (field.name === 'gpu_idx' && result[field.name]) {\n result[field.name] = handleGPUIdx(result[field.name])\n }\n if (\n field.visible === false ||\n result[field.name] === '' ||\n result[field.name] == null\n ) {\n delete result[field.name]\n }\n if (field.type === 'dynamicField' && Array.isArray(result[field.name])) {\n result[field.name] = result[field.name].filter((item) => {\n if (typeof item === 'string') {\n return item.trim() !== ''\n } else if (typeof item === 'object' && item !== null) {\n return Object.values(item).every((val) => {\n if (typeof val === 'string') {\n return val.trim() !== ''\n }\n return val !== undefined && val !== null\n })\n }\n return false\n })\n if (result[field.name].length === 0) {\n delete result[field.name]\n }\n }\n if (field.type === 'collapse' && Array.isArray(field.children)) {\n processFieldsRecursively(field.children, result)\n }\n })\n }\n\n const getFinalFormData = () => {\n const fields = modelFormConfig[modelType] || []\n let result = {\n model_name: modelData.model_name,\n model_type: modelType,\n ...formData,\n }\n\n processFieldsRecursively(fields, result)\n\n if (result.n_gpu) {\n result.n_gpu = normalizeNGPU(result.n_gpu)\n }\n\n if (result.n_gpu_layers < 0) {\n delete result.n_gpu_layers\n }\n if (result.download_hub === 'none') {\n delete result.download_hub\n }\n if (result.gguf_quantization === 'none') {\n delete result.gguf_quantization\n }\n\n const peft_model_config = {}\n ;['image_lora_load_kwargs', 'image_lora_fuse_kwargs'].forEach((key) => {\n if (result[key]?.length) {\n peft_model_config[key] = arrayToObject(result[key], handleValueType)\n delete result[key]\n }\n })\n if (result.lora_list?.length) {\n peft_model_config.lora_list = result.lora_list\n delete result.lora_list\n }\n if (Object.keys(peft_model_config).length) {\n result.peft_model_config = peft_model_config\n }\n\n if (result.enable_virtual_env === 'unset') {\n delete result.enable_virtual_env\n } else if (result.enable_virtual_env === 'true') {\n result.enable_virtual_env = true\n } else if (result.enable_virtual_env === 'false') {\n result.enable_virtual_env = false\n }\n\n if (result.envs?.length) {\n result.envs = arrayToObject(result.envs)\n }\n\n if (result.quantization_config?.length) {\n result.quantization_config = arrayToObject(\n result.quantization_config,\n handleValueType\n )\n }\n\n for (const key in result) {\n if (![...llmAllDataKey, 'custom'].includes(key)) {\n delete result[key]\n }\n }\n if (result.custom?.length) {\n Object.assign(result, arrayToObject(result.custom, handleValueType))\n delete result.custom\n }\n\n return result\n }\n\n const handleSubmit = () => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n\n setIsCallingApi(true)\n setProgress(0)\n setIsShowProgress(true)\n setIsShowCancel(true)\n\n try {\n const data = getFinalFormData()\n // First fetcher request to initiate the model\n fetchWrapper\n .post('/v1/models', data)\n .then(() => {\n navigate(`/running_models/${modelType}`)\n sessionStorage.setItem(\n 'runningModelType',\n `/running_models/${modelType}`\n )\n let historyArr = JSON.parse(localStorage.getItem('historyArr')) || []\n const historyModelNameArr = historyArr.map((item) => item.model_name)\n if (historyModelNameArr.includes(data.model_name)) {\n historyArr = historyArr.map((item) => {\n if (item.model_name === data.model_name) {\n return data\n }\n return item\n })\n } else {\n historyArr.push(data)\n }\n localStorage.setItem('historyArr', JSON.stringify(historyArr))\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error.response?.status === 499) {\n setSuccessMsg(t('launchModel.cancelledSuccessfully'))\n } else if (error.response?.status !== 403) {\n setErrorMsg(error.message)\n }\n })\n .finally(() => {\n setIsCallingApi(false)\n stopPolling()\n setIsShowProgress(false)\n setIsShowCancel(false)\n setIsLoading(false)\n })\n startPolling()\n } catch (error) {\n setErrorMsg(`${error}`)\n setIsCallingApi(false)\n }\n }\n\n const modelFormConfig = getModelFormConfig({\n t,\n formData,\n modelData,\n gpuAvailable,\n engineItems,\n formatItems,\n sizeItems,\n quantizationItems,\n getNGPURange,\n downloadHubOptions,\n enginesWithNWorker,\n multimodalProjectorOptions,\n })\n\n const areRequiredFieldsFilled = useMemo(() => {\n const data = getFinalFormData()\n const fields = modelFormConfig[modelType] || []\n return checkRequiredFields(fields, data)\n }, [formData, modelType])\n\n const renderFormFields = (fields = []) => {\n const enhancedFields = fields.map((field) => {\n if (field.name === 'reasoning_content') {\n const enable_thinking_default = fields.find(\n (item) => item.name === 'enable_thinking'\n ).default\n return {\n ...field,\n visible:\n !!modelData.model_ability?.includes('reasoning') &&\n (formData.enable_thinking ??\n enable_thinking_default ??\n field.default ??\n false),\n }\n }\n if (field.name === 'gpu_idx' && field.visible !== true) {\n const n_gpu_default = fields.find(\n (item) => item.name === 'n_gpu'\n ).default\n\n return {\n ...field,\n visible:\n formData.n_gpu === 'GPU' ||\n ((formData.n_gpu === undefined ||\n formData.n_gpu === null ||\n formData.n_gpu === '') &&\n n_gpu_default === 'GPU'),\n }\n }\n return field\n })\n\n return enhancedFields\n .filter((field) => field.visible)\n .map((field) => {\n const fieldKey = field.name\n switch (field.type) {\n case 'collapse': {\n const open = collapseState[fieldKey] ?? false\n\n const toggleCollapse = () => {\n setCollapseState((prev) => ({\n ...prev,\n [fieldKey]: !prev[fieldKey],\n }))\n }\n\n return (\n <Box key={fieldKey} sx={{ mt: 2 }}>\n <ListItemButton onClick={toggleCollapse}>\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 10 }}\n >\n <ListItemText primary={field.label} />\n {open ? <ExpandLess /> : <ExpandMore />}\n </div>\n </ListItemButton>\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\n <Box sx={{ pl: 2 }}>\n {renderFormFields(field.children || [])}\n </Box>\n </Collapse>\n </Box>\n )\n }\n case 'select':\n return (\n <SelectField\n key={fieldKey}\n label={field.label}\n labelId={`${field.name}-label`}\n name={field.name}\n disabled={field.disabled}\n value={formData[field.name] ?? field.default ?? ''}\n onChange={handleChange}\n options={field.options}\n required={field.required}\n />\n )\n case 'number':\n return (\n <TextField\n key={fieldKey}\n name={field.name}\n label={field.label}\n type=\"number\"\n disabled={field.disabled}\n InputProps={field.inputProps}\n value={formData[field.name] ?? field.default ?? ''}\n onChange={handleChange}\n required={field.required}\n error={field.error}\n helperText={field.error && field.helperText}\n fullWidth\n margin=\"normal\"\n className=\"textHighlight\"\n />\n )\n case 'input':\n return (\n <TextField\n key={fieldKey}\n name={field.name}\n label={field.label}\n disabled={field.disabled}\n InputProps={field.inputProps}\n value={formData[field.name] ?? field.default ?? ''}\n onChange={handleChange}\n required={field.required}\n error={field.error}\n helperText={field.error && field.helperText}\n fullWidth\n margin=\"normal\"\n className=\"textHighlight\"\n />\n )\n case 'switch':\n return (\n <div key={fieldKey}>\n <Tooltip title={field.tip} placement=\"top\">\n <FormControlLabel\n name={field.name}\n label={field.label}\n labelPlacement=\"start\"\n control={\n <Switch\n checked={formData[field.name] ?? field.default ?? false}\n />\n }\n onChange={handleChange}\n required={field.required}\n />\n </Tooltip>\n </div>\n )\n case 'radio':\n return (\n <div\n key={fieldKey}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 10,\n marginLeft: 15,\n }}\n >\n <span>{field.label}</span>\n <RadioGroup\n row\n name={field.name}\n value={\n formData[field.name] ??\n field.default ??\n field.options?.[0]?.value ??\n ''\n }\n onChange={handleChange}\n >\n {field.options.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={<Radio />}\n label={item.label}\n />\n ))}\n </RadioGroup>\n </div>\n )\n case 'dynamicField':\n return (\n <DynamicFieldList\n key={fieldKey}\n name={field.name}\n label={field.label}\n mode={field.mode}\n keyPlaceholder={field.keyPlaceholder}\n valuePlaceholder={field.valuePlaceholder}\n value={formData[field.name]}\n onChange={handleDynamicField}\n keyOptions={field.keyOptions}\n />\n )\n default:\n return null\n }\n })\n }\n\n const renderButtonContent = () => {\n if (isShowCancel) {\n return <StopCircle sx={{ fontSize: 26 }} />\n }\n if (isLoading) {\n return <CircularProgress size={26} />\n }\n\n return <RocketLaunchOutlined sx={{ fontSize: 26 }} />\n }\n\n return (\n <Drawer open={open} onClose={onClose} anchor=\"right\">\n <Box className=\"drawerCard\">\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Box display=\"flex\" alignItems=\"center\">\n <TitleTypography value={modelData.model_name} />\n {hasHistory && (\n <Chip\n label={t('launchModel.lastConfig')}\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n onDelete={deleteHistory}\n />\n )}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" gap={1}>\n <Tooltip\n title={t('launchModel.commandLineParsing')}\n placement=\"top\"\n >\n <ContentPasteGo\n className=\"pasteText\"\n onClick={() => setIsOpenPasteDialog(true)}\n />\n </Tooltip>\n\n {areRequiredFieldsFilled && (\n <CopyToCommandLine\n getData={getFinalFormData}\n predefinedKeys={llmAllDataKey}\n />\n )}\n </Box>\n </Box>\n\n <Box\n sx={{\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n }}\n component=\"form\"\n onSubmit={handleSubmit}\n >\n <Box>{renderFormFields(modelFormConfig[modelType])}</Box>\n\n <Box marginTop={4}>\n <Box height={16}>\n {isShowProgress && (\n <Progress style={{ marginBottom: 20 }} progress={progress} />\n )}\n </Box>\n <Box display=\"flex\" gap={2}>\n <Button\n style={{ flex: 1 }}\n variant=\"outlined\"\n color=\"primary\"\n title={t(\n isShowCancel ? 'launchModel.cancel' : 'launchModel.launch'\n )}\n disabled={\n !areRequiredFieldsFilled ||\n isLoading ||\n isCallingApi ||\n checkDynamicFieldComplete.some((item) => !item.isComplete)\n }\n onClick={() => {\n if (isShowCancel) {\n fetchCancelModel()\n } else {\n handleSubmit()\n }\n }}\n >\n {renderButtonContent()}\n </Button>\n <Button\n style={{ flex: 1 }}\n variant=\"outlined\"\n color=\"primary\"\n onClick={onClose}\n title={t('launchModel.goBack')}\n >\n <UndoOutlined sx={{ fontSize: 26 }} />\n </Button>\n </Box>\n </Box>\n </Box>\n\n <PasteDialog\n open={isOpenPasteDialog}\n onHandleClose={() => setIsOpenPasteDialog(false)}\n onHandleCommandLine={handleCommandLine}\n />\n </Box>\n </Drawer>\n )\n}\n\nexport default LaunchModelDrawer\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}