xinference 0.15.0__py3-none-any.whl → 0.15.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 (83) hide show
  1. xinference/_version.py +3 -3
  2. xinference/api/restful_api.py +204 -1
  3. xinference/client/restful/restful_client.py +4 -2
  4. xinference/core/image_interface.py +28 -0
  5. xinference/core/model.py +28 -0
  6. xinference/core/supervisor.py +6 -0
  7. xinference/model/audio/fish_speech.py +9 -9
  8. xinference/model/audio/model_spec.json +9 -9
  9. xinference/model/audio/whisper.py +4 -1
  10. xinference/model/image/core.py +2 -1
  11. xinference/model/image/model_spec.json +16 -4
  12. xinference/model/image/model_spec_modelscope.json +16 -4
  13. xinference/model/image/sdapi.py +136 -0
  14. xinference/model/image/stable_diffusion/core.py +148 -20
  15. xinference/model/llm/__init__.py +8 -0
  16. xinference/model/llm/llm_family.json +393 -0
  17. xinference/model/llm/llm_family.py +3 -1
  18. xinference/model/llm/llm_family_modelscope.json +408 -3
  19. xinference/model/llm/sglang/core.py +3 -0
  20. xinference/model/llm/transformers/chatglm.py +1 -1
  21. xinference/model/llm/transformers/core.py +6 -0
  22. xinference/model/llm/transformers/deepseek_v2.py +340 -0
  23. xinference/model/llm/transformers/qwen2_audio.py +168 -0
  24. xinference/model/llm/transformers/qwen2_vl.py +31 -5
  25. xinference/model/llm/utils.py +104 -84
  26. xinference/model/llm/vllm/core.py +8 -0
  27. xinference/thirdparty/fish_speech/fish_speech/configs/firefly_gan_vq.yaml +2 -3
  28. xinference/thirdparty/fish_speech/fish_speech/configs/text2semantic_finetune.yaml +1 -1
  29. xinference/thirdparty/fish_speech/fish_speech/i18n/locale/en_US.json +1 -1
  30. xinference/thirdparty/fish_speech/fish_speech/i18n/locale/es_ES.json +1 -1
  31. xinference/thirdparty/fish_speech/fish_speech/i18n/locale/ja_JP.json +1 -1
  32. xinference/thirdparty/fish_speech/fish_speech/i18n/locale/pt_BR.json +1 -1
  33. xinference/thirdparty/fish_speech/fish_speech/i18n/locale/zh_CN.json +1 -1
  34. xinference/thirdparty/fish_speech/fish_speech/models/text2semantic/llama.py +2 -2
  35. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/__init__.py +0 -3
  36. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/modules/firefly.py +169 -198
  37. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/modules/fsq.py +4 -27
  38. xinference/thirdparty/fish_speech/fish_speech/text/clean.py +9 -47
  39. xinference/thirdparty/fish_speech/fish_speech/text/spliter.py +2 -2
  40. xinference/thirdparty/fish_speech/fish_speech/train.py +2 -0
  41. xinference/thirdparty/fish_speech/fish_speech/webui/manage.py +12 -10
  42. xinference/thirdparty/fish_speech/tools/api.py +79 -134
  43. xinference/thirdparty/fish_speech/tools/commons.py +35 -0
  44. xinference/thirdparty/fish_speech/tools/download_models.py +3 -3
  45. xinference/thirdparty/fish_speech/tools/file.py +17 -0
  46. xinference/thirdparty/fish_speech/tools/llama/build_dataset.py +1 -1
  47. xinference/thirdparty/fish_speech/tools/llama/generate.py +29 -24
  48. xinference/thirdparty/fish_speech/tools/llama/merge_lora.py +1 -1
  49. xinference/thirdparty/fish_speech/tools/llama/quantize.py +2 -2
  50. xinference/thirdparty/fish_speech/tools/msgpack_api.py +34 -0
  51. xinference/thirdparty/fish_speech/tools/post_api.py +85 -44
  52. xinference/thirdparty/fish_speech/tools/sensevoice/fun_asr.py +1 -1
  53. xinference/thirdparty/fish_speech/tools/smart_pad.py +16 -3
  54. xinference/thirdparty/fish_speech/tools/vqgan/extract_vq.py +2 -2
  55. xinference/thirdparty/fish_speech/tools/vqgan/inference.py +4 -2
  56. xinference/thirdparty/fish_speech/tools/webui.py +12 -146
  57. xinference/types.py +7 -4
  58. xinference/web/ui/build/asset-manifest.json +6 -6
  59. xinference/web/ui/build/index.html +1 -1
  60. xinference/web/ui/build/static/css/{main.632e9148.css → main.5061c4c3.css} +2 -2
  61. xinference/web/ui/build/static/css/main.5061c4c3.css.map +1 -0
  62. xinference/web/ui/build/static/js/{main.9cfafbd6.js → main.754740c0.js} +3 -3
  63. xinference/web/ui/build/static/js/main.754740c0.js.map +1 -0
  64. xinference/web/ui/node_modules/.cache/babel-loader/cd90b08d177025dfe84209596fc51878f8a86bcaa6a240848a3d2e5fd4c7ff24.json +1 -0
  65. xinference/web/ui/node_modules/.cache/babel-loader/e42b72d4cc1ea412ebecbb8d040dc6c6bfee462c33903c2f1f3facb602ad742e.json +1 -0
  66. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/METADATA +9 -3
  67. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/RECORD +72 -74
  68. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/lit_module.py +0 -442
  69. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/modules/discriminator.py +0 -44
  70. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/modules/reference.py +0 -115
  71. xinference/thirdparty/fish_speech/fish_speech/models/vqgan/modules/wavenet.py +0 -225
  72. xinference/thirdparty/fish_speech/tools/auto_rerank.py +0 -159
  73. xinference/thirdparty/fish_speech/tools/gen_ref.py +0 -36
  74. xinference/thirdparty/fish_speech/tools/merge_asr_files.py +0 -55
  75. xinference/web/ui/build/static/css/main.632e9148.css.map +0 -1
  76. xinference/web/ui/build/static/js/main.9cfafbd6.js.map +0 -1
  77. xinference/web/ui/node_modules/.cache/babel-loader/01d6d198156bacbd436c51435edbd4b2cacd47a79db929105eba30f74b67d48d.json +0 -1
  78. xinference/web/ui/node_modules/.cache/babel-loader/59eb25f514afcc4fefd1b309d192b2455f1e0aec68a9de598ca4b2333fe2c774.json +0 -1
  79. /xinference/web/ui/build/static/js/{main.9cfafbd6.js.LICENSE.txt → main.754740c0.js.LICENSE.txt} +0 -0
  80. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/LICENSE +0 -0
  81. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/WHEEL +0 -0
  82. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/entry_points.txt +0 -0
  83. {xinference-0.15.0.dist-info → xinference-0.15.1.dist-info}/top_level.txt +0 -0
@@ -1 +0,0 @@
1
- {"ast":null,"code":"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 _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.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 Cancel from'@mui/icons-material/Cancel';import CheckCircleIcon from'@mui/icons-material/CheckCircle';import KeyboardDoubleArrowRightIcon from'@mui/icons-material/KeyboardDoubleArrowRight';import NotesIcon from'@mui/icons-material/Notes';import OpenInFullIcon from'@mui/icons-material/OpenInFull';import{Alert,Box,Button,Checkbox,Chip,Dialog,DialogActions,DialogContent,DialogTitle,FormControl,FormControlLabel,InputLabel,MenuItem,Radio,RadioGroup,Select,Stack,Switch,TextField,Tooltip}from'@mui/material';import nunjucks from'nunjucks';import React,{useContext,useEffect,useRef,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate,useParams}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import CopyComponent from'../../components/copyComponent/copyComponent';import fetchWrapper from'../../components/fetchWrapper';import{isValidBearerToken}from'../../components/utils';import AddControlnet from'./components/addControlnet';import AddModelSpecs from'./components/addModelSpecs';import AddStop from'./components/addStop';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'];var messages=[{role:'assistant',content:'This is the message content replied by the assistant previously'},{role:'user',content:'This is the message content sent by the user currently'}];// Convert dictionary of supported languages into list\nvar SUPPORTED_LANGUAGES=Object.keys(SUPPORTED_LANGUAGES_DICT);var RegisterModelComponent=function RegisterModelComponent(_ref){var _formData$model_abili,_formData$model_abili2,_formData$model_abili3,_formData$model_lang,_formData$language,_formData$model_abili4,_formData$model_abili5;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),family=_useState4[0],setFamily=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),languagesArr=_useState6[0],setLanguagesArr=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),isContextLengthAlert=_useState8[0],setIsContextLengthAlert=_useState8[1];var _useState9=useState(false),_useState10=_slicedToArray(_useState9,2),isDimensionsAlert=_useState10[0],setIsDimensionsAlert=_useState10[1];var _useState11=useState(false),_useState12=_slicedToArray(_useState11,2),isMaxTokensAlert=_useState12[0],setIsMaxTokensAlert=_useState12[1];var _useState13=useState(''),_useState14=_slicedToArray(_useState13,2),jsonData=_useState14[0],setJsonData=_useState14[1];var _useState15=useState(false),_useState16=_slicedToArray(_useState15,2),isSpecsArrError=_useState16[0],setIsSpecsArrError=_useState16[1];var _useState17=useState(false),_useState18=_slicedToArray(_useState17,2),isValidLauncherArgsAlert=_useState18[0],setIsValidLauncherArgsAlert=_useState18[1];var scrollRef=useRef(null);var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();var _useParams=useParams(),registerModelType=_useParams.registerModelType,model_name=_useParams.model_name;var _useState19=useState(model_name?true:false),_useState20=_slicedToArray(_useState19,2),isShow=_useState20[0],setIsShow=_useState20[1];var _useState21=useState(model_name?JSON.parse(sessionStorage.getItem('customJsonData')).model_specs:[]),_useState22=_slicedToArray(_useState21,2),specsArr=_useState22[0],setSpecsArr=_useState22[1];var _useState23=useState(model_name?JSON.parse(sessionStorage.getItem('customJsonData')).controlnet:[]),_useState24=_slicedToArray(_useState23,2),controlnetArr=_useState24[0],setControlnetArr=_useState24[1];var _useState25=useState({}),_useState26=_slicedToArray(_useState25,2),contrastObj=_useState26[0],setContrastObj=_useState26[1];var _useState27=useState(true),_useState28=_slicedToArray(_useState27,2),isEqual=_useState28[0],setIsEqual=_useState28[1];var _useState29=useState(''),_useState30=_slicedToArray(_useState29,2),testRes=_useState30[0],setTestRes=_useState30[1];var _useState31=useState(false),_useState32=_slicedToArray(_useState31,2),isOpenMessages=_useState32[0],setIsOpenMessages=_useState32[1];var _useState33=useState(''),_useState34=_slicedToArray(_useState33,2),testErrorInfo=_useState34[0],setTestErrorInfo=_useState34[1];var _useState35=useState(false),_useState36=_slicedToArray(_useState35,2),isStopTokenIdsAlert=_useState36[0],setIsStopTokenIdsAlert=_useState36[1];useEffect(function(){if(model_name){var data=JSON.parse(sessionStorage.getItem('customJsonData'));if(modelType==='LLM'){var lagArr=data.model_lang.filter(function(item){return item!=='en'&&item!=='zh';});setLanguagesArr(lagArr);var version=data.version,_model_name=data.model_name,model_description=data.model_description,context_length=data.context_length,model_lang=data.model_lang,model_ability=data.model_ability,model_family=data.model_family,model_specs=data.model_specs,chat_template=data.chat_template,stop_token_ids=data.stop_token_ids,stop=data.stop;var specsDataArr=model_specs.map(function(item){var model_uri=item.model_uri,model_size_in_billions=item.model_size_in_billions,model_format=item.model_format,quantizations=item.quantizations,model_file_name_template=item.model_file_name_template;return{model_uri:model_uri,model_size_in_billions:model_size_in_billions,model_format:model_format,quantizations:quantizations,model_file_name_template:model_file_name_template};});var llmData={version:version,model_name:_model_name,model_description:model_description,context_length:context_length,model_lang:model_lang,model_ability:model_ability,model_family:model_family,model_specs:specsDataArr,chat_template:chat_template,stop_token_ids:stop_token_ids,stop:stop};setFormData(llmData);setContrastObj(llmData);setSpecsArr(specsDataArr);}else{if(modelType==='embedding'){var _lagArr=data.language.filter(function(item){return item!=='en'&&item!=='zh';});setLanguagesArr(_lagArr);var _model_name2=data.model_name,dimensions=data.dimensions,max_tokens=data.max_tokens,model_uri=data.model_uri,language=data.language;var embeddingData={model_name:_model_name2,dimensions:dimensions,max_tokens:max_tokens,model_uri:model_uri,language:language};setFormData(embeddingData);setContrastObj(embeddingData);}else if(modelType==='rerank'){var _lagArr2=data.language.filter(function(item){return item!=='en'&&item!=='zh';});setLanguagesArr(_lagArr2);var _model_name3=data.model_name,_model_uri=data.model_uri,_language=data.language;var rerankData={model_name:_model_name3,model_uri:_model_uri,language:_language};setFormData(rerankData);setContrastObj(rerankData);}else if(modelType==='image'){var _model_name4=data.model_name,_model_uri2=data.model_uri,_model_family=data.model_family,controlnet=data.controlnet;var _controlnetArr=controlnet.map(function(item){var model_name=item.model_name,model_uri=item.model_uri,model_family=item.model_family;return{model_name:model_name,model_uri:model_uri,model_family:model_family};});var imageData={model_name:_model_name4,model_uri:_model_uri2,model_family:_model_family,controlnet:_controlnetArr};setFormData(imageData);setContrastObj(imageData);setControlnetArr(_controlnetArr);}else if(modelType==='audio'){var _model_name5=data.model_name,_model_uri3=data.model_uri,multilingual=data.multilingual,_model_family2=data.model_family;var audioData={model_name:_model_name5,model_uri:_model_uri3,multilingual:multilingual,model_family:_model_family2};setFormData(audioData);setContrastObj(audioData);}else if(modelType==='flexible'){var _model_name6=data.model_name,_model_uri4=data.model_uri,_model_description=data.model_description,launcher=data.launcher,launcher_args=data.launcher_args;var flexibleData={model_name:_model_name6,model_uri:_model_uri4,model_description:_model_description,launcher:launcher,launcher_args:launcher_args};setFormData(flexibleData);setContrastObj(flexibleData);}}}},[model_name]);useEffect(function(){if(sessionStorage.getItem('auth')==='true'&&!isValidBearerToken(sessionStorage.getItem('token'))&&!isValidBearerToken(cookie.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=14;break;case 10:_context.next=12;return response.json();case 12:data=_context.sent;setFamily([].concat(_toConsumableArray(data.chat),_toConsumableArray(data.generate)));case 14:case\"end\":return _context.stop();}},_callee);}));return function getBuiltinFamilies(){return _ref2.apply(this,arguments);};}();if(Object.prototype.hasOwnProperty.call(customData,'model_ability')&&Object.prototype.hasOwnProperty.call(customData,'model_family')){if(family.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,customReplacer,4));if(contrastObj.model_name){deepEqual(contrastObj,formData)?setIsEqual(true):setIsEqual(false);}},[formData]);var customReplacer=function customReplacer(key,value){if(key==='chat_template'){return value.replace(/\\\\n/g,'\\n');}return value;};var handleClick=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var key,type;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.t0=_regeneratorRuntime().keys(formData);case 1:if((_context2.t1=_context2.t0()).done){_context2.next=9;break;}key=_context2.t1.value;type=Object.prototype.toString.call(formData[key]).slice(8,-1);if(!(key!=='model_description'&&(type==='Array'&&key!=='controlnet'&&key!=='stop_token_ids'&&key!=='stop'&&formData[key].length===0||type==='String'&&formData[key]===''||type==='Number'&&formData[key]<=0))){_context2.next=7;break;}setErrorMsg('Please fill in valid value for all fields');return _context2.abrupt(\"return\");case 7:_context2.next=1;break;case 9:if(!(isSpecsArrError||isContextLengthAlert||isDimensionsAlert||isMaxTokensAlert)){_context2.next=12;break;}setErrorMsg('Please fill in valid value for all fields');return _context2.abrupt(\"return\");case 12:try{fetchWrapper.post(\"/v1/model_registrations/\".concat(modelType),{model:JSON.stringify(formData,customReplacer),persist:true}).then(function(){navigate(\"/launch_model/custom/\".concat(modelType.toLowerCase()));sessionStorage.setItem('modelType','/launch_model/custom/llm');sessionStorage.setItem('subType',\"/launch_model/custom/\".concat(modelType.toLowerCase()));}).catch(function(error){console.error('Error:',error);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});}catch(error){console.error('There was a problem with the fetch operation:',error);setErrorMsg(error.message||'An unexpected error occurred.');}case 13:case\"end\":return _context2.stop();}},_callee2);}));return function handleClick(){return _ref3.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)||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){var obj=JSON.parse(JSON.stringify(formData));if(formData.model_ability.includes(ability)){if(ability==='chat'){delete obj.chat_template;delete obj.stop_token_ids;delete obj.stop;}setFormData(_objectSpread(_objectSpread({},obj),{},{model_ability:formData.model_ability.filter(function(a){return a!==ability;})}));}else{if(ability==='chat'){obj.chat_template='';obj.stop_token_ids=[];obj.stop=[];}setFormData(_objectSpread(_objectSpread({},obj),{},{model_ability:[].concat(_toConsumableArray(formData.model_ability),[ability])}));}};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 handleCancel=function handleCancel(){navigate(\"/launch_model/custom/\".concat(registerModelType));};var handleEdit=function handleEdit(){fetchWrapper.delete(\"/v1/model_registrations/\".concat(registerModelType==='llm'?'LLM':registerModelType,\"/\").concat(model_name)).then(function(){return handleClick();}).catch(function(error){console.error('Error:',error);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});};var deepEqual=function deepEqual(obj1,obj2){if(obj1===obj2)return true;if(typeof obj1!=='object'||typeof obj2!=='object'||obj1==null||obj2==null){return false;}var keysA=Object.keys(obj1);var keysB=Object.keys(obj2);if(keysA.length!==keysB.length)return false;for(var _i=0,_keysA=keysA;_i<_keysA.length;_i++){var key=_keysA[_i];if(!keysB.includes(key)||!deepEqual(obj1[key],obj2[key])){return false;}}return true;};var handleTest=function handleTest(){setTestRes('');if(formData.chat_template){try{nunjucks.configure({autoescape:false});var test_res=nunjucks.renderString(formData.chat_template,{messages:messages});if(test_res===''){setTestRes(test_res);setTestErrorInfo('error');}else{setTestRes(test_res);setTestErrorInfo('');}}catch(error){setTestErrorInfo(\"\".concat(error));}}};var getStopTokenIds=function getStopTokenIds(value){if(value.length===1&&value[0]===''){setFormData(_objectSpread(_objectSpread({},formData),{},{stop_token_ids:[]}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{stop_token_ids:value}));}};var getStop=function getStop(value){if(value.length===1&&value[0]===''){setFormData(_objectSpread(_objectSpread({},formData),{},{stop:[]}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{stop:value}));}};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,{style:{width:'100%'},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,{className:\"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,{checked:formData.multilingual}),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,{className:\"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(_Fragment,{children:[modelType==='LLM'&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Family\",error:formData.model_family?false:true,value:formData.model_family,helperText:\"Not the same as the built-in model name.\",size:\"small\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_family:event.target.value}));}}),family.includes(formData.model_family)&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Custom model has the same name as a built-in model, please change it.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),(modelType==='image'||modelType==='audio')&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(FormControl,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:'inherit'},children:\"Model Family\"}),/*#__PURE__*/_jsx(RadioGroup,{value:formData.model_family,children:/*#__PURE__*/_jsx(Box,{className:\"checkboxWrapper\",style:{paddingLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:formData.model_family,checked:true,control:/*#__PURE__*/_jsx(Radio,{}),label:formData.model_family})})})]}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]})]}),((_formData$model_abili=formData.model_ability)===null||_formData$model_abili===void 0?void 0:_formData$model_abili.includes('chat'))&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"chat_template_box\",children:[/*#__PURE__*/_jsx(TextField,{label:\"Chat Template\",error:formData.chat_template?false:true,value:formData.chat_template,size:\"small\",helperText:\"Please make sure this chat_template passes the test by clicking the TEST button on the right. Please note that this test may not cover all cases and will only be used for the most basic case.\",multiline:true,rows:6,onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{chat_template:event.target.value}));},style:{flex:1}}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",onClick:handleTest,style:{marginTop:50},children:\"test\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"chat_template_test\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"chat_template_test_mainBox\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',gap:5},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:16},children:\"messages example\"}),/*#__PURE__*/_jsx(OpenInFullIcon,{onClick:function onClick(){return setIsOpenMessages(true);},style:{fontSize:14,color:'#666',cursor:'pointer'}})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"span\",{style:{display:'flex',alignItems:'center',gap:10,fontSize:16},children:[\"test result\",testErrorInfo?/*#__PURE__*/_jsx(Cancel,{style:{color:'red'}}):testRes?/*#__PURE__*/_jsx(CheckCircleIcon,{style:{color:'rgb(46, 125, 50)'}}):'']}),/*#__PURE__*/_jsx(\"div\",{className:\"test_res_box\",style:{backgroundColor:testErrorInfo===''?testRes?'rgb(237, 247, 237)':'':'rgb(253, 237, 237)'},children:testErrorInfo!==''?testErrorInfo:testRes?testRes:'No test results...'})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"chat_template_test_tip\",style:{color:testErrorInfo===''?'':'#d32f2f'},children:\"Please note that failure to pass test may prevent chats from working properly.\"})]})]}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),((_formData$model_abili2=formData.model_ability)===null||_formData$model_abili2===void 0?void 0:_formData$model_abili2.includes('chat'))&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddStop,{label:\"Stop Token Ids\",arrItemType:\"number\",formData:formData.stop_token_ids,onGetData:getStopTokenIds,onGetError:function onGetError(value){if(value.includes('false')){setIsStopTokenIdsAlert(true);}else{setIsStopTokenIdsAlert(false);}},helperText:\"int type, used to control the stopping of chat models\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),((_formData$model_abili3=formData.model_ability)===null||_formData$model_abili3===void 0?void 0:_formData$model_abili3.includes('chat'))&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddStop,{label:\"Stop\",arrItemType:\"string\",formData:formData.stop,onGetData:getStop,helperText:\"string type, used to control the stopping of chat models\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_specs&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddModelSpecs,{isJump:model_name?true:false,formData:customData.model_specs[0],specsDataArr:specsArr,onGetArr:getSpecsArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.controlnet&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddControlnet,{controlnetDataArr:controlnetArr,onGetControlnetArr:getControlnetArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.launcher&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Launcher\",error:formData.launcher?false:true,value:formData.launcher,size:\"small\",helperText:\"Provide the model launcher.\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{launcher:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.launcher_args&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Launcher Arguments (Optional)\",value:formData.launcher_args,size:\"small\",helperText:\"A JSON-formatted dictionary representing the arguments passed to the Launcher.\",onChange:function onChange(event){try{JSON.parse(event.target.value);setIsValidLauncherArgsAlert(false);}catch(_unused){setIsValidLauncherArgsAlert(true);}return setFormData(_objectSpread(_objectSpread({},formData),{},{launcher_args:event.target.value}));},multiline:true,rows:4}),isValidLauncherArgsAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter the JSON-formatted dictionary.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]})]}),model_name?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Button,{variant:\"contained\",color:\"primary\",type:\"submit\",onClick:handleEdit,disabled:isEqual,children:\"Edit\"}),/*#__PURE__*/_jsx(Button,{style:{marginLeft:30},variant:\"outlined\",color:\"primary\",type:\"submit\",onClick:handleCancel,children:\"Cancel\"})]}):/*#__PURE__*/_jsx(Box,{width:'100%',children:/*#__PURE__*/_jsx(Button,{variant:\"contained\",color:\"primary\",type:\"submit\",onClick:handleClick,disabled:isContextLengthAlert||isDimensionsAlert||isMaxTokensAlert||((_formData$model_lang=formData.model_lang)===null||_formData$model_lang===void 0?void 0:_formData$model_lang.length)===0||((_formData$language=formData.language)===null||_formData$language===void 0?void 0:_formData$language.length)===0||((_formData$model_abili4=formData.model_ability)===null||_formData$model_abili4===void 0?void 0:_formData$model_abili4.length)===0||modelType==='LLM'&&!formData.model_family||((_formData$model_abili5=formData.model_ability)===null||_formData$model_abili5===void 0?void 0:_formData$model_abili5.includes('chat'))&&!formData.chat_template||isStopTokenIdsAlert||(family===null||family===void 0?void 0:family.includes(formData===null||formData===void 0?void 0:formData.model_family)),children:\"Register Model\"})})]}),/*#__PURE__*/_jsxs(Dialog,{open:isOpenMessages,onClose:function onClose(){return setIsOpenMessages(false);},\"aria-labelledby\":\"alert-dialog-title\",\"aria-describedby\":\"alert-dialog-description\",children:[/*#__PURE__*/_jsx(DialogTitle,{id:\"alert-dialog-title\",children:\"Messages Example\"}),/*#__PURE__*/_jsx(DialogContent,{children:/*#__PURE__*/_jsx(\"textarea\",{readOnly:true,className:\"textarea\",style:{width:500,height:200},value:JSON.stringify(messages,null,4)})}),/*#__PURE__*/_jsx(DialogActions,{children:/*#__PURE__*/_jsx(Button,{variant:\"contained\",onClick:function onClick(){return setIsOpenMessages(false);},style:{marginRight:15,marginBottom:15},children:\"OK\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:isShow?'jsonBox':'jsonBox hide',children:[/*#__PURE__*/_jsxs(\"div\",{className:\"jsonBox-header\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"jsonBox-title\",children:\"JSON Format\"}),/*#__PURE__*/_jsx(CopyComponent,{tip:'Copy all',text:jsonData})]}),/*#__PURE__*/_jsx(\"textarea\",{readOnly:true,className:\"textarea\",value:jsonData})]})]});};export default RegisterModelComponent;","map":{"version":3,"names":["Cancel","CheckCircleIcon","KeyboardDoubleArrowRightIcon","NotesIcon","OpenInFullIcon","Alert","Box","Button","Checkbox","Chip","Dialog","DialogActions","DialogContent","DialogTitle","FormControl","FormControlLabel","InputLabel","MenuItem","Radio","RadioGroup","Select","Stack","Switch","TextField","Tooltip","nunjucks","React","useContext","useEffect","useRef","useState","useCookies","useNavigate","useParams","ApiContext","CopyComponent","fetchWrapper","isValidBearerToken","AddControlnet","AddModelSpecs","AddStop","languages","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SUPPORTED_LANGUAGES_DICT","en","zh","SUPPORTED_FEATURES","messages","role","content","SUPPORTED_LANGUAGES","Object","keys","RegisterModelComponent","_ref","_formData$model_abili","_formData$model_abili2","_formData$model_abili3","_formData$model_lang","_formData$language","_formData$model_abili4","_formData$model_abili5","modelType","customData","endPoint","_useContext","setErrorMsg","_useState","_useState2","_slicedToArray","formData","setFormData","_useState3","_useState4","family","setFamily","_useState5","_useState6","languagesArr","setLanguagesArr","_useState7","_useState8","isContextLengthAlert","setIsContextLengthAlert","_useState9","_useState10","isDimensionsAlert","setIsDimensionsAlert","_useState11","_useState12","isMaxTokensAlert","setIsMaxTokensAlert","_useState13","_useState14","jsonData","setJsonData","_useState15","_useState16","isSpecsArrError","setIsSpecsArrError","_useState17","_useState18","isValidLauncherArgsAlert","setIsValidLauncherArgsAlert","scrollRef","_useCookies","_useCookies2","cookie","navigate","_useParams","registerModelType","model_name","_useState19","_useState20","isShow","setIsShow","_useState21","JSON","parse","sessionStorage","getItem","model_specs","_useState22","specsArr","setSpecsArr","_useState23","controlnet","_useState24","controlnetArr","setControlnetArr","_useState25","_useState26","contrastObj","setContrastObj","_useState27","_useState28","isEqual","setIsEqual","_useState29","_useState30","testRes","setTestRes","_useState31","_useState32","isOpenMessages","setIsOpenMessages","_useState33","_useState34","testErrorInfo","setTestErrorInfo","_useState35","_useState36","isStopTokenIdsAlert","setIsStopTokenIdsAlert","data","lagArr","model_lang","filter","item","version","model_description","context_length","model_ability","model_family","chat_template","stop_token_ids","stop","specsDataArr","map","model_uri","model_size_in_billions","model_format","quantizations","model_file_name_template","llmData","language","dimensions","max_tokens","embeddingData","rerankData","imageData","multilingual","audioData","launcher","launcher_args","flexibleData","token","replace","getBuiltinFamilies","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","errorData","wrap","_callee$","_context","prev","next","fetch","method","headers","sent","ok","json","concat","status","detail","_toConsumableArray","chat","generate","apply","arguments","prototype","hasOwnProperty","call","length","catch","error","message","console","stringify","customReplacer","deepEqual","key","value","handleClick","_ref3","_callee2","type","_callee2$","_context2","t0","t1","done","toString","slice","abrupt","post","model","persist","then","toLowerCase","setItem","handleNumber","parameterName","_objectSpread","_defineProperty","Number","parseInt","parseFloat","toggleLanguage","lang","includes","l","toggleAbility","ability","obj","a","handleSelectLanguages","arr","Array","from","Set","handleDeleteLanguages","subItem","getSpecsArr","getControlnetArr","handleCancel","handleEdit","delete","obj1","obj2","keysA","keysB","_i","_keysA","handleTest","configure","autoescape","test_res","renderString","getStopTokenIds","getStop","style","display","overFlow","maxWidth","children","className","title","placement","onClick","ref","width","label","size","helperText","onChange","event","target","padding","severity","paddingLeft","color","sx","marginRight","control","checked","name","m","minWidth","e","MenuProps","PaperProps","maxHeight","code","direction","spacing","marginLeft","variant","onDelete","multiline","rows","flex","marginTop","alignItems","gap","fontSize","cursor","backgroundColor","arrItemType","onGetData","onGetError","isJump","onGetArr","controlnetDataArr","onGetControlnetArr","_unused","disabled","open","onClose","id","readOnly","height","marginBottom","tip","text"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/registerModel.js"],"sourcesContent":["import './styles/registerModelStyle.css'\n\nimport Cancel from '@mui/icons-material/Cancel'\nimport CheckCircleIcon from '@mui/icons-material/CheckCircle'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport NotesIcon from '@mui/icons-material/Notes'\nimport OpenInFullIcon from '@mui/icons-material/OpenInFull'\nimport {\n Alert,\n Box,\n Button,\n Checkbox,\n Chip,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControl,\n FormControlLabel,\n InputLabel,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n Stack,\n Switch,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport nunjucks from 'nunjucks'\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate, useParams } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport CopyComponent from '../../components/copyComponent/copyComponent'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport { isValidBearerToken } from '../../components/utils'\nimport AddControlnet from './components/addControlnet'\nimport AddModelSpecs from './components/addModelSpecs'\nimport AddStop from './components/addStop'\nimport languages from './data/languages'\nconst SUPPORTED_LANGUAGES_DICT = { en: 'English', zh: 'Chinese' }\nconst SUPPORTED_FEATURES = ['Generate', 'Chat']\nconst messages = [\n {\n role: 'assistant',\n content: 'This is the message content replied by the assistant previously',\n },\n {\n role: 'user',\n content: 'This is the message content sent by the user currently',\n },\n]\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 [family, setFamily] = useState([])\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 [isSpecsArrError, setIsSpecsArrError] = useState(false)\n const [isValidLauncherArgsAlert, setIsValidLauncherArgsAlert] =\n useState(false)\n const scrollRef = useRef(null)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n\n const { registerModelType, model_name } = useParams()\n const [isShow, setIsShow] = useState(model_name ? true : false)\n const [specsArr, setSpecsArr] = useState(\n model_name\n ? JSON.parse(sessionStorage.getItem('customJsonData')).model_specs\n : []\n )\n const [controlnetArr, setControlnetArr] = useState(\n model_name\n ? JSON.parse(sessionStorage.getItem('customJsonData')).controlnet\n : []\n )\n const [contrastObj, setContrastObj] = useState({})\n const [isEqual, setIsEqual] = useState(true)\n const [testRes, setTestRes] = useState('')\n const [isOpenMessages, setIsOpenMessages] = useState(false)\n const [testErrorInfo, setTestErrorInfo] = useState('')\n const [isStopTokenIdsAlert, setIsStopTokenIdsAlert] = useState(false)\n\n useEffect(() => {\n if (model_name) {\n const data = JSON.parse(sessionStorage.getItem('customJsonData'))\n\n if (modelType === 'LLM') {\n const lagArr = data.model_lang.filter(\n (item) => item !== 'en' && item !== 'zh'\n )\n setLanguagesArr(lagArr)\n\n const {\n version,\n model_name,\n model_description,\n context_length,\n model_lang,\n model_ability,\n model_family,\n model_specs,\n chat_template,\n stop_token_ids,\n stop,\n } = data\n const specsDataArr = model_specs.map((item) => {\n const {\n model_uri,\n model_size_in_billions,\n model_format,\n quantizations,\n model_file_name_template,\n } = item\n return {\n model_uri,\n model_size_in_billions,\n model_format,\n quantizations,\n model_file_name_template,\n }\n })\n const llmData = {\n version,\n model_name,\n model_description,\n context_length,\n model_lang,\n model_ability,\n model_family,\n model_specs: specsDataArr,\n chat_template,\n stop_token_ids,\n stop,\n }\n setFormData(llmData)\n setContrastObj(llmData)\n setSpecsArr(specsDataArr)\n } else {\n if (modelType === 'embedding') {\n const lagArr = data.language.filter(\n (item) => item !== 'en' && item !== 'zh'\n )\n setLanguagesArr(lagArr)\n\n const { model_name, dimensions, max_tokens, model_uri, language } =\n data\n const embeddingData = {\n model_name,\n dimensions,\n max_tokens,\n model_uri,\n language,\n }\n setFormData(embeddingData)\n setContrastObj(embeddingData)\n } else if (modelType === 'rerank') {\n const lagArr = data.language.filter(\n (item) => item !== 'en' && item !== 'zh'\n )\n setLanguagesArr(lagArr)\n\n const { model_name, model_uri, language } = data\n const rerankData = {\n model_name,\n model_uri,\n language,\n }\n setFormData(rerankData)\n setContrastObj(rerankData)\n } else if (modelType === 'image') {\n const { model_name, model_uri, model_family, controlnet } = data\n const controlnetArr = controlnet.map((item) => {\n const { model_name, model_uri, model_family } = item\n return {\n model_name,\n model_uri,\n model_family,\n }\n })\n const imageData = {\n model_name,\n model_uri,\n model_family,\n controlnet: controlnetArr,\n }\n setFormData(imageData)\n setContrastObj(imageData)\n setControlnetArr(controlnetArr)\n } else if (modelType === 'audio') {\n const { model_name, model_uri, multilingual, model_family } = data\n const audioData = {\n model_name,\n model_uri,\n multilingual,\n model_family,\n }\n setFormData(audioData)\n setContrastObj(audioData)\n } else if (modelType === 'flexible') {\n const {\n model_name,\n model_uri,\n model_description,\n launcher,\n launcher_args,\n } = data\n const flexibleData = {\n model_name,\n model_uri,\n model_description,\n launcher,\n launcher_args,\n }\n setFormData(flexibleData)\n setContrastObj(flexibleData)\n }\n }\n }\n }, [model_name])\n\n useEffect(() => {\n if (\n sessionStorage.getItem('auth') === 'true' &&\n !isValidBearerToken(sessionStorage.getItem('token')) &&\n !isValidBearerToken(cookie.token)\n ) {\n navigate('/login', { replace: true })\n return\n }\n\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 setFamily([...data.chat, ...data.generate])\n }\n }\n\n if (\n Object.prototype.hasOwnProperty.call(customData, 'model_ability') &&\n Object.prototype.hasOwnProperty.call(customData, 'model_family')\n ) {\n if (family.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, customReplacer, 4))\n if (contrastObj.model_name) {\n deepEqual(contrastObj, formData) ? setIsEqual(true) : setIsEqual(false)\n }\n }, [formData])\n\n const customReplacer = (key, value) => {\n if (key === 'chat_template') {\n return value.replace(/\\\\n/g, '\\n')\n }\n return value\n }\n\n const handleClick = async () => {\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 key !== 'stop_token_ids' &&\n key !== 'stop' &&\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 fetchWrapper\n .post(`/v1/model_registrations/${modelType}`, {\n model: JSON.stringify(formData, customReplacer),\n persist: true,\n })\n .then(() => {\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('Error:', error)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\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 (\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 const obj = JSON.parse(JSON.stringify(formData))\n if (formData.model_ability.includes(ability)) {\n if (ability === 'chat') {\n delete obj.chat_template\n delete obj.stop_token_ids\n delete obj.stop\n }\n setFormData({\n ...obj,\n model_ability: formData.model_ability.filter((a) => a !== ability),\n })\n } else {\n if (ability === 'chat') {\n obj.chat_template = ''\n obj.stop_token_ids = []\n obj.stop = []\n }\n setFormData({\n ...obj,\n model_ability: [...formData.model_ability, ability],\n })\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 handleCancel = () => {\n navigate(`/launch_model/custom/${registerModelType}`)\n }\n\n const handleEdit = () => {\n fetchWrapper\n .delete(\n `/v1/model_registrations/${\n registerModelType === 'llm' ? 'LLM' : registerModelType\n }/${model_name}`\n )\n .then(() => handleClick())\n .catch((error) => {\n console.error('Error:', error)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\n }\n })\n }\n\n const deepEqual = (obj1, obj2) => {\n if (obj1 === obj2) return true\n if (\n typeof obj1 !== 'object' ||\n typeof obj2 !== 'object' ||\n obj1 == null ||\n obj2 == null\n ) {\n return false\n }\n\n let keysA = Object.keys(obj1)\n let keysB = Object.keys(obj2)\n if (keysA.length !== keysB.length) return false\n for (let key of keysA) {\n if (!keysB.includes(key) || !deepEqual(obj1[key], obj2[key])) {\n return false\n }\n }\n return true\n }\n\n const handleTest = () => {\n setTestRes('')\n if (formData.chat_template) {\n try {\n nunjucks.configure({ autoescape: false })\n const test_res = nunjucks.renderString(formData.chat_template, {\n messages: messages,\n })\n if (test_res === '') {\n setTestRes(test_res)\n setTestErrorInfo('error')\n } else {\n setTestRes(test_res)\n setTestErrorInfo('')\n }\n } catch (error) {\n setTestErrorInfo(`${error}`)\n }\n }\n }\n\n const getStopTokenIds = (value) => {\n if (value.length === 1 && value[0] === '') {\n setFormData({\n ...formData,\n stop_token_ids: [],\n })\n } else {\n setFormData({\n ...formData,\n stop_token_ids: value,\n })\n }\n }\n\n const getStop = (value) => {\n if (value.length === 1 && value[0] === '') {\n setFormData({\n ...formData,\n stop: [],\n })\n } else {\n setFormData({\n ...formData,\n stop: value,\n })\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 style={{ width: '100%' }}>\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 className=\"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 checked={formData.multilingual} />}\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 className=\"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 <>\n {modelType === 'LLM' && (\n <>\n <TextField\n label=\"Model Family\"\n error={formData.model_family ? false : true}\n value={formData.model_family}\n helperText=\"Not the same as the built-in model name.\"\n size=\"small\"\n onChange={(event) =>\n setFormData({\n ...formData,\n model_family: event.target.value,\n })\n }\n />\n {family.includes(formData.model_family) && (\n <Alert severity=\"error\">\n Custom model has the same name as a built-in model, please\n change it.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n {(modelType === 'image' || modelType === 'audio') && (\n <>\n <FormControl>\n <label\n style={{\n paddingLeft: 5,\n color: 'inherit',\n }}\n >\n Model Family\n </label>\n <RadioGroup value={formData.model_family}>\n <Box\n className=\"checkboxWrapper\"\n style={{ paddingLeft: '10px' }}\n >\n <FormControlLabel\n value={formData.model_family}\n checked\n control={<Radio />}\n label={formData.model_family}\n />\n </Box>\n </RadioGroup>\n </FormControl>\n <Box padding=\"15px\"></Box>\n </>\n )}\n </>\n )}\n\n {/* chat_template */}\n {formData.model_ability?.includes('chat') && (\n <>\n <div className=\"chat_template_box\">\n <TextField\n label=\"Chat Template\"\n error={formData.chat_template ? false : true}\n value={formData.chat_template}\n size=\"small\"\n helperText=\"Please make sure this chat_template passes the test by clicking the TEST button on the right. Please note that this test may not cover all cases and will only be used for the most basic case.\"\n multiline\n rows={6}\n onChange={(event) =>\n setFormData({\n ...formData,\n chat_template: event.target.value,\n })\n }\n style={{ flex: 1 }}\n />\n <Button\n variant=\"contained\"\n onClick={handleTest}\n style={{ marginTop: 50 }}\n >\n test\n </Button>\n <div className=\"chat_template_test\">\n <div className=\"chat_template_test_mainBox\">\n <div\n style={{ display: 'flex', alignItems: 'center', gap: 5 }}\n >\n <span style={{ fontSize: 16 }}>messages example</span>\n <OpenInFullIcon\n onClick={() => setIsOpenMessages(true)}\n style={{\n fontSize: 14,\n color: '#666',\n cursor: 'pointer',\n }}\n />\n </div>\n <div>\n <span\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 10,\n fontSize: 16,\n }}\n >\n test result\n {testErrorInfo ? (\n <Cancel style={{ color: 'red' }} />\n ) : testRes ? (\n <CheckCircleIcon\n style={{ color: 'rgb(46, 125, 50)' }}\n />\n ) : (\n ''\n )}\n </span>\n <div\n className=\"test_res_box\"\n style={{\n backgroundColor:\n testErrorInfo === ''\n ? testRes\n ? 'rgb(237, 247, 237)'\n : ''\n : 'rgb(253, 237, 237)',\n }}\n >\n {testErrorInfo !== ''\n ? testErrorInfo\n : testRes\n ? testRes\n : 'No test results...'}\n </div>\n </div>\n </div>\n <div\n className=\"chat_template_test_tip\"\n style={{ color: testErrorInfo === '' ? '' : '#d32f2f' }}\n >\n Please note that failure to pass test may prevent chats from\n working properly.\n </div>\n </div>\n </div>\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* stop_token_ids */}\n {formData.model_ability?.includes('chat') && (\n <>\n <AddStop\n label=\"Stop Token Ids\"\n arrItemType=\"number\"\n formData={formData.stop_token_ids}\n onGetData={getStopTokenIds}\n onGetError={(value) => {\n if (value.includes('false')) {\n setIsStopTokenIdsAlert(true)\n } else {\n setIsStopTokenIdsAlert(false)\n }\n }}\n helperText=\"int type, used to control the stopping of chat models\"\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* stop */}\n {formData.model_ability?.includes('chat') && (\n <>\n <AddStop\n label=\"Stop\"\n arrItemType=\"string\"\n formData={formData.stop}\n onGetData={getStop}\n helperText=\"string type, used to control the stopping of chat models\"\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* specs */}\n {customData.model_specs && (\n <>\n <AddModelSpecs\n isJump={model_name ? true : false}\n formData={customData.model_specs[0]}\n specsDataArr={specsArr}\n onGetArr={getSpecsArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* controlnet */}\n {customData.controlnet && (\n <>\n <AddControlnet\n controlnetDataArr={controlnetArr}\n onGetControlnetArr={getControlnetArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* launcher */}\n {customData.launcher && (\n <>\n <TextField\n label=\"Launcher\"\n error={formData.launcher ? false : true}\n value={formData.launcher}\n size=\"small\"\n helperText=\"Provide the model launcher.\"\n onChange={(event) =>\n setFormData({ ...formData, launcher: event.target.value })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* launcher_args */}\n {customData.launcher_args && (\n <>\n <TextField\n label=\"Launcher Arguments (Optional)\"\n value={formData.launcher_args}\n size=\"small\"\n helperText=\"A JSON-formatted dictionary representing the arguments passed to the Launcher.\"\n onChange={(event) => {\n try {\n JSON.parse(event.target.value)\n setIsValidLauncherArgsAlert(false)\n } catch {\n setIsValidLauncherArgsAlert(true)\n }\n return setFormData({\n ...formData,\n launcher_args: event.target.value,\n })\n }}\n multiline\n rows={4}\n />\n {isValidLauncherArgsAlert && (\n <Alert severity=\"error\">\n Please enter the JSON-formatted dictionary.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n </FormControl>\n\n {model_name ? (\n <>\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleEdit}\n disabled={isEqual}\n >\n Edit\n </Button>\n <Button\n style={{ marginLeft: 30 }}\n variant=\"outlined\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleCancel}\n >\n Cancel\n </Button>\n </>\n ) : (\n <Box width={'100%'}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleClick}\n disabled={\n isContextLengthAlert ||\n isDimensionsAlert ||\n isMaxTokensAlert ||\n formData.model_lang?.length === 0 ||\n formData.language?.length === 0 ||\n formData.model_ability?.length === 0 ||\n (modelType === 'LLM' && !formData.model_family) ||\n (formData.model_ability?.includes('chat') &&\n !formData.chat_template) ||\n isStopTokenIdsAlert ||\n family?.includes(formData?.model_family)\n }\n >\n Register Model\n </Button>\n </Box>\n )}\n </div>\n\n <Dialog\n open={isOpenMessages}\n onClose={() => setIsOpenMessages(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">Messages Example</DialogTitle>\n <DialogContent>\n <textarea\n readOnly\n className=\"textarea\"\n style={{ width: 500, height: 200 }}\n value={JSON.stringify(messages, null, 4)}\n />\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => setIsOpenMessages(false)}\n style={{ marginRight: 15, marginBottom: 15 }}\n >\n OK\n </Button>\n </DialogActions>\n </Dialog>\n\n {/* JSON */}\n <div className={isShow ? 'jsonBox' : 'jsonBox hide'}>\n <div className=\"jsonBox-header\">\n <div className=\"jsonBox-title\">JSON Format</div>\n <CopyComponent tip={'Copy all'} text={jsonData} />\n </div>\n <textarea readOnly className=\"textarea\" value={jsonData} />\n </div>\n </Box>\n )\n}\n\nexport default RegisterModelComponent\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import AddIcon from'@mui/icons-material/Add';import DeleteIcon from'@mui/icons-material/Delete';import{Alert,Button,TextField}from'@mui/material';import React,{useEffect,useState}from'react';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 regex=/^[1-9]\\d*$/;var AddStop=function AddStop(_ref){var label=_ref.label,onGetData=_ref.onGetData,arrItemType=_ref.arrItemType,formData=_ref.formData,onGetError=_ref.onGetError,helperText=_ref.helperText;var _useState=useState(formData!==null&&formData!==void 0&&formData.length?formData:['']),_useState2=_slicedToArray(_useState,2),dataArr=_useState2[0],setDataArr=_useState2[1];var arr=[];useEffect(function(){if(arrItemType==='number'){var newDataArr=dataArr.map(function(item){if(item&&regex.test(item)){arr.push('true');return Number(item);}if(item&&!regex.test(item))arr.push('false');return item;});onGetError(arr);onGetData(newDataArr);}else{onGetData(dataArr);}},[dataArr]);var handleChange=function handleChange(value,index){var arr=_toConsumableArray(dataArr);arr[index]=value;setDataArr(_toConsumableArray(arr));};var handleAdd=function handleAdd(){if(dataArr[dataArr.length-1]){setDataArr([].concat(_toConsumableArray(dataArr),['']));}};var handleDelete=function handleDelete(index){setDataArr(dataArr.filter(function(_,subIndex){return index!==subIndex;}));};var handleShowAlert=function handleShowAlert(item){return item!==''&&!regex.test(item)&&arrItemType==='number';};return/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',marginBottom:10},children:[/*#__PURE__*/_jsx(\"label\",{style:{width:'100px'},children:label}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",size:\"small\",endIcon:/*#__PURE__*/_jsx(AddIcon,{}),className:\"addBtn\",onClick:handleAdd,children:\"more\"})]}),/*#__PURE__*/_jsx(\"div\",{style:{display:'flex',flexDirection:'column',gap:10,marginInline:50,padding:20,backgroundColor:'#eee',borderRadius:10},children:dataArr.map(function(item,index){return/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',gap:5},children:[/*#__PURE__*/_jsx(TextField,{value:item,onChange:function onChange(e){return handleChange(e.target.value,index);},label:helperText,size:\"small\",style:{width:'100%'}}),dataArr.length>1&&/*#__PURE__*/_jsx(DeleteIcon,{onClick:function onClick(){return handleDelete(index);},style:{cursor:'pointer',color:'#1976d2'}})]}),handleShowAlert(item)&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer.\"})]},index);})})]})});};export default AddStop;","map":{"version":3,"names":["AddIcon","DeleteIcon","Alert","Button","TextField","React","useEffect","useState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","regex","AddStop","_ref","label","onGetData","arrItemType","formData","onGetError","helperText","_useState","length","_useState2","_slicedToArray","dataArr","setDataArr","arr","newDataArr","map","item","test","push","Number","handleChange","value","index","_toConsumableArray","handleAdd","concat","handleDelete","filter","_","subIndex","handleShowAlert","children","style","display","alignItems","marginBottom","width","variant","size","endIcon","className","onClick","flexDirection","gap","marginInline","padding","backgroundColor","borderRadius","onChange","e","target","cursor","color","severity"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/components/addStop.js"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport { Alert, Button, TextField } from '@mui/material'\nimport React, { useEffect, useState } from 'react'\n\nconst regex = /^[1-9]\\d*$/\n\nconst AddStop = ({\n label,\n onGetData,\n arrItemType,\n formData,\n onGetError,\n helperText,\n}) => {\n const [dataArr, setDataArr] = useState(formData?.length ? formData : [''])\n const arr = []\n\n useEffect(() => {\n if (arrItemType === 'number') {\n const newDataArr = dataArr.map((item) => {\n if (item && regex.test(item)) {\n arr.push('true')\n return Number(item)\n }\n if (item && !regex.test(item)) arr.push('false')\n return item\n })\n onGetError(arr)\n onGetData(newDataArr)\n } else {\n onGetData(dataArr)\n }\n }, [dataArr])\n\n const handleChange = (value, index) => {\n const arr = [...dataArr]\n arr[index] = value\n setDataArr([...arr])\n }\n\n const handleAdd = () => {\n if (dataArr[dataArr.length - 1]) {\n setDataArr([...dataArr, ''])\n }\n }\n\n const handleDelete = (index) => {\n setDataArr(dataArr.filter((_, subIndex) => index !== subIndex))\n }\n\n const handleShowAlert = (item) => {\n return item !== '' && !regex.test(item) && arrItemType === 'number'\n }\n\n return (\n <>\n <div>\n <div\n style={{ display: 'flex', alignItems: 'center', marginBottom: 10 }}\n >\n <label style={{ width: '100px' }}>{label}</label>\n <Button\n variant=\"contained\"\n size=\"small\"\n endIcon={<AddIcon />}\n className=\"addBtn\"\n onClick={handleAdd}\n >\n more\n </Button>\n </div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 10,\n marginInline: 50,\n padding: 20,\n backgroundColor: '#eee',\n borderRadius: 10,\n }}\n >\n {dataArr.map((item, index) => (\n <div key={index}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 5 }}>\n <TextField\n value={item}\n onChange={(e) => handleChange(e.target.value, index)}\n label={helperText}\n size=\"small\"\n style={{ width: '100%' }}\n />\n {dataArr.length > 1 && (\n <DeleteIcon\n onClick={() => handleDelete(index)}\n style={{ cursor: 'pointer', color: '#1976d2' }}\n />\n )}\n </div>\n\n {handleShowAlert(item) && (\n <Alert severity=\"error\">Please enter an integer.</Alert>\n )}\n </div>\n ))}\n </div>\n </div>\n </>\n )\n}\n\nexport default AddStop\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}