xinference 0.12.1__py3-none-any.whl → 0.12.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xinference might be problematic. Click here for more details.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +34 -8
- xinference/client/restful/restful_client.py +4 -0
- xinference/core/event.py +5 -6
- xinference/core/model.py +8 -3
- xinference/core/scheduler.py +13 -3
- xinference/model/llm/llm_family.json +6 -2
- xinference/model/llm/llm_family_modelscope.json +6 -2
- xinference/model/llm/pytorch/chatglm.py +23 -0
- xinference/model/llm/pytorch/core.py +39 -49
- xinference/model/llm/pytorch/glm4v.py +11 -0
- xinference/model/llm/pytorch/internlm2.py +15 -0
- xinference/model/llm/pytorch/utils.py +46 -179
- xinference/model/llm/utils.py +14 -2
- xinference/model/rerank/core.py +35 -6
- xinference/types.py +28 -0
- xinference/web/ui/build/asset-manifest.json +6 -6
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/css/main.4bafd904.css +2 -0
- xinference/web/ui/build/static/css/main.4bafd904.css.map +1 -0
- xinference/web/ui/build/static/js/main.b80d9c08.js +3 -0
- xinference/web/ui/build/static/js/main.b80d9c08.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0c2fb5375667931c4a331c99e0d87dc145e8f327cea3f44d6e56f54c7c1d4020.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/131091b25d26b17cdca187d7542a21475c211138d900cf667682260e76ef9463.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/16537795de12c61903b6110c241f62a7855b2d0fc1e7c3d1faa347267f3a6893.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/17b8f071491402d70b146532358b1a612226e5dc7b3e8755a1322d27b4680cee.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/395409bd005e19d48b437c48d88e5126c7865ba9631fe98535333c952e383dc5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3da7d55e87882a4af923e187b1351160e34ca102f589086439c15131a227fb6e.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/43991bb67c3136863e6fb37f796466b12eb547a1465408cc77820fddafb3bed3.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/72bcecc71c5267250edeb89608859d449b586f13ff9923a5e70e7172976ec403.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{15e2cf8cd8d0989719b6349428ff576f9009ff4c2dcc52378be0bd938e82495e.json → 935efd2867664c58230378fdf2ff1ea85e58d853b7214014e20dfbca8dab7b05.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a7109d4425e3d94ca2726fc7020fd33bf5030afd4c9cf4bf71e21776cd70646a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c2abe75f04ad82fba68f35ed9cbe2e287762c876684fddccccfa73f739489b65.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f28b83886159d83b84f099b05d607a822dca4dd7f2d8aa6d56fe08bab0b5b086.json +1 -0
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/METADATA +1 -1
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/RECORD +41 -40
- xinference/web/ui/build/static/css/main.074e2b31.css +0 -2
- xinference/web/ui/build/static/css/main.074e2b31.css.map +0 -1
- xinference/web/ui/build/static/js/main.a58ff436.js +0 -3
- xinference/web/ui/build/static/js/main.a58ff436.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/10262a281dec3bc2b185f4385ceb6846626f52d41cb4d46c7c649e719f979d4d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2c63e940b945fd5817157e08a42b889b30d668ea4c91332f48ef2b1b9d26f520.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/3c2f277c93c5f1638e08db38df0d0fb4e58d1c5571aea03241a5c04ff4094704.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4135fe8745434cbce6438d1ebfa47422e0c77d884db4edc75c8bf32ea1d50621.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4de0a71074f9cbe1e7862750dcdd08cbc1bae7d9d9849a78b1783ca670017b3c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/762a75a62daf3bec2cfc97ec8612798493fb34ef87087dcad6aad64ab7f14345.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/7f3bdb3a48fa00c046c8b185acd4da6f2e2940a20dbd77f9373d60de3fd6633e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9cfd33238ca43e5bf9fc7e442690e8cc6027c73553db36de87e3597ed524ee4b.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e6eccc9aa641e7da833492e27846dc965f9750281420977dc84654ca6ed221e4.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f2f73bfdc13b12b02c8cbc4769b0b8e6367e9b6d8331c322d94318491a0b3653.json +0 -1
- /xinference/web/ui/build/static/js/{main.a58ff436.js.LICENSE.txt → main.b80d9c08.js.LICENSE.txt} +0 -0
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/LICENSE +0 -0
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/WHEEL +0 -0
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/entry_points.txt +0 -0
- {xinference-0.12.1.dist-info → xinference-0.12.2.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _asyncToGenerator from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import style from'./styles/launchModelStyle';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchModelComponent=function LaunchModelComponent(_ref){var modelType=_ref.modelType,gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];var _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState('all'),_useState6=_slicedToArray(_useState5,2),status=_useState6[0],setStatus=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),completeDeleteArr=_useState8[0],setCompleteDeleteArr=_useState8[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var handleChange=function handleChange(e){setSearchTerm(e.target.value);};var handleStatusChange=function handleStatusChange(event){setStatus(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())){return false;}if(completeDeleteArr.includes(registration.model_name)){registration.cache_status=Array.isArray(registration.cache_status)?[false]:false;}if(status&&status!=='all'){if(registration.cache_status&&!completeDeleteArr.includes(registration.model_name)){return true;}else{return false;}}return true;};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,registrations,builtinModels;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(isCallingApi||isUpdatingModel)){_context.next=2;break;}return _context.abrupt(\"return\");case 2:_context.prev=2;setIsCallingApi(true);_context.next=6;return fetcher(\"\".concat(endPoint,\"/v1/model_registrations/\").concat(modelType,\"?detailed=true\"),{method:'GET'});case 6:response=_context.sent;_context.next=9;return response.json();case 9:registrations=_context.sent;builtinModels=registrations.filter(function(v){return v.is_builtin;});setRegistrationData(builtinModels);_context.next=17;break;case 14:_context.prev=14;_context.t0=_context[\"catch\"](2);console.error('Error:',_context.t0);case 17:_context.prev=17;setIsCallingApi(false);return _context.finish(17);case 20:case\"end\":return _context.stop();}},_callee,null,[[2,14,17,20]]);}));return function update(){return _ref2.apply(this,arguments);};}();useEffect(function(){update();},[]);return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:'150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:\"Status\",onChange:handleStatusChange,value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:\"cached\"})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for \".concat(modelType,\" model name\"),value:searchTerm,onChange:handleChange,size:\"small\",hotkey:\"/\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,modelType:modelType,gpuAvailable:gpuAvailable,onHandleCompleteDelete:handleCompleteDelete},filteredRegistration.model_name);})})]});};export default LaunchModelComponent;","map":{"version":3,"names":["Box","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","ApiContext","fetcher","HotkeyFocusTextField","ModelCard","style","jsx","_jsx","jsxs","_jsxs","LaunchModelComponent","_ref","modelType","gpuAvailable","endPoint","_useState","_useState2","_slicedToArray","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","status","setStatus","_useState7","_useState8","completeDeleteArr","setCompleteDeleteArr","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","handleChange","e","target","value","handleStatusChange","event","filter","registration","modelName","model_name","toLowerCase","includes","cache_status","Array","isArray","handleCompleteDelete","concat","_toConsumableArray","update","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","registrations","builtinModels","wrap","_callee$","_context","prev","next","abrupt","method","sent","json","v","is_builtin","t0","console","error","finish","stop","apply","arguments","m","children","display","gridTemplateColumns","columnGap","margin","variant","id","labelId","label","onChange","size","sx","width","type","hotkey","map","filteredRegistration","url","modelData","onHandleCompleteDelete"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/LaunchModelComponent.js"],"sourcesContent":["import { Box, FormControl, InputLabel, MenuItem, Select } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\nimport style from './styles/launchModelStyle'\n\nconst LaunchModelComponent = ({ modelType, gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const [registrationData, setRegistrationData] = useState([])\n const [searchTerm, setSearchTerm] = useState('')\n const [status, setStatus] = useState('all')\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n const handleStatusChange = (event) => {\n setStatus(event.target.value)\n }\n\n const filter = (registration) => {\n if (!registration || typeof searchTerm !== 'string') return false\n const modelName = registration.model_name\n ? registration.model_name.toLowerCase()\n : ''\n if (!modelName.includes(searchTerm.toLowerCase())) {\n return false\n }\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.cache_status = Array.isArray(registration.cache_status)\n ? [false]\n : false\n }\n if (status && status !== 'all') {\n if (\n registration.cache_status &&\n !completeDeleteArr.includes(registration.model_name)\n ) {\n return true\n } else {\n return false\n }\n }\n return true\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = async () => {\n if (isCallingApi || isUpdatingModel) return\n\n try {\n setIsCallingApi(true)\n\n const response = await fetcher(\n `${endPoint}/v1/model_registrations/${modelType}?detailed=true`,\n {\n method: 'GET',\n }\n )\n\n const registrations = await response.json()\n\n const builtinModels = registrations.filter((v) => {\n return v.is_builtin\n })\n setRegistrationData(builtinModels)\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [])\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"select-status\">Status</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label=\"Status\"\n onChange={handleStatusChange}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"cached\">cached</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label={`Search for ${modelType} model name`}\n value={searchTerm}\n onChange={handleChange}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n modelType={modelType}\n gpuAvailable={gpuAvailable}\n onHandleCompleteDelete={handleCompleteDelete}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchModelComponent\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,Tab}from'@mui/material';import React,{useEffect}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import Title from'../../components/Title';import RegisterModelComponent from'./registerModel';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var RegisterModel=function RegisterModel(){var _React$useState=React.useState('/register_model/llm'),_React$useState2=_slicedToArray(_React$useState,2),tabValue=_React$useState2[0],setTabValue=_React$useState2[1];var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();useEffect(function(){if(cookie.token===''||cookie.token===undefined){return;}if(cookie.token!=='no_auth'&&!sessionStorage.getItem('token')){navigate('/login',{replace:true});return;}},[cookie.token]);return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsx(Title,{title:\"Register Model\"}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:tabValue,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsxs(TabList,{value:tabValue,onChange:function onChange(e,v){setTabValue(v);},\"aria-label\":\"tabs\",children:[/*#__PURE__*/_jsx(Tab,{label:\"Language Model\",value:\"/register_model/llm\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Model\",value:\"/register_model/embedding\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank Model\",value:\"/register_model/rerank\"}),/*#__PURE__*/_jsx(Tab,{label:\"Image Model\",value:\"/register_model/image\"}),/*#__PURE__*/_jsx(Tab,{label:\"Audio Model\",value:\"/register_model/audio\"})]})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/register_model/llm\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterModelComponent,{modelType:\"LLM\",customData:{version:1,model_name:'custom-llm',model_description:'This is a custom model description.',context_length:2048,model_lang:['en'],model_ability:['generate'],model_family:'',model_specs:[{model_uri:'/path/to/llama-2',model_size_in_billions:7,model_format:'pytorch',quantizations:['none']}],prompt_style:undefined}})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/register_model/embedding\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterModelComponent,{modelType:\"embedding\",customData:{model_name:'custom-embedding',dimensions:768,max_tokens:512,model_uri:'/path/to/embedding-model',language:['en']}})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/register_model/rerank\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterModelComponent,{modelType:\"rerank\",customData:{model_name:'custom-rerank',model_uri:'/path/to/rerank-model',language:['en']}})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/register_model/image\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterModelComponent,{modelType:\"image\",customData:{model_name:'custom-image',model_uri:'/path/to/image-model',model_family:'stable_diffusion',controlnet:[]}})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/register_model/audio\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterModelComponent,{modelType:\"audio\",customData:{model_name:'custom-audio',model_uri:'/path/to/audio-model',multilingual:false,model_family:'whisper'}})})]})]});};export default RegisterModel;","map":{"version":3,"names":["TabContext","TabList","TabPanel","Box","Tab","React","useEffect","useCookies","useNavigate","ErrorMessageSnackBar","Title","RegisterModelComponent","jsx","_jsx","jsxs","_jsxs","RegisterModel","_React$useState","useState","_React$useState2","_slicedToArray","tabValue","setTabValue","_useCookies","_useCookies2","cookie","navigate","token","undefined","sessionStorage","getItem","replace","m","children","title","value","sx","borderBottom","borderColor","onChange","e","v","label","padding","modelType","customData","version","model_name","model_description","context_length","model_lang","model_ability","model_family","model_specs","model_uri","model_size_in_billions","model_format","quantizations","prompt_style","dimensions","max_tokens","language","controlnet","multilingual"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/index.js"],"sourcesContent":["import { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Box, Tab } from '@mui/material'\nimport React, { useEffect } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport Title from '../../components/Title'\nimport RegisterModelComponent from './registerModel'\n\nconst RegisterModel = () => {\n const [tabValue, setTabValue] = React.useState('/register_model/llm')\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n\n useEffect(() => {\n if (cookie.token === '' || cookie.token === undefined) {\n return\n }\n if (cookie.token !== 'no_auth' && !sessionStorage.getItem('token')) {\n navigate('/login', { replace: true })\n return\n }\n }, [cookie.token])\n\n return (\n <Box m=\"20px\">\n <Title title=\"Register Model\" />\n <ErrorMessageSnackBar />\n <TabContext value={tabValue}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n value={tabValue}\n onChange={(e, v) => {\n setTabValue(v)\n }}\n aria-label=\"tabs\"\n >\n <Tab label=\"Language Model\" value=\"/register_model/llm\" />\n <Tab label=\"Embedding Model\" value=\"/register_model/embedding\" />\n <Tab label=\"Rerank Model\" value=\"/register_model/rerank\" />\n <Tab label=\"Image Model\" value=\"/register_model/image\" />\n <Tab label=\"Audio Model\" value=\"/register_model/audio\" />\n </TabList>\n </Box>\n <TabPanel value=\"/register_model/llm\" sx={{ padding: 0 }}>\n <RegisterModelComponent\n modelType=\"LLM\"\n customData={{\n version: 1,\n model_name: 'custom-llm',\n model_description: 'This is a custom model description.',\n context_length: 2048,\n model_lang: ['en'],\n model_ability: ['generate'],\n model_family: '',\n model_specs: [\n {\n model_uri: '/path/to/llama-2',\n model_size_in_billions: 7,\n model_format: 'pytorch',\n quantizations: ['none'],\n },\n ],\n prompt_style: undefined,\n }}\n />\n </TabPanel>\n <TabPanel value=\"/register_model/embedding\" sx={{ padding: 0 }}>\n <RegisterModelComponent\n modelType=\"embedding\"\n customData={{\n model_name: 'custom-embedding',\n dimensions: 768,\n max_tokens: 512,\n model_uri: '/path/to/embedding-model',\n language: ['en'],\n }}\n />\n </TabPanel>\n <TabPanel value=\"/register_model/rerank\" sx={{ padding: 0 }}>\n <RegisterModelComponent\n modelType=\"rerank\"\n customData={{\n model_name: 'custom-rerank',\n model_uri: '/path/to/rerank-model',\n language: ['en'],\n }}\n />\n </TabPanel>\n <TabPanel value=\"/register_model/image\" sx={{ padding: 0 }}>\n <RegisterModelComponent\n modelType=\"image\"\n customData={{\n model_name: 'custom-image',\n model_uri: '/path/to/image-model',\n model_family: 'stable_diffusion',\n controlnet: [],\n }}\n />\n </TabPanel>\n <TabPanel value=\"/register_model/audio\" sx={{ padding: 0 }}>\n <RegisterModelComponent\n modelType=\"audio\"\n customData={{\n model_name: 'custom-audio',\n model_uri: '/path/to/audio-model',\n multilingual: false,\n model_family: 'whisper',\n }}\n />\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default RegisterModel\n"],"mappings":"6IAAA,OAASA,UAAU,CAAEC,OAAO,CAAEC,QAAQ,KAAQ,UAAU,CACxD,OAASC,GAAG,CAAEC,GAAG,KAAQ,eAAe,CACxC,MAAO,CAAAC,KAAK,EAAIC,SAAS,KAAQ,OAAO,CACxC,OAASC,UAAU,KAAQ,cAAc,CACzC,OAASC,WAAW,KAAQ,kBAAkB,CAE9C,MAAO,CAAAC,oBAAoB,KAAM,uCAAuC,CACxE,MAAO,CAAAC,KAAK,KAAM,wBAAwB,CAC1C,MAAO,CAAAC,sBAAsB,KAAM,iBAAiB,QAAAC,GAAA,IAAAC,IAAA,gCAAAC,IAAA,IAAAC,KAAA,yBAEpD,GAAM,CAAAC,aAAa,CAAG,QAAhB,CAAAA,aAAaA,CAAA,CAAS,CAC1B,IAAAC,eAAA,CAAgCZ,KAAK,CAACa,QAAQ,CAAC,qBAAqB,CAAC,CAAAC,gBAAA,CAAAC,cAAA,CAAAH,eAAA,IAA9DI,QAAQ,CAAAF,gBAAA,IAAEG,WAAW,CAAAH,gBAAA,IAC5B,IAAAI,WAAA,CAAiBhB,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAAiB,YAAA,CAAAJ,cAAA,CAAAG,WAAA,IAA/BE,MAAM,CAAAD,YAAA,IACb,GAAM,CAAAE,QAAQ,CAAGlB,WAAW,CAAC,CAAC,CAE9BF,SAAS,CAAC,UAAM,CACd,GAAImB,MAAM,CAACE,KAAK,GAAK,EAAE,EAAIF,MAAM,CAACE,KAAK,GAAKC,SAAS,CAAE,CACrD,OACF,CACA,GAAIH,MAAM,CAACE,KAAK,GAAK,SAAS,EAAI,CAACE,cAAc,CAACC,OAAO,CAAC,OAAO,CAAC,CAAE,CAClEJ,QAAQ,CAAC,QAAQ,CAAE,CAAEK,OAAO,CAAE,IAAK,CAAC,CAAC,CACrC,OACF,CACF,CAAC,CAAE,CAACN,MAAM,CAACE,KAAK,CAAC,CAAC,CAElB,mBACEZ,KAAA,CAACZ,GAAG,EAAC6B,CAAC,CAAC,MAAM,CAAAC,QAAA,eACXpB,IAAA,CAACH,KAAK,EAACwB,KAAK,CAAC,gBAAgB,CAAE,CAAC,cAChCrB,IAAA,CAACJ,oBAAoB,GAAE,CAAC,cACxBM,KAAA,CAACf,UAAU,EAACmC,KAAK,CAAEd,QAAS,CAAAY,QAAA,eAC1BpB,IAAA,CAACV,GAAG,EAACiC,EAAE,CAAE,CAAEC,YAAY,CAAE,CAAC,CAAEC,WAAW,CAAE,SAAU,CAAE,CAAAL,QAAA,cACnDlB,KAAA,CAACd,OAAO,EACNkC,KAAK,CAAEd,QAAS,CAChBkB,QAAQ,CAAE,SAAAA,SAACC,CAAC,CAAEC,CAAC,CAAK,CAClBnB,WAAW,CAACmB,CAAC,CAAC,CAChB,CAAE,CACF,aAAW,MAAM,CAAAR,QAAA,eAEjBpB,IAAA,CAACT,GAAG,EAACsC,KAAK,CAAC,gBAAgB,CAACP,KAAK,CAAC,qBAAqB,CAAE,CAAC,cAC1DtB,IAAA,CAACT,GAAG,EAACsC,KAAK,CAAC,iBAAiB,CAACP,KAAK,CAAC,2BAA2B,CAAE,CAAC,cACjEtB,IAAA,CAACT,GAAG,EAACsC,KAAK,CAAC,cAAc,CAACP,KAAK,CAAC,wBAAwB,CAAE,CAAC,cAC3DtB,IAAA,CAACT,GAAG,EAACsC,KAAK,CAAC,aAAa,CAACP,KAAK,CAAC,uBAAuB,CAAE,CAAC,cACzDtB,IAAA,CAACT,GAAG,EAACsC,KAAK,CAAC,aAAa,CAACP,KAAK,CAAC,uBAAuB,CAAE,CAAC,EAClD,CAAC,CACP,CAAC,cACNtB,IAAA,CAACX,QAAQ,EAACiC,KAAK,CAAC,qBAAqB,CAACC,EAAE,CAAE,CAAEO,OAAO,CAAE,CAAE,CAAE,CAAAV,QAAA,cACvDpB,IAAA,CAACF,sBAAsB,EACrBiC,SAAS,CAAC,KAAK,CACfC,UAAU,CAAE,CACVC,OAAO,CAAE,CAAC,CACVC,UAAU,CAAE,YAAY,CACxBC,iBAAiB,CAAE,qCAAqC,CACxDC,cAAc,CAAE,IAAI,CACpBC,UAAU,CAAE,CAAC,IAAI,CAAC,CAClBC,aAAa,CAAE,CAAC,UAAU,CAAC,CAC3BC,YAAY,CAAE,EAAE,CAChBC,WAAW,CAAE,CACX,CACEC,SAAS,CAAE,kBAAkB,CAC7BC,sBAAsB,CAAE,CAAC,CACzBC,YAAY,CAAE,SAAS,CACvBC,aAAa,CAAE,CAAC,MAAM,CACxB,CAAC,CACF,CACDC,YAAY,CAAE9B,SAChB,CAAE,CACH,CAAC,CACM,CAAC,cACXf,IAAA,CAACX,QAAQ,EAACiC,KAAK,CAAC,2BAA2B,CAACC,EAAE,CAAE,CAAEO,OAAO,CAAE,CAAE,CAAE,CAAAV,QAAA,cAC7DpB,IAAA,CAACF,sBAAsB,EACrBiC,SAAS,CAAC,WAAW,CACrBC,UAAU,CAAE,CACVE,UAAU,CAAE,kBAAkB,CAC9BY,UAAU,CAAE,GAAG,CACfC,UAAU,CAAE,GAAG,CACfN,SAAS,CAAE,0BAA0B,CACrCO,QAAQ,CAAE,CAAC,IAAI,CACjB,CAAE,CACH,CAAC,CACM,CAAC,cACXhD,IAAA,CAACX,QAAQ,EAACiC,KAAK,CAAC,wBAAwB,CAACC,EAAE,CAAE,CAAEO,OAAO,CAAE,CAAE,CAAE,CAAAV,QAAA,cAC1DpB,IAAA,CAACF,sBAAsB,EACrBiC,SAAS,CAAC,QAAQ,CAClBC,UAAU,CAAE,CACVE,UAAU,CAAE,eAAe,CAC3BO,SAAS,CAAE,uBAAuB,CAClCO,QAAQ,CAAE,CAAC,IAAI,CACjB,CAAE,CACH,CAAC,CACM,CAAC,cACXhD,IAAA,CAACX,QAAQ,EAACiC,KAAK,CAAC,uBAAuB,CAACC,EAAE,CAAE,CAAEO,OAAO,CAAE,CAAE,CAAE,CAAAV,QAAA,cACzDpB,IAAA,CAACF,sBAAsB,EACrBiC,SAAS,CAAC,OAAO,CACjBC,UAAU,CAAE,CACVE,UAAU,CAAE,cAAc,CAC1BO,SAAS,CAAE,sBAAsB,CACjCF,YAAY,CAAE,kBAAkB,CAChCU,UAAU,CAAE,EACd,CAAE,CACH,CAAC,CACM,CAAC,cACXjD,IAAA,CAACX,QAAQ,EAACiC,KAAK,CAAC,uBAAuB,CAACC,EAAE,CAAE,CAAEO,OAAO,CAAE,CAAE,CAAE,CAAAV,QAAA,cACzDpB,IAAA,CAACF,sBAAsB,EACrBiC,SAAS,CAAC,OAAO,CACjBC,UAAU,CAAE,CACVE,UAAU,CAAE,cAAc,CAC1BO,SAAS,CAAE,sBAAsB,CACjCS,YAAY,CAAE,KAAK,CACnBX,YAAY,CAAE,SAChB,CAAE,CACH,CAAC,CACM,CAAC,EACD,CAAC,EACV,CAAC,CAEV,CAAC,CAED,cAAe,CAAApC,aAAa"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"var style={display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'};export default style;","map":{"version":3,"names":["style","display","gridTemplateColumns","paddingLeft","gridGap"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/styles/launchModelStyle.js"],"sourcesContent":["const style = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n gridGap: '2rem 0rem',\n}\n\nexport default style\n"],"mappings":"AAAA,GAAM,CAAAA,KAAK,CAAG,CACZC,OAAO,CAAE,MAAM,CACfC,mBAAmB,CAAE,uCAAuC,CAC5DC,WAAW,CAAE,MAAM,CACnBC,OAAO,CAAE,WACX,CAAC,CAED,cAAe,CAAAJ,KAAK"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.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{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,FormControl,Tab}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var customType=['llm','embedding','rerank','image','audio'];var LaunchCustom=function LaunchCustom(_ref){var gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;// States used for filtering\nvar _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState(sessionStorage.getItem('subType')),_useState6=_slicedToArray(_useState5,2),value=_useState6[0],setValue=_useState6[1];var navigate=useNavigate();var handleTabChange=function handleTabChange(_,newValue){var type=newValue.split('/')[3]==='llm'?'LLM':newValue.split('/')[3];getData(type);setValue(newValue);navigate(newValue);sessionStorage.setItem('subType',newValue);};var handleSearchChange=function handleSearchChange(event){setSearchTerm(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';return modelName.includes(searchTerm.toLowerCase());};useEffect(function(){var type=sessionStorage.getItem('subType').split('/')[3];getData(type==='llm'?'LLM':type);},[]);var getData=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(type){var response,registrations,customRegistrations,newData;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(isCallingApi||isUpdatingModel)){_context2.next=2;break;}return _context2.abrupt(\"return\");case 2:_context2.prev=2;setIsCallingApi(true);_context2.next=6;return fetcher(\"\".concat(endPoint,\"/v1/model_registrations/\").concat(type),{method:'GET'});case 6:response=_context2.sent;_context2.next=9;return response.json();case 9:registrations=_context2.sent;customRegistrations=registrations.filter(function(data){return!data.is_builtin;});_context2.next=13;return Promise.all(customRegistrations.map(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(registration){var desc;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetcher(\"\".concat(endPoint,\"/v1/model_registrations/\").concat(type,\"/\").concat(registration.model_name),{method:'GET'});case 2:desc=_context.sent;_context.t0=_objectSpread;_context.t1=_objectSpread;_context.t2={};_context.next=8;return desc.json();case 8:_context.t3=_context.sent;_context.t4=(0,_context.t1)(_context.t2,_context.t3);_context.t5={};_context.t6={is_builtin:registration.is_builtin};return _context.abrupt(\"return\",(0,_context.t0)(_context.t4,_context.t5,_context.t6));case 13:case\"end\":return _context.stop();}},_callee);}));return function(_x2){return _ref3.apply(this,arguments);};}()));case 13:newData=_context2.sent;setRegistrationData(newData);_context2.next=20;break;case 17:_context2.prev=17;_context2.t0=_context2[\"catch\"](2);console.error('Error:',_context2.t0);case 20:_context2.prev=20;setIsCallingApi(false);return _context2.finish(20);case 23:case\"end\":return _context2.stop();}},_callee2,null,[[2,17,20,23]]);}));return function getData(_x){return _ref2.apply(this,arguments);};}();var style={display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',paddingBottom:'2rem',gridGap:'2rem 0rem'};return/*#__PURE__*/_jsx(Box,{m:\"20px\",children:/*#__PURE__*/_jsxs(TabContext,{value:value,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsxs(TabList,{value:value,onChange:handleTabChange,\"aria-label\":\"tabs\",children:[/*#__PURE__*/_jsx(Tab,{label:\"Language Models\",value:\"/launch_model/custom/llm\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Models\",value:\"/launch_model/custom/embedding\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank Models\",value:\"/launch_model/custom/rerank\"}),/*#__PURE__*/_jsx(Tab,{label:\"Image Models\",value:\"/launch_model/custom/image\"}),/*#__PURE__*/_jsx(Tab,{label:\"Audio Models\",value:\"/launch_model/custom/audio\"})]})}),customType.map(function(item){return/*#__PURE__*/_jsxs(TabPanel,{value:\"/launch_model/custom/\".concat(item),sx:{padding:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:'grid',gridTemplateColumns:'1fr',margin:'30px 2rem'},children:/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for custom model name\",value:searchTerm,onChange:handleSearchChange,size:\"small\",hotkey:\"/\"})})}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,gpuAvailable:gpuAvailable,is_custom:true,modelType:item==='llm'?'LLM':item},filteredRegistration.model_name);})})]},item);})]})});};export default LaunchCustom;","map":{"version":3,"names":["TabContext","TabList","TabPanel","Box","FormControl","Tab","React","useContext","useEffect","useState","useNavigate","ApiContext","fetcher","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","customType","LaunchCustom","_ref","gpuAvailable","endPoint","_useState","_useState2","_slicedToArray","registrationData","setRegistrationData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","sessionStorage","getItem","_useState6","value","setValue","navigate","handleTabChange","_","newValue","type","split","getData","setItem","handleSearchChange","event","target","filter","registration","modelName","model_name","toLowerCase","includes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","response","registrations","customRegistrations","newData","wrap","_callee2$","_context2","prev","next","abrupt","concat","method","sent","json","data","is_builtin","Promise","all","map","_ref3","_callee","desc","_callee$","_context","t0","_objectSpread","t1","t2","t3","t4","t5","t6","stop","_x2","apply","arguments","console","error","finish","_x","style","display","gridTemplateColumns","paddingLeft","paddingBottom","gridGap","m","children","sx","borderBottom","borderColor","onChange","label","item","padding","margin","variant","id","size","hotkey","filteredRegistration","url","modelData","is_custom","modelType"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/launchCustom.js"],"sourcesContent":["import { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Box, FormControl, Tab } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst customType = ['llm', 'embedding', 'rerank', 'image', 'audio']\n\nconst LaunchCustom = ({ gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const [registrationData, setRegistrationData] = useState([])\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n\n // States used for filtering\n const [searchTerm, setSearchTerm] = useState('')\n const [value, setValue] = useState(sessionStorage.getItem('subType'))\n\n const navigate = useNavigate()\n const handleTabChange = (_, newValue) => {\n const type =\n newValue.split('/')[3] === 'llm' ? 'LLM' : newValue.split('/')[3]\n getData(type)\n setValue(newValue)\n navigate(newValue)\n sessionStorage.setItem('subType', newValue)\n }\n\n const handleSearchChange = (event) => {\n setSearchTerm(event.target.value)\n }\n\n const filter = (registration) => {\n if (!registration || typeof searchTerm !== 'string') return false\n const modelName = registration.model_name\n ? registration.model_name.toLowerCase()\n : ''\n return modelName.includes(searchTerm.toLowerCase())\n }\n\n useEffect(() => {\n const type = sessionStorage.getItem('subType').split('/')[3]\n getData(type === 'llm' ? 'LLM' : type)\n }, [])\n\n const getData = async (type) => {\n if (isCallingApi || isUpdatingModel) return\n try {\n setIsCallingApi(true)\n const response = await fetcher(\n `${endPoint}/v1/model_registrations/${type}`,\n {\n method: 'GET',\n }\n )\n const registrations = await response.json()\n const customRegistrations = registrations.filter(\n (data) => !data.is_builtin\n )\n\n const newData = await Promise.all(\n customRegistrations.map(async (registration) => {\n const desc = await fetcher(\n `${endPoint}/v1/model_registrations/${type}/${registration.model_name}`,\n {\n method: 'GET',\n }\n )\n\n return {\n ...(await desc.json()),\n is_builtin: registration.is_builtin,\n }\n })\n )\n setRegistrationData(newData)\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n const style = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n paddingBottom: '2rem',\n gridGap: '2rem 0rem',\n }\n\n return (\n <Box m=\"20px\">\n <TabContext value={value}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList value={value} onChange={handleTabChange} aria-label=\"tabs\">\n <Tab label=\"Language Models\" value=\"/launch_model/custom/llm\" />\n <Tab\n label=\"Embedding Models\"\n value=\"/launch_model/custom/embedding\"\n />\n <Tab label=\"Rerank Models\" value=\"/launch_model/custom/rerank\" />\n <Tab label=\"Image Models\" value=\"/launch_model/custom/image\" />\n <Tab label=\"Audio Models\" value=\"/launch_model/custom/audio\" />\n </TabList>\n </Box>\n {customType.map((item) => (\n <TabPanel\n key={item}\n value={`/launch_model/custom/${item}`}\n sx={{ padding: 0 }}\n >\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '1fr',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label=\"Search for custom model name\"\n value={searchTerm}\n onChange={handleSearchChange}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n gpuAvailable={gpuAvailable}\n is_custom={true}\n modelType={item === 'llm' ? 'LLM' : item}\n />\n ))}\n </div>\n </TabPanel>\n ))}\n </TabContext>\n </Box>\n )\n}\n\nexport default LaunchCustom\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -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 _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import AddIcon from'@mui/icons-material/Add';import DeleteIcon from'@mui/icons-material/Delete';import{Alert,Box,Button,FormControlLabel,Radio,RadioGroup,TextField,Tooltip}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 modelFormatArr=[{value:'pytorch',label:'PyTorch'},{value:'ggmlv3',label:'GGML'},{value:'ggufv2',label:'GGUF'},{value:'gptq',label:'GPTQ'},{value:'awq',label:'AWQ'}];var AddModelSpecs=function AddModelSpecs(_ref){var formData=_ref.formData,onGetArr=_ref.onGetArr,scrollRef=_ref.scrollRef;var _useState=useState(1),_useState2=_slicedToArray(_useState,2),count=_useState2[0],setCount=_useState2[1];var _useState3=useState([_objectSpread({id:0},formData)]),_useState4=_slicedToArray(_useState3,2),specsArr=_useState4[0],setSpecsArr=_useState4[1];var _useState5=useState('/path/to/llama-2'),_useState6=_slicedToArray(_useState5,2),path=_useState6[0],setPath=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),modelSizeAlertId=_useState8[0],setModelSizeAlertId=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),quantizationAlertId=_useState10[0],setQuantizationAlertId=_useState10[1];var _useState11=useState(false),_useState12=_slicedToArray(_useState11,2),isError=_useState12[0],setIsError=_useState12[1];var _useState13=useState(1),_useState14=_slicedToArray(_useState13,2),arrLength=_useState14[0],setArrLength=_useState14[1];useEffect(function(){var arr=specsArr.map(function(item){var uri=item.model_uri,size=item.model_size_in_billions,modelFormat=item.model_format,quantizations=item.quantizations,model_file_name_template=item.model_file_name_template;var handleSize=parseInt(size)===parseFloat(size)?Number(size):size.split('.').join('_');var handleQuantization=quantizations;if(modelFormat==='pytorch'){handleQuantization=['none'];}else if(handleQuantization[0]===''&&(modelFormat==='ggmlv3'||modelFormat==='ggufv2')){handleQuantization=['default'];}return{model_uri:uri,model_size_in_billions:handleSize,model_format:modelFormat,quantizations:handleQuantization,model_file_name_template:model_file_name_template};});setIsError(true);if(modelSizeAlertId.length===0&&quantizationAlertId.length===0){setIsError(false);}onGetArr(arr,isError);setArrLength(specsArr.length);arrLength<specsArr.length?handleScrollBottom():'';},[specsArr,isError]);var handleAddSpecs=function handleAddSpecs(){setCount(count+1);var item={id:count,model_uri:'/path/to/llama-2',model_size_in_billions:7,model_format:'pytorch',quantizations:[]};setSpecsArr([].concat(_toConsumableArray(specsArr),[item]));};var handleUpdateSpecsArr=function handleUpdateSpecsArr(index,type,newValue){setSpecsArr(specsArr.map(function(item,subIndex){if(subIndex===index){if(type==='quantizations'){return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,[newValue]));}else if(type==='model_format'){if(newValue==='ggmlv3'||newValue==='ggufv2'){var _getPathComponents=getPathComponents(path),baseDir=_getPathComponents.baseDir,filename=_getPathComponents.filename;var obj=_objectSpread(_objectSpread({},item),{},{model_format:newValue,quantizations:[''],model_uri:baseDir,model_file_name_template:filename});return obj;}else{var _ref2;var id=item.id,model_size_in_billions=item.model_size_in_billions,model_format=item.model_format;return _ref2={id:id,model_uri:path,model_size_in_billions:model_size_in_billions,model_format:model_format},_defineProperty(_ref2,type,newValue),_defineProperty(_ref2,\"quantizations\",['']),_ref2;}}else if(type==='model_uri'){setPath(newValue);if(item.model_format==='ggmlv3'||item.model_format==='ggufv2'){var _getPathComponents2=getPathComponents(newValue),_baseDir=_getPathComponents2.baseDir,_filename=_getPathComponents2.filename;var _obj=_objectSpread(_objectSpread({},item),{},{model_uri:_baseDir,model_file_name_template:_filename});return _obj;}else{return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,newValue));}}else{return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,newValue));}}return item;}));};var handleDeleteSpecs=function handleDeleteSpecs(index){setSpecsArr(specsArr.filter(function(_,subIndex){return index!==subIndex;}));};var getPathComponents=function getPathComponents(path){var normalizedPath=path.replace(/\\\\/g,'/');var baseDir=normalizedPath.substring(0,normalizedPath.lastIndexOf('/'));var filename=normalizedPath.substring(normalizedPath.lastIndexOf('/')+1);return{baseDir:baseDir,filename:filename};};var handleModelSize=function handleModelSize(index,value,id){setModelSizeAlertId(modelSizeAlertId.filter(function(item){return item!==id;}));handleUpdateSpecsArr(index,'model_size_in_billions',value);if(value!==''&&(!Number(value)||Number(value)<=0)){var modelSizeAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(modelSizeAlertId),[id])));setModelSizeAlertId(modelSizeAlertIdArr);}};var handleQuantization=function handleQuantization(model_format,index,value,id){setQuantizationAlertId(quantizationAlertId.filter(function(item){return item!==id;}));handleUpdateSpecsArr(index,'quantizations',value);if((model_format==='gptq'||model_format==='awq')&&value===''){var quantizationAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(quantizationAlertId),[id])));setQuantizationAlertId(quantizationAlertIdArr);}};var handleScrollBottom=function handleScrollBottom(){scrollRef.current.scrollTo({top:scrollRef.current.scrollHeight,behavior:'smooth'});};return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:{marginBottom:'20px'},children:\"Model Specs\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",size:\"small\",endIcon:/*#__PURE__*/_jsx(AddIcon,{}),className:\"addBtn\",onClick:handleAddSpecs,children:\"more\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"specs_container\",children:specsArr.map(function(item,index){return/*#__PURE__*/_jsxs(\"div\",{className:\"item\",children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:\"Model Format\"}),/*#__PURE__*/_jsx(RadioGroup,{value:item.model_format,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_format',e.target.value);if(e.target.value==='gptq'||e.target.value==='awq'){var quantizationAlertIdArr=Array.from(new Set([].concat(_toConsumableArray(quantizationAlertId),[item.id])));setQuantizationAlertId(quantizationAlertIdArr);}},children:/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:modelFormatArr.map(function(item){return/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:item.value,control:/*#__PURE__*/_jsx(Radio,{}),label:item.label})},item.value);})})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{error:item.model_uri!==''?false:true,style:{minWidth:'60%'},label:\"Model Path\",size:\"small\",value:path,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_uri',e.target.value);},helperText:\"For PyTorch, provide the model directory. For GGML/GGUF, provide the model file path.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{error:Number(item.model_size_in_billions)>0?false:true,label:\"Model Size in Billions\",size:\"small\",value:item.model_size_in_billions,onChange:function onChange(e){handleModelSize(index,e.target.value,item.id);}}),modelSizeAlertId.includes(item.id)&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter a number greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),item.model_format!=='pytorch'&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{style:{minWidth:'60%'},label:item.model_format==='gptq'||item.model_format==='awq'?'Quantization':'Quantization (Optional)',size:\"small\",value:item.quantizations[0],onChange:function onChange(e){handleQuantization(item.model_format,index,e.target.value,item.id);},helperText:item.model_format==='gptq'||item.model_format==='awq'?'For GPTQ/AWQ models, please be careful to fill in the quantization corresponding to the model you want to register.':''}),item.model_format!=='ggmlv3'&&item.model_format!=='ggufv2'&&quantizationAlertId.includes(item.id)&&item.quantizations[0]==''&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Quantization cannot be left empty.\"})]}),specsArr.length>1&&/*#__PURE__*/_jsx(Tooltip,{title:\"Delete specs\",placement:\"top\",children:/*#__PURE__*/_jsx(\"div\",{className:\"deleteBtn\",onClick:function onClick(){return handleDeleteSpecs(index);},children:/*#__PURE__*/_jsx(DeleteIcon,{className:\"deleteIcon\"})})})]},item.id);})})]});};export default AddModelSpecs;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',alignItems:'center',width:'100%'}};","map":{"version":3,"names":["AddIcon","DeleteIcon","Alert","Box","Button","FormControlLabel","Radio","RadioGroup","TextField","Tooltip","React","useEffect","useState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","modelFormatArr","value","label","AddModelSpecs","_ref","formData","onGetArr","scrollRef","_useState","_useState2","_slicedToArray","count","setCount","_useState3","_objectSpread","id","_useState4","specsArr","setSpecsArr","_useState5","_useState6","path","setPath","_useState7","_useState8","modelSizeAlertId","setModelSizeAlertId","_useState9","_useState10","quantizationAlertId","setQuantizationAlertId","_useState11","_useState12","isError","setIsError","_useState13","_useState14","arrLength","setArrLength","arr","map","item","uri","model_uri","size","model_size_in_billions","modelFormat","model_format","quantizations","model_file_name_template","handleSize","parseInt","parseFloat","Number","split","join","handleQuantization","length","handleScrollBottom","handleAddSpecs","concat","_toConsumableArray","handleUpdateSpecsArr","index","type","newValue","subIndex","_defineProperty","_getPathComponents","getPathComponents","baseDir","filename","obj","_ref2","_getPathComponents2","handleDeleteSpecs","filter","_","normalizedPath","replace","substring","lastIndexOf","handleModelSize","modelSizeAlertIdArr","Array","from","Set","quantizationAlertIdArr","current","scrollTo","top","scrollHeight","behavior","children","style","marginBottom","variant","endIcon","className","onClick","paddingLeft","onChange","e","target","sx","styles","checkboxWrapper","marginLeft","control","padding","error","minWidth","helperText","includes","severity","title","placement","baseFormControl","width","margin","display","flexWrap","alignItems"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/components/addModelSpecs.js"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport {\n Alert,\n Box,\n Button,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport React, { useEffect, useState } from 'react'\n\nconst modelFormatArr = [\n { value: 'pytorch', label: 'PyTorch' },\n { value: 'ggmlv3', label: 'GGML' },\n { value: 'ggufv2', label: 'GGUF' },\n { value: 'gptq', label: 'GPTQ' },\n { value: 'awq', label: 'AWQ' },\n]\n\nconst AddModelSpecs = ({ formData, onGetArr, scrollRef }) => {\n const [count, setCount] = useState(1)\n const [specsArr, setSpecsArr] = useState([\n {\n id: 0,\n ...formData,\n },\n ])\n const [path, setPath] = useState('/path/to/llama-2')\n const [modelSizeAlertId, setModelSizeAlertId] = useState([])\n const [quantizationAlertId, setQuantizationAlertId] = useState([])\n const [isError, setIsError] = useState(false)\n const [arrLength, setArrLength] = useState(1)\n\n useEffect(() => {\n const arr = specsArr.map((item) => {\n const {\n model_uri: uri,\n model_size_in_billions: size,\n model_format: modelFormat,\n quantizations,\n model_file_name_template,\n } = item\n const handleSize =\n parseInt(size) === parseFloat(size)\n ? Number(size)\n : size.split('.').join('_')\n\n let handleQuantization = quantizations\n if (modelFormat === 'pytorch') {\n handleQuantization = ['none']\n } else if (\n handleQuantization[0] === '' &&\n (modelFormat === 'ggmlv3' || modelFormat === 'ggufv2')\n ) {\n handleQuantization = ['default']\n }\n\n return {\n model_uri: uri,\n model_size_in_billions: handleSize,\n model_format: modelFormat,\n quantizations: handleQuantization,\n model_file_name_template,\n }\n })\n setIsError(true)\n if (modelSizeAlertId.length === 0 && quantizationAlertId.length === 0) {\n setIsError(false)\n }\n onGetArr(arr, isError)\n setArrLength(specsArr.length)\n arrLength < specsArr.length ? handleScrollBottom() : ''\n }, [specsArr, isError])\n\n const handleAddSpecs = () => {\n setCount(count + 1)\n const item = {\n id: count,\n model_uri: '/path/to/llama-2',\n model_size_in_billions: 7,\n model_format: 'pytorch',\n quantizations: [],\n }\n setSpecsArr([...specsArr, item])\n }\n\n const handleUpdateSpecsArr = (index, type, newValue) => {\n setSpecsArr(\n specsArr.map((item, subIndex) => {\n if (subIndex === index) {\n if (type === 'quantizations') {\n return { ...item, [type]: [newValue] }\n } else if (type === 'model_format') {\n if (newValue === 'ggmlv3' || newValue === 'ggufv2') {\n const { baseDir, filename } = getPathComponents(path)\n const obj = {\n ...item,\n model_format: newValue,\n quantizations: [''],\n model_uri: baseDir,\n model_file_name_template: filename,\n }\n return obj\n } else {\n const { id, model_size_in_billions, model_format } = item\n return {\n id,\n model_uri: path,\n model_size_in_billions,\n model_format,\n [type]: newValue,\n quantizations: [''],\n }\n }\n } else if (type === 'model_uri') {\n setPath(newValue)\n if (\n item.model_format === 'ggmlv3' ||\n item.model_format === 'ggufv2'\n ) {\n const { baseDir, filename } = getPathComponents(newValue)\n const obj = {\n ...item,\n model_uri: baseDir,\n model_file_name_template: filename,\n }\n return obj\n } else {\n return { ...item, [type]: newValue }\n }\n } else {\n return { ...item, [type]: newValue }\n }\n }\n return item\n })\n )\n }\n\n const handleDeleteSpecs = (index) => {\n setSpecsArr(specsArr.filter((_, subIndex) => index !== subIndex))\n }\n\n const getPathComponents = (path) => {\n const normalizedPath = path.replace(/\\\\/g, '/')\n const baseDir = normalizedPath.substring(0, normalizedPath.lastIndexOf('/'))\n const filename = normalizedPath.substring(\n normalizedPath.lastIndexOf('/') + 1\n )\n return { baseDir, filename }\n }\n\n const handleModelSize = (index, value, id) => {\n setModelSizeAlertId(modelSizeAlertId.filter((item) => item !== id))\n handleUpdateSpecsArr(index, 'model_size_in_billions', value)\n if (value !== '' && (!Number(value) || Number(value) <= 0)) {\n const modelSizeAlertIdArr = Array.from(new Set([...modelSizeAlertId, id]))\n setModelSizeAlertId(modelSizeAlertIdArr)\n }\n }\n\n const handleQuantization = (model_format, index, value, id) => {\n setQuantizationAlertId(quantizationAlertId.filter((item) => item !== id))\n handleUpdateSpecsArr(index, 'quantizations', value)\n if ((model_format === 'gptq' || model_format === 'awq') && value === '') {\n const quantizationAlertIdArr = Array.from(\n new Set([...quantizationAlertId, id])\n )\n setQuantizationAlertId(quantizationAlertIdArr)\n }\n }\n\n const handleScrollBottom = () => {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n return (\n <>\n <div>\n <label style={{ marginBottom: '20px' }}>Model Specs</label>\n <Button\n variant=\"contained\"\n size=\"small\"\n endIcon={<AddIcon />}\n className=\"addBtn\"\n onClick={handleAddSpecs}\n >\n more\n </Button>\n </div>\n <div className=\"specs_container\">\n {specsArr.map((item, index) => (\n <div className=\"item\" key={item.id}>\n <label\n style={{\n paddingLeft: 5,\n }}\n >\n Model Format\n </label>\n <RadioGroup\n value={item.model_format}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_format', e.target.value)\n if (e.target.value === 'gptq' || e.target.value === 'awq') {\n const quantizationAlertIdArr = Array.from(\n new Set([...quantizationAlertId, item.id])\n )\n setQuantizationAlertId(quantizationAlertIdArr)\n }\n }}\n >\n <Box sx={styles.checkboxWrapper}>\n {modelFormatArr.map((item) => (\n <Box key={item.value} sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value={item.value}\n control={<Radio />}\n label={item.label}\n />\n </Box>\n ))}\n </Box>\n </RadioGroup>\n <Box padding=\"15px\"></Box>\n\n <TextField\n error={item.model_uri !== '' ? false : true}\n style={{ minWidth: '60%' }}\n label=\"Model Path\"\n size=\"small\"\n value={path}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_uri', e.target.value)\n }}\n helperText=\"For PyTorch, provide the model directory. For GGML/GGUF, provide the model file path.\"\n />\n <Box padding=\"15px\"></Box>\n\n <TextField\n error={Number(item.model_size_in_billions) > 0 ? false : true}\n label=\"Model Size in Billions\"\n size=\"small\"\n value={item.model_size_in_billions}\n onChange={(e) => {\n handleModelSize(index, e.target.value, item.id)\n }}\n />\n {modelSizeAlertId.includes(item.id) && (\n <Alert severity=\"error\">\n Please enter a number greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n\n {item.model_format !== 'pytorch' && (\n <>\n <TextField\n style={{ minWidth: '60%' }}\n label={\n item.model_format === 'gptq' || item.model_format === 'awq'\n ? 'Quantization'\n : 'Quantization (Optional)'\n }\n size=\"small\"\n value={item.quantizations[0]}\n onChange={(e) => {\n handleQuantization(\n item.model_format,\n index,\n e.target.value,\n item.id\n )\n }}\n helperText={\n item.model_format === 'gptq' || item.model_format === 'awq'\n ? 'For GPTQ/AWQ models, please be careful to fill in the quantization corresponding to the model you want to register.'\n : ''\n }\n />\n {item.model_format !== 'ggmlv3' &&\n item.model_format !== 'ggufv2' &&\n quantizationAlertId.includes(item.id) &&\n item.quantizations[0] == '' && (\n <Alert severity=\"error\">\n Quantization cannot be left empty.\n </Alert>\n )}\n </>\n )}\n\n {specsArr.length > 1 && (\n <Tooltip title=\"Delete specs\" placement=\"top\">\n <div\n className=\"deleteBtn\"\n onClick={() => handleDeleteSpecs(index)}\n >\n <DeleteIcon className=\"deleteIcon\" />\n </div>\n </Tooltip>\n )}\n </div>\n ))}\n </div>\n </>\n )\n}\n\nexport default AddModelSpecs\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n },\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -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 _defineProperty from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _regeneratorRuntime from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";import _asyncToGenerator from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import'./styles/registerModelStyle.css';import CheckIcon from'@mui/icons-material/Check';import FilterNoneIcon from'@mui/icons-material/FilterNone';import KeyboardDoubleArrowRightIcon from'@mui/icons-material/KeyboardDoubleArrowRight';import NotesIcon from'@mui/icons-material/Notes';import{Alert,Box,Button,Checkbox,Chip,FormControl,FormControlLabel,InputLabel,MenuItem,Radio,RadioGroup,Select,Snackbar,Stack,Switch,TextField,Tooltip}from'@mui/material';import ClipboardJS from'clipboard';import React,{useContext,useEffect,useRef,useState}from'react';import{useCookies}from'react-cookie';import{useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import AddControlnet from'./components/addControlnet';import AddModelSpecs from'./components/addModelSpecs';import languages from'./data/languages';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";var SUPPORTED_LANGUAGES_DICT={en:'English',zh:'Chinese'};var SUPPORTED_FEATURES=['Generate','Chat','Vision'];// Convert dictionary of supported languages into list\nvar SUPPORTED_LANGUAGES=Object.keys(SUPPORTED_LANGUAGES_DICT);var RegisterModelComponent=function RegisterModelComponent(_ref){var modelType=_ref.modelType,customData=_ref.customData;var endPoint=useContext(ApiContext).endPoint;var _useContext=useContext(ApiContext),setErrorMsg=_useContext.setErrorMsg;var _useState=useState(customData),_useState2=_slicedToArray(_useState,2),formData=_useState2[0],setFormData=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),promptStyles=_useState4[0],setPromptStyles=_useState4[1];var _useState5=useState({chat:[],generate:[]}),_useState6=_slicedToArray(_useState5,2),family=_useState6[0],setFamily=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),isShow=_useState8[0],setIsShow=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),languagesArr=_useState10[0],setLanguagesArr=_useState10[1];var _useState11=useState(false),_useState12=_slicedToArray(_useState11,2),isContextLengthAlert=_useState12[0],setIsContextLengthAlert=_useState12[1];var _useState13=useState(false),_useState14=_slicedToArray(_useState13,2),isDimensionsAlert=_useState14[0],setIsDimensionsAlert=_useState14[1];var _useState15=useState(false),_useState16=_slicedToArray(_useState15,2),isMaxTokensAlert=_useState16[0],setIsMaxTokensAlert=_useState16[1];var _useState17=useState(''),_useState18=_slicedToArray(_useState17,2),jsonData=_useState18[0],setJsonData=_useState18[1];var _useState19=useState(false),_useState20=_slicedToArray(_useState19,2),isCopySuccess=_useState20[0],setIsCopySuccess=_useState20[1];var _useState21=useState(false),_useState22=_slicedToArray(_useState21,2),isSpecsArrError=_useState22[0],setIsSpecsArrError=_useState22[1];var scrollRef=useRef(null);var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();useEffect(function(){if(cookie.token===''||cookie.token===undefined){return;}if(cookie.token!=='no_auth'&&!sessionStorage.getItem('token')){navigate('/login',{replace:true});return;}var getBuiltinFamilies=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,errorData,data;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetch(endPoint+'/v1/models/families',{method:'GET',headers:{'Content-Type':'application/json'}});case 2:response=_context.sent;if(response.ok){_context.next=10;break;}_context.next=6;return response.json();case 6:errorData=_context.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context.next=16;break;case 10:_context.next=12;return response.json();case 12:data=_context.sent;data.chat.push('other');data.generate.push('other');setFamily(data);case 16:case\"end\":return _context.stop();}},_callee);}));return function getBuiltinFamilies(){return _ref2.apply(this,arguments);};}();var getBuiltInPromptStyles=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var response,errorData,data,res,key,v;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return fetch(endPoint+'/v1/models/prompts',{method:'GET',headers:{'Content-Type':'application/json'}});case 2:response=_context2.sent;if(response.ok){_context2.next=10;break;}_context2.next=6;return response.json();case 6:errorData=_context2.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context2.next=16;break;case 10:_context2.next=12;return response.json();case 12:data=_context2.sent;res=[];for(key in data){v=data[key];v['name']=key;res.push(v);}setPromptStyles(res);case 16:case\"end\":return _context2.stop();}},_callee2);}));return function getBuiltInPromptStyles(){return _ref3.apply(this,arguments);};}();if(Object.prototype.hasOwnProperty.call(customData,'model_ability')&&Object.prototype.hasOwnProperty.call(customData,'model_family')){// avoid keep requesting backend to get prompts\nif(promptStyles.length===0){getBuiltInPromptStyles().catch(function(error){setErrorMsg(error.message||'An unexpected error occurred when getting builtin prompt styles.');console.error('Error: ',error);});}if(family.chat.length===0){getBuiltinFamilies().catch(function(error){setErrorMsg(error.message||'An unexpected error occurred when getting builtin prompt styles.');console.error('Error: ',error);});}}},[cookie.token]);useEffect(function(){setJsonData(JSON.stringify(formData,null,4));},[formData]);var getFamilyByAbility=function getFamilyByAbility(){if(formData.model_ability.includes('chat')||formData.model_ability.includes('vision')){return family.chat;}else{return family.generate;}};var sortStringsByFirstLetter=function sortStringsByFirstLetter(arr){return arr.sort(function(a,b){var firstCharA=a.charAt(0).toLowerCase();var firstCharB=b.charAt(0).toLowerCase();if(firstCharA<firstCharB){return-1;}if(firstCharA>firstCharB){return 1;}return 0;});};var handleClick=/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(){var key,type,response,errorData;return _regeneratorRuntime().wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:console.log('formData',modelType,formData);_context3.t0=_regeneratorRuntime().keys(formData);case 2:if((_context3.t1=_context3.t0()).done){_context3.next=10;break;}key=_context3.t1.value;type=Object.prototype.toString.call(formData[key]).slice(8,-1);if(!(key!=='model_description'&&(type==='Array'&&key!=='controlnet'&&formData[key].length===0||type==='String'&&formData[key]===''||type==='Number'&&formData[key]<=0))){_context3.next=8;break;}setErrorMsg('Please fill in valid value for all fields');return _context3.abrupt(\"return\");case 8:_context3.next=2;break;case 10:if(!(isSpecsArrError||isContextLengthAlert||isDimensionsAlert||isMaxTokensAlert)){_context3.next=13;break;}setErrorMsg('Please fill in valid value for all fields');return _context3.abrupt(\"return\");case 13:_context3.prev=13;_context3.next=16;return fetcher(endPoint+\"/v1/model_registrations/\".concat(modelType),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model:JSON.stringify(formData),persist:true})});case 16:response=_context3.sent;if(response.ok){_context3.next=24;break;}_context3.next=20;return response.json();case 20:errorData=_context3.sent;// Assuming the server returns error details in JSON format\nsetErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errorData.detail||'Unknown error'));_context3.next=27;break;case 24:navigate(\"/launch_model/custom/\".concat(modelType.toLowerCase()));sessionStorage.setItem('modelType','/launch_model/custom/llm');sessionStorage.setItem('subType',\"/launch_model/custom/\".concat(modelType.toLowerCase()));case 27:_context3.next=33;break;case 29:_context3.prev=29;_context3.t2=_context3[\"catch\"](13);console.error('There was a problem with the fetch operation:',_context3.t2);setErrorMsg(_context3.t2.message||'An unexpected error occurred.');case 33:case\"end\":return _context3.stop();}},_callee3,null,[[13,29]]);}));return function handleClick(){return _ref4.apply(this,arguments);};}();var handleNumber=function handleNumber(value,parameterName){setIsContextLengthAlert(false);setIsDimensionsAlert(false);setIsMaxTokensAlert(false);setFormData(_objectSpread(_objectSpread({},formData),{},_defineProperty({},parameterName,value)));// if(value !== '' && Number(value) > 0) {\n// console.log(111);\n// setFormData({ ...formData, [parameterName]: Number(value) })\n// }\nif(value!==''&&(!Number(value)||Number(value)<=0||parseInt(value)!==parseFloat(value))){parameterName==='context_length'?setIsContextLengthAlert(true):'';parameterName==='dimensions'?setIsDimensionsAlert(true):'';parameterName==='max_tokens'?setIsMaxTokensAlert(true):'';}else if(value!==''){setFormData(_objectSpread(_objectSpread({},formData),{},_defineProperty({},parameterName,Number(value))));}};var toggleLanguage=function toggleLanguage(lang){if(modelType==='LLM'){if(formData.model_lang.includes(lang)){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:formData.model_lang.filter(function(l){return l!==lang;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:[].concat(_toConsumableArray(formData.model_lang),[lang])}));}}else{if(formData.language.includes(lang)){setFormData(_objectSpread(_objectSpread({},formData),{},{language:formData.language.filter(function(l){return l!==lang;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:[].concat(_toConsumableArray(formData.language),[lang])}));}}};var toggleAbility=function toggleAbility(ability){if(formData.model_ability.includes(ability)){var obj=JSON.parse(JSON.stringify(formData));if(ability==='chat'){delete obj.prompt_style;}setFormData(_objectSpread(_objectSpread({},obj),{},{model_ability:formData.model_ability.filter(function(a){return a!==ability;}),model_family:''}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_ability:[].concat(_toConsumableArray(formData.model_ability),[ability]),model_family:''}));}};var toggleFamily=function toggleFamily(value){var ps=promptStyles.find(function(item){return item.name===value;});if(formData.model_ability.includes('chat')&&ps){var _ps$stop,_ps$stop_token_ids;var prompt_style={style_name:ps.style_name,system_prompt:ps.system_prompt,roles:ps.roles,intra_message_sep:ps.intra_message_sep,inter_message_sep:ps.inter_message_sep,stop:(_ps$stop=ps.stop)!==null&&_ps$stop!==void 0?_ps$stop:null,stop_token_ids:(_ps$stop_token_ids=ps.stop_token_ids)!==null&&_ps$stop_token_ids!==void 0?_ps$stop_token_ids:null};setFormData(_objectSpread(_objectSpread({},formData),{},{model_family:value,prompt_style:prompt_style}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_family:value}));}};var handleSelectLanguages=function handleSelectLanguages(value){var arr=[].concat(_toConsumableArray(languagesArr),[value]);setLanguagesArr(arr);if(modelType==='LLM'){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:Array.from(new Set([].concat(_toConsumableArray(formData.model_lang),_toConsumableArray(arr))))}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:Array.from(new Set([].concat(_toConsumableArray(formData.language),_toConsumableArray(arr))))}));}};var handleDeleteLanguages=function handleDeleteLanguages(item){var arr=languagesArr.filter(function(subItem){return subItem!==item;});setLanguagesArr(arr);if(modelType==='LLM'){setFormData(_objectSpread(_objectSpread({},formData),{},{model_lang:formData.model_lang.filter(function(subItem){return subItem!==item;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{language:formData.language.filter(function(subItem){return subItem!==item;})}));}};var getSpecsArr=function getSpecsArr(arr,isSpecsArrError){setFormData(_objectSpread(_objectSpread({},formData),{},{model_specs:arr}));setIsSpecsArrError(isSpecsArrError);};var getControlnetArr=function getControlnetArr(arr){setFormData(_objectSpread(_objectSpread({},formData),{},{controlnet:arr}));};var handleCopy=function handleCopy(){var clipboard=new ClipboardJS('.copyIcon',{text:function text(){return jsonData;}});clipboard.on('success',function(event){event.clearSelection();setIsCopySuccess(true);});};return/*#__PURE__*/_jsxs(Box,{style:{display:'flex',overFlow:'hidden',maxWidth:'100%'},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"show-json\",children:[/*#__PURE__*/_jsx(\"p\",{children:\"Show custom json config used by api\"}),isShow?/*#__PURE__*/_jsx(Tooltip,{title:\"Pack up\",placement:\"top\",children:/*#__PURE__*/_jsx(KeyboardDoubleArrowRightIcon,{className:\"icon arrow\",onClick:function onClick(){return setIsShow(!isShow);}})}):/*#__PURE__*/_jsx(Tooltip,{title:\"Unfold\",placement:\"top\",children:/*#__PURE__*/_jsx(NotesIcon,{className:\"icon notes\",onClick:function onClick(){return setIsShow(!isShow);}})})]}),/*#__PURE__*/_jsxs(\"div\",{ref:scrollRef,className:isShow?'formBox':'formBox broaden',children:[/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[customData.model_name&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Name\",error:formData.model_name?false:true,value:formData.model_name,size:\"small\",helperText:\"Alphanumeric characters with properly placed hyphens and underscores. Must not match any built-in model names.\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_name:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_description&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Description (Optional)\",value:formData.model_description,size:\"small\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_description:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.context_length&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{error:Number(formData.context_length)>0?false:true,label:\"Context Length\",value:formData.context_length,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'context_length');}}),isContextLengthAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.dimensions&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Dimensions\",error:Number(formData.dimensions)>0?false:true,value:formData.dimensions,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'dimensions');}}),isDimensionsAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.max_tokens&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Max Tokens\",error:Number(formData.max_tokens)>0?false:true,value:formData.max_tokens,size:\"small\",onChange:function onChange(event){handleNumber(event.target.value,'max_tokens');}}),isMaxTokensAlert&&/*#__PURE__*/_jsx(Alert,{severity:\"error\",children:\"Please enter an integer greater than 0.\"}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_uri&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Path\",error:formData.model_uri?false:true,value:formData.model_uri,size:\"small\",helperText:\"Provide the model directory path.\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_uri:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),(customData.model_lang||customData.language)&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:modelType==='LLM'?formData.model_lang.length===0?'#d32f2f':'inherit':formData.language.length===0?'#d32f2f':'inherit'},children:\"Model Languages\"}),/*#__PURE__*/_jsxs(Box,{sx:styles.checkboxWrapper,children:[SUPPORTED_LANGUAGES.map(function(lang){return/*#__PURE__*/_jsx(Box,{sx:{marginRight:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{control:/*#__PURE__*/_jsx(Checkbox,{checked:modelType==='LLM'?formData.model_lang.includes(lang):formData.language.includes(lang),onChange:function onChange(){return toggleLanguage(lang);},name:lang}),label:SUPPORTED_LANGUAGES_DICT[lang],style:{paddingLeft:10}})},lang);}),/*#__PURE__*/_jsxs(FormControl,{sx:{m:1,minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Languages\"}),/*#__PURE__*/_jsx(Select,{value:'',label:\"Languages\",onChange:function onChange(e){return handleSelectLanguages(e.target.value);},MenuProps:{PaperProps:{style:{maxHeight:'20vh'}}},children:languages.filter(function(item){return!languagesArr.includes(item.code);}).map(function(item){return/*#__PURE__*/_jsx(MenuItem,{value:item.code,children:item.code},item.code);})})]})]}),/*#__PURE__*/_jsx(Stack,{direction:\"row\",spacing:1,style:{marginLeft:'10px'},children:languagesArr.map(function(item){return/*#__PURE__*/_jsx(Chip,{label:item,variant:\"outlined\",size:\"small\",color:\"primary\",onDelete:function onDelete(){return handleDeleteLanguages(item);}},item);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),'multilingual'in customData&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:\"Multilingual\"}),/*#__PURE__*/_jsx(FormControlLabel,{style:{marginLeft:0,width:50},control:/*#__PURE__*/_jsx(Switch,{}),onChange:function onChange(e){return setFormData(_objectSpread(_objectSpread({},formData),{},{multilingual:e.target.checked}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_ability&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:formData.model_ability.length==0?'#d32f2f':'inherit'},children:\"Model Abilities\"}),/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:SUPPORTED_FEATURES.map(function(ability){return/*#__PURE__*/_jsx(Box,{sx:{marginRight:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{control:/*#__PURE__*/_jsx(Checkbox,{checked:formData.model_ability.includes(ability.toLowerCase()),onChange:function onChange(){return toggleAbility(ability.toLowerCase());},name:ability}),label:ability,style:{paddingLeft:10}})},ability);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),(customData.model_family===''||customData.model_family)&&/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:'inherit'},children:\"Model Family\"}),modelType==='LLM'&&formData.model_family&&/*#__PURE__*/_jsxs(Alert,{icon:/*#__PURE__*/_jsx(CheckIcon,{fontSize:\"inherit\"}),severity:\"success\",children:[\"Please be careful to select the family name corresponding to the model you want to register. If not found, please choose\",/*#__PURE__*/_jsx(\"i\",{style:{fontStyle:'italic',fontWeight:700},children:\" other\"}),\".\"]}),modelType==='LLM'&&!formData.model_family&&/*#__PURE__*/_jsxs(Alert,{severity:\"error\",children:[\"Please be careful to select the family name corresponding to the model you want to register. If not found, please choose\",/*#__PURE__*/_jsx(\"i\",{style:{fontStyle:'italic',fontWeight:700},children:\" other\"}),\".\"]}),/*#__PURE__*/_jsx(RadioGroup,{value:formData.model_family,onChange:function onChange(e){toggleFamily(e.target.value);},children:/*#__PURE__*/_jsxs(Box,{sx:styles.checkboxWrapper,style:{paddingLeft:'10px'},children:[modelType==='LLM'&&sortStringsByFirstLetter(getFamilyByAbility()).map(function(v){return/*#__PURE__*/_jsx(Box,{sx:{width:'20%'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:v,control:/*#__PURE__*/_jsx(Radio,{}),label:v})},v);}),(modelType==='image'||modelType==='audio')&&/*#__PURE__*/_jsx(FormControlLabel,{value:formData.model_family,checked:true,control:/*#__PURE__*/_jsx(Radio,{}),label:formData.model_family})]})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.model_specs&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddModelSpecs,{formData:customData.model_specs[0],onGetArr:getSpecsArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),customData.controlnet&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AddControlnet,{onGetControlnetArr:getControlnetArr,scrollRef:scrollRef}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]})]}),/*#__PURE__*/_jsx(Box,{width:'100%',children:/*#__PURE__*/_jsx(Button,{variant:\"contained\",color:\"primary\",type:\"submit\",onClick:handleClick,children:\"Register Model\"})})]}),/*#__PURE__*/_jsxs(\"div\",{className:isShow?'jsonBox':'jsonBox hide',children:[/*#__PURE__*/_jsx(\"div\",{className:\"jsonBox-header\",children:\"JSON Format\"}),/*#__PURE__*/_jsx(Tooltip,{title:\"Copy all\",placement:\"top\",children:/*#__PURE__*/_jsx(FilterNoneIcon,{className:\"copyIcon\",onClick:handleCopy})}),/*#__PURE__*/_jsx(\"textarea\",{readOnly:true,className:\"textarea\",value:jsonData})]}),/*#__PURE__*/_jsx(Snackbar,{anchorOrigin:{vertical:'top',horizontal:'center'},open:isCopySuccess,autoHideDuration:1500,onClose:function onClose(){return setIsCopySuccess(false);},children:/*#__PURE__*/_jsx(Alert,{severity:\"success\",variant:\"filled\",sx:{width:'100%'},children:\"Copied to clipboard!\"})})]});};export default RegisterModelComponent;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',alignItems:'center',width:'100%'}};","map":{"version":3,"names":["CheckIcon","FilterNoneIcon","KeyboardDoubleArrowRightIcon","NotesIcon","Alert","Box","Button","Checkbox","Chip","FormControl","FormControlLabel","InputLabel","MenuItem","Radio","RadioGroup","Select","Snackbar","Stack","Switch","TextField","Tooltip","ClipboardJS","React","useContext","useEffect","useRef","useState","useCookies","useNavigate","ApiContext","fetcher","AddControlnet","AddModelSpecs","languages","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SUPPORTED_LANGUAGES_DICT","en","zh","SUPPORTED_FEATURES","SUPPORTED_LANGUAGES","Object","keys","RegisterModelComponent","_ref","modelType","customData","endPoint","_useContext","setErrorMsg","_useState","_useState2","_slicedToArray","formData","setFormData","_useState3","_useState4","promptStyles","setPromptStyles","_useState5","chat","generate","_useState6","family","setFamily","_useState7","_useState8","isShow","setIsShow","_useState9","_useState10","languagesArr","setLanguagesArr","_useState11","_useState12","isContextLengthAlert","setIsContextLengthAlert","_useState13","_useState14","isDimensionsAlert","setIsDimensionsAlert","_useState15","_useState16","isMaxTokensAlert","setIsMaxTokensAlert","_useState17","_useState18","jsonData","setJsonData","_useState19","_useState20","isCopySuccess","setIsCopySuccess","_useState21","_useState22","isSpecsArrError","setIsSpecsArrError","scrollRef","_useCookies","_useCookies2","cookie","navigate","token","undefined","sessionStorage","getItem","replace","getBuiltinFamilies","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","errorData","data","wrap","_callee$","_context","prev","next","fetch","method","headers","sent","ok","json","concat","status","detail","push","stop","apply","arguments","getBuiltInPromptStyles","_ref3","_callee2","res","key","v","_callee2$","_context2","prototype","hasOwnProperty","call","length","catch","error","message","console","JSON","stringify","getFamilyByAbility","model_ability","includes","sortStringsByFirstLetter","arr","sort","a","b","firstCharA","charAt","toLowerCase","firstCharB","handleClick","_ref4","_callee3","type","_callee3$","_context3","log","t0","t1","done","value","toString","slice","abrupt","body","model","persist","setItem","t2","handleNumber","parameterName","_objectSpread","_defineProperty","Number","parseInt","parseFloat","toggleLanguage","lang","model_lang","filter","l","_toConsumableArray","language","toggleAbility","ability","obj","parse","prompt_style","model_family","toggleFamily","ps","find","item","name","_ps$stop","_ps$stop_token_ids","style_name","system_prompt","roles","intra_message_sep","inter_message_sep","stop_token_ids","handleSelectLanguages","Array","from","Set","handleDeleteLanguages","subItem","getSpecsArr","model_specs","getControlnetArr","controlnet","handleCopy","clipboard","text","on","event","clearSelection","style","display","overFlow","maxWidth","children","className","title","placement","onClick","ref","sx","styles","baseFormControl","model_name","label","size","helperText","onChange","target","padding","model_description","context_length","severity","dimensions","max_tokens","model_uri","paddingLeft","color","checkboxWrapper","map","marginRight","control","checked","m","minWidth","e","MenuProps","PaperProps","maxHeight","code","direction","spacing","marginLeft","variant","onDelete","width","multilingual","icon","fontSize","fontStyle","fontWeight","onGetArr","onGetControlnetArr","readOnly","anchorOrigin","vertical","horizontal","open","autoHideDuration","onClose","margin","flexWrap","alignItems"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/registerModel.js"],"sourcesContent":["import './styles/registerModelStyle.css'\n\nimport CheckIcon from '@mui/icons-material/Check'\nimport FilterNoneIcon from '@mui/icons-material/FilterNone'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport NotesIcon from '@mui/icons-material/Notes'\nimport {\n Alert,\n Box,\n Button,\n Checkbox,\n Chip,\n FormControl,\n FormControlLabel,\n InputLabel,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n Snackbar,\n Stack,\n Switch,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport ClipboardJS from 'clipboard'\nimport React, { useContext, useEffect, useRef, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport AddControlnet from './components/addControlnet'\nimport AddModelSpecs from './components/addModelSpecs'\nimport languages from './data/languages'\nconst SUPPORTED_LANGUAGES_DICT = { en: 'English', zh: 'Chinese' }\nconst SUPPORTED_FEATURES = ['Generate', 'Chat', 'Vision']\n\n// Convert dictionary of supported languages into list\nconst SUPPORTED_LANGUAGES = Object.keys(SUPPORTED_LANGUAGES_DICT)\n\nconst RegisterModelComponent = ({ modelType, customData }) => {\n const endPoint = useContext(ApiContext).endPoint\n const { setErrorMsg } = useContext(ApiContext)\n const [formData, setFormData] = useState(customData)\n const [promptStyles, setPromptStyles] = useState([])\n const [family, setFamily] = useState({\n chat: [],\n generate: [],\n })\n const [isShow, setIsShow] = useState(false)\n const [languagesArr, setLanguagesArr] = useState([])\n const [isContextLengthAlert, setIsContextLengthAlert] = useState(false)\n const [isDimensionsAlert, setIsDimensionsAlert] = useState(false)\n const [isMaxTokensAlert, setIsMaxTokensAlert] = useState(false)\n const [jsonData, setJsonData] = useState('')\n const [isCopySuccess, setIsCopySuccess] = useState(false)\n const [isSpecsArrError, setIsSpecsArrError] = useState(false)\n const scrollRef = useRef(null)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n\n useEffect(() => {\n if (cookie.token === '' || cookie.token === undefined) {\n return\n }\n if (cookie.token !== 'no_auth' && !sessionStorage.getItem('token')) {\n navigate('/login', { replace: true })\n return\n }\n\n const getBuiltinFamilies = async () => {\n const response = await fetch(endPoint + '/v1/models/families', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n const data = await response.json()\n data.chat.push('other')\n data.generate.push('other')\n setFamily(data)\n }\n }\n\n const getBuiltInPromptStyles = async () => {\n const response = await fetch(endPoint + '/v1/models/prompts', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n const data = await response.json()\n let res = []\n for (const key in data) {\n let v = data[key]\n v['name'] = key\n res.push(v)\n }\n setPromptStyles(res)\n }\n }\n\n if (\n Object.prototype.hasOwnProperty.call(customData, 'model_ability') &&\n Object.prototype.hasOwnProperty.call(customData, 'model_family')\n ) {\n // avoid keep requesting backend to get prompts\n if (promptStyles.length === 0) {\n getBuiltInPromptStyles().catch((error) => {\n setErrorMsg(\n error.message ||\n 'An unexpected error occurred when getting builtin prompt styles.'\n )\n console.error('Error: ', error)\n })\n }\n if (family.chat.length === 0) {\n getBuiltinFamilies().catch((error) => {\n setErrorMsg(\n error.message ||\n 'An unexpected error occurred when getting builtin prompt styles.'\n )\n console.error('Error: ', error)\n })\n }\n }\n }, [cookie.token])\n\n useEffect(() => {\n setJsonData(JSON.stringify(formData, null, 4))\n }, [formData])\n\n const getFamilyByAbility = () => {\n if (\n formData.model_ability.includes('chat') ||\n formData.model_ability.includes('vision')\n ) {\n return family.chat\n } else {\n return family.generate\n }\n }\n\n const sortStringsByFirstLetter = (arr) => {\n return arr.sort((a, b) => {\n const firstCharA = a.charAt(0).toLowerCase()\n const firstCharB = b.charAt(0).toLowerCase()\n if (firstCharA < firstCharB) {\n return -1\n }\n if (firstCharA > firstCharB) {\n return 1\n }\n return 0\n })\n }\n\n const handleClick = async () => {\n console.log('formData', modelType, formData)\n\n for (let key in formData) {\n const type = Object.prototype.toString.call(formData[key]).slice(8, -1)\n if (\n key !== 'model_description' &&\n ((type === 'Array' &&\n key !== 'controlnet' &&\n formData[key].length === 0) ||\n (type === 'String' && formData[key] === '') ||\n (type === 'Number' && formData[key] <= 0))\n ) {\n setErrorMsg('Please fill in valid value for all fields')\n return\n }\n }\n\n if (\n isSpecsArrError ||\n isContextLengthAlert ||\n isDimensionsAlert ||\n isMaxTokensAlert\n ) {\n setErrorMsg('Please fill in valid value for all fields')\n return\n }\n\n try {\n const response = await fetcher(\n endPoint + `/v1/model_registrations/${modelType}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model: JSON.stringify(formData),\n persist: true,\n }),\n }\n )\n if (!response.ok) {\n const errorData = await response.json() // Assuming the server returns error details in JSON format\n setErrorMsg(\n `Server error: ${response.status} - ${\n errorData.detail || 'Unknown error'\n }`\n )\n } else {\n navigate(`/launch_model/custom/${modelType.toLowerCase()}`)\n sessionStorage.setItem('modelType', '/launch_model/custom/llm')\n sessionStorage.setItem(\n 'subType',\n `/launch_model/custom/${modelType.toLowerCase()}`\n )\n }\n } catch (error) {\n console.error('There was a problem with the fetch operation:', error)\n setErrorMsg(error.message || 'An unexpected error occurred.')\n }\n }\n\n const handleNumber = (value, parameterName) => {\n setIsContextLengthAlert(false)\n setIsDimensionsAlert(false)\n setIsMaxTokensAlert(false)\n setFormData({ ...formData, [parameterName]: value })\n\n // if(value !== '' && Number(value) > 0) {\n // console.log(111);\n // setFormData({ ...formData, [parameterName]: Number(value) })\n // }\n\n if (\n value !== '' &&\n (!Number(value) ||\n Number(value) <= 0 ||\n parseInt(value) !== parseFloat(value))\n ) {\n parameterName === 'context_length' ? setIsContextLengthAlert(true) : ''\n parameterName === 'dimensions' ? setIsDimensionsAlert(true) : ''\n parameterName === 'max_tokens' ? setIsMaxTokensAlert(true) : ''\n } else if (value !== '') {\n setFormData({ ...formData, [parameterName]: Number(value) })\n }\n }\n\n const toggleLanguage = (lang) => {\n if (modelType === 'LLM') {\n if (formData.model_lang.includes(lang)) {\n setFormData({\n ...formData,\n model_lang: formData.model_lang.filter((l) => l !== lang),\n })\n } else {\n setFormData({\n ...formData,\n model_lang: [...formData.model_lang, lang],\n })\n }\n } else {\n if (formData.language.includes(lang)) {\n setFormData({\n ...formData,\n language: formData.language.filter((l) => l !== lang),\n })\n } else {\n setFormData({\n ...formData,\n language: [...formData.language, lang],\n })\n }\n }\n }\n\n const toggleAbility = (ability) => {\n if (formData.model_ability.includes(ability)) {\n const obj = JSON.parse(JSON.stringify(formData))\n if (ability === 'chat') {\n delete obj.prompt_style\n }\n setFormData({\n ...obj,\n model_ability: formData.model_ability.filter((a) => a !== ability),\n model_family: '',\n })\n } else {\n setFormData({\n ...formData,\n model_ability: [...formData.model_ability, ability],\n model_family: '',\n })\n }\n }\n\n const toggleFamily = (value) => {\n const ps = promptStyles.find((item) => item.name === value)\n if (formData.model_ability.includes('chat') && ps) {\n const prompt_style = {\n style_name: ps.style_name,\n system_prompt: ps.system_prompt,\n roles: ps.roles,\n intra_message_sep: ps.intra_message_sep,\n inter_message_sep: ps.inter_message_sep,\n stop: ps.stop ?? null,\n stop_token_ids: ps.stop_token_ids ?? null,\n }\n setFormData({\n ...formData,\n model_family: value,\n prompt_style,\n })\n } else {\n setFormData({ ...formData, model_family: value })\n }\n }\n\n const handleSelectLanguages = (value) => {\n const arr = [...languagesArr, value]\n setLanguagesArr(arr)\n if (modelType === 'LLM') {\n setFormData({\n ...formData,\n model_lang: Array.from(new Set([...formData.model_lang, ...arr])),\n })\n } else {\n setFormData({\n ...formData,\n language: Array.from(new Set([...formData.language, ...arr])),\n })\n }\n }\n\n const handleDeleteLanguages = (item) => {\n const arr = languagesArr.filter((subItem) => subItem !== item)\n setLanguagesArr(arr)\n if (modelType === 'LLM') {\n setFormData({\n ...formData,\n model_lang: formData.model_lang.filter((subItem) => subItem !== item),\n })\n } else {\n setFormData({\n ...formData,\n language: formData.language.filter((subItem) => subItem !== item),\n })\n }\n }\n\n const getSpecsArr = (arr, isSpecsArrError) => {\n setFormData({ ...formData, model_specs: arr })\n setIsSpecsArrError(isSpecsArrError)\n }\n\n const getControlnetArr = (arr) => {\n setFormData({ ...formData, controlnet: arr })\n }\n\n const handleCopy = () => {\n const clipboard = new ClipboardJS('.copyIcon', {\n text: () => jsonData,\n })\n\n clipboard.on('success', function (event) {\n event.clearSelection()\n setIsCopySuccess(true)\n })\n }\n\n return (\n <Box style={{ display: 'flex', overFlow: 'hidden', maxWidth: '100%' }}>\n <div className=\"show-json\">\n <p>Show custom json config used by api</p>\n {isShow ? (\n <Tooltip title=\"Pack up\" placement=\"top\">\n <KeyboardDoubleArrowRightIcon\n className=\"icon arrow\"\n onClick={() => setIsShow(!isShow)}\n />\n </Tooltip>\n ) : (\n <Tooltip title=\"Unfold\" placement=\"top\">\n <NotesIcon\n className=\"icon notes\"\n onClick={() => setIsShow(!isShow)}\n />\n </Tooltip>\n )}\n </div>\n <div ref={scrollRef} className={isShow ? 'formBox' : 'formBox broaden'}>\n {/* Base Information */}\n <FormControl sx={styles.baseFormControl}>\n {/* name */}\n {customData.model_name && (\n <>\n <TextField\n label=\"Model Name\"\n error={formData.model_name ? false : true}\n value={formData.model_name}\n size=\"small\"\n helperText=\"Alphanumeric characters with properly placed hyphens and underscores. Must not match any built-in model names.\"\n onChange={(event) =>\n setFormData({ ...formData, model_name: event.target.value })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* description */}\n {customData.model_description && (\n <>\n <TextField\n label=\"Model Description (Optional)\"\n value={formData.model_description}\n size=\"small\"\n onChange={(event) =>\n setFormData({\n ...formData,\n model_description: event.target.value,\n })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* Context Length */}\n {customData.context_length && (\n <>\n <TextField\n error={Number(formData.context_length) > 0 ? false : true}\n label=\"Context Length\"\n value={formData.context_length}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'context_length')\n }}\n />\n {isContextLengthAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* dimensions */}\n {customData.dimensions && (\n <>\n <TextField\n label=\"Dimensions\"\n error={Number(formData.dimensions) > 0 ? false : true}\n value={formData.dimensions}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'dimensions')\n }}\n />\n {isDimensionsAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* Max Tokens */}\n {customData.max_tokens && (\n <>\n <TextField\n label=\"Max Tokens\"\n error={Number(formData.max_tokens) > 0 ? false : true}\n value={formData.max_tokens}\n size=\"small\"\n onChange={(event) => {\n handleNumber(event.target.value, 'max_tokens')\n }}\n />\n {isMaxTokensAlert && (\n <Alert severity=\"error\">\n Please enter an integer greater than 0.\n </Alert>\n )}\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* path */}\n {customData.model_uri && (\n <>\n <TextField\n label=\"Model Path\"\n error={formData.model_uri ? false : true}\n value={formData.model_uri}\n size=\"small\"\n helperText=\"Provide the model directory path.\"\n onChange={(event) =>\n setFormData({ ...formData, model_uri: event.target.value })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* model_lang */}\n {(customData.model_lang || customData.language) && (\n <>\n <label\n style={{\n paddingLeft: 5,\n color:\n modelType === 'LLM'\n ? formData.model_lang.length === 0\n ? '#d32f2f'\n : 'inherit'\n : formData.language.length === 0\n ? '#d32f2f'\n : 'inherit',\n }}\n >\n Model Languages\n </label>\n <Box sx={styles.checkboxWrapper}>\n {SUPPORTED_LANGUAGES.map((lang) => (\n <Box key={lang} sx={{ marginRight: '10px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={\n modelType === 'LLM'\n ? formData.model_lang.includes(lang)\n : formData.language.includes(lang)\n }\n onChange={() => toggleLanguage(lang)}\n name={lang}\n />\n }\n label={SUPPORTED_LANGUAGES_DICT[lang]}\n style={{\n paddingLeft: 10,\n }}\n />\n </Box>\n ))}\n <FormControl sx={{ m: 1, minWidth: 120 }} size=\"small\">\n <InputLabel>Languages</InputLabel>\n <Select\n value={''}\n label=\"Languages\"\n onChange={(e) => handleSelectLanguages(e.target.value)}\n MenuProps={{\n PaperProps: {\n style: { maxHeight: '20vh' },\n },\n }}\n >\n {languages\n .filter((item) => !languagesArr.includes(item.code))\n .map((item) => (\n <MenuItem key={item.code} value={item.code}>\n {item.code}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n <Stack direction=\"row\" spacing={1} style={{ marginLeft: '10px' }}>\n {languagesArr.map((item) => (\n <Chip\n key={item}\n label={item}\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n onDelete={() => handleDeleteLanguages(item)}\n />\n ))}\n </Stack>\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* multilingual */}\n {'multilingual' in customData && (\n <>\n <label\n style={{\n paddingLeft: 5,\n }}\n >\n Multilingual\n </label>\n <FormControlLabel\n style={{ marginLeft: 0, width: 50 }}\n control={<Switch />}\n onChange={(e) =>\n setFormData({ ...formData, multilingual: e.target.checked })\n }\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* abilities */}\n {customData.model_ability && (\n <>\n <label\n style={{\n paddingLeft: 5,\n color:\n formData.model_ability.length == 0 ? '#d32f2f' : 'inherit',\n }}\n >\n Model Abilities\n </label>\n <Box sx={styles.checkboxWrapper}>\n {SUPPORTED_FEATURES.map((ability) => (\n <Box key={ability} sx={{ marginRight: '10px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={formData.model_ability.includes(\n ability.toLowerCase()\n )}\n onChange={() => toggleAbility(ability.toLowerCase())}\n name={ability}\n />\n }\n label={ability}\n style={{\n paddingLeft: 10,\n }}\n />\n </Box>\n ))}\n </Box>\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* family */}\n {(customData.model_family === '' || customData.model_family) && (\n <FormControl sx={styles.baseFormControl}>\n <label\n style={{\n paddingLeft: 5,\n color: 'inherit',\n }}\n >\n Model Family\n </label>\n {modelType === 'LLM' && formData.model_family && (\n <Alert\n icon={<CheckIcon fontSize=\"inherit\" />}\n severity=\"success\"\n >\n Please be careful to select the family name corresponding to\n the model you want to register. If not found, please choose\n <i style={{ fontStyle: 'italic', fontWeight: 700 }}> other</i>\n .\n </Alert>\n )}\n {modelType === 'LLM' && !formData.model_family && (\n <Alert severity=\"error\">\n Please be careful to select the family name corresponding to\n the model you want to register. If not found, please choose\n <i style={{ fontStyle: 'italic', fontWeight: 700 }}> other</i>\n .\n </Alert>\n )}\n <RadioGroup\n value={formData.model_family}\n onChange={(e) => {\n toggleFamily(e.target.value)\n }}\n >\n <Box\n sx={styles.checkboxWrapper}\n style={{ paddingLeft: '10px' }}\n >\n {modelType === 'LLM' &&\n sortStringsByFirstLetter(getFamilyByAbility()).map((v) => (\n <Box sx={{ width: '20%' }} key={v}>\n <FormControlLabel\n value={v}\n control={<Radio />}\n label={v}\n />\n </Box>\n ))}\n {(modelType === 'image' || modelType === 'audio') && (\n <FormControlLabel\n value={formData.model_family}\n checked\n control={<Radio />}\n label={formData.model_family}\n />\n )}\n </Box>\n </RadioGroup>\n <Box padding=\"15px\"></Box>\n </FormControl>\n )}\n\n {/* specs */}\n {customData.model_specs && (\n <>\n <AddModelSpecs\n formData={customData.model_specs[0]}\n onGetArr={getSpecsArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n\n {/* controlnet */}\n {customData.controlnet && (\n <>\n <AddControlnet\n onGetControlnetArr={getControlnetArr}\n scrollRef={scrollRef}\n />\n <Box padding=\"15px\"></Box>\n </>\n )}\n </FormControl>\n\n <Box width={'100%'}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleClick}\n >\n Register Model\n </Button>\n </Box>\n </div>\n\n {/* JSON */}\n <div className={isShow ? 'jsonBox' : 'jsonBox hide'}>\n <div className=\"jsonBox-header\">JSON Format</div>\n <Tooltip title=\"Copy all\" placement=\"top\">\n <FilterNoneIcon className=\"copyIcon\" onClick={handleCopy} />\n </Tooltip>\n <textarea readOnly className=\"textarea\" value={jsonData} />\n </div>\n\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={isCopySuccess}\n autoHideDuration={1500}\n onClose={() => setIsCopySuccess(false)}\n >\n <Alert severity=\"success\" variant=\"filled\" sx={{ width: '100%' }}>\n Copied to clipboard!\n </Alert>\n </Snackbar>\n </Box>\n )\n}\n\nexport default RegisterModelComponent\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n },\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{Box,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{ApiContext}from'../../components/apiContext';import fetcher from'../../components/fetcher';import HotkeyFocusTextField from'../../components/hotkeyFocusTextField';import ModelCard from'./modelCard';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var LaunchLLM=function LaunchLLM(_ref){var gpuAvailable=_ref.gpuAvailable;var endPoint=useContext(ApiContext).endPoint;var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var _useState=useState([]),_useState2=_slicedToArray(_useState,2),registrationData=_useState2[0],setRegistrationData=_useState2[1];// States used for filtering\nvar _useState3=useState(''),_useState4=_slicedToArray(_useState3,2),searchTerm=_useState4[0],setSearchTerm=_useState4[1];var _useState5=useState('all'),_useState6=_slicedToArray(_useState5,2),modelAbility=_useState6[0],setModelAbility=_useState6[1];var _useState7=useState('all'),_useState8=_slicedToArray(_useState7,2),status=_useState8[0],setStatus=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),completeDeleteArr=_useState10[0],setCompleteDeleteArr=_useState10[1];var handleChange=function handleChange(event){setSearchTerm(event.target.value);};var handleAbilityChange=function handleAbilityChange(event){setModelAbility(event.target.value);};var handleStatusChange=function handleStatusChange(event){setStatus(event.target.value);};var filter=function filter(registration){if(!registration||typeof searchTerm!=='string')return false;var modelName=registration.model_name?registration.model_name.toLowerCase():'';var modelDescription=registration.model_description?registration.model_description.toLowerCase():'';if(!modelName.includes(searchTerm.toLowerCase())&&!modelDescription.includes(searchTerm.toLowerCase())){return false;}if(modelAbility&&modelAbility!=='all'){if(registration.model_ability.indexOf(modelAbility)<0){return false;}}if(completeDeleteArr.includes(registration.model_name)){registration.model_specs.forEach(function(item){item.cache_status=Array.isArray(item)?[false]:false;});}if(status&&status!=='all'){var judge=registration.model_specs.some(function(spec){return filterCache(spec);});if(judge&&!completeDeleteArr.includes(registration.model_name)){return true;}else{return false;}}return true;};var filterCache=function filterCache(spec){if(spec.model_format==='pytorch'){return spec.cache_status&&spec.cache_status===true;}else{return spec.cache_status&&spec.cache_status.some(function(cs){return cs;});}};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};var update=function update(){if(isCallingApi||isUpdatingModel||cookie.token!=='no_auth'&&!sessionStorage.getItem('token'))return;try{setIsCallingApi(true);fetcher(\"\".concat(endPoint,\"/v1/model_registrations/LLM?detailed=true\"),{method:'GET'}).then(function(response){if(!response.ok){response.json().then(function(errData){return setErrorMsg(\"Server error: \".concat(response.status,\" - \").concat(errData.detail||'Unknown error'));});}else{response.json().then(function(data){var builtinRegistrations=data.filter(function(v){return v.is_builtin;});setRegistrationData(builtinRegistrations);});}});}catch(error){console.error('Error:',error);}finally{setIsCallingApi(false);}};useEffect(function(){update();},[cookie.token]);var style={display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'};return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:'150px 150px 1fr',columnGap:'20px',margin:'30px 2rem'},children:[/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"ability-select-label\",children:\"Model Ability\"}),/*#__PURE__*/_jsxs(Select,{id:\"ability\",labelId:\"ability-select-label\",label:\"Model Ability\",onChange:handleAbilityChange,value:modelAbility,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"generate\",children:\"generate\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"chat\",children:\"chat\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"vision\",children:\"vl-chat\"})]})]}),/*#__PURE__*/_jsxs(FormControl,{variant:\"outlined\",margin:\"normal\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:\"Status\",onChange:handleStatusChange,value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"all\",children:\"all\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:\"cached\"})]})]}),/*#__PURE__*/_jsx(FormControl,{variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:\"Search for model name and description\",value:searchTerm,onChange:handleChange,size:\"small\",hotkey:\"/\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:style,children:registrationData.filter(function(registration){return filter(registration);}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,gpuAvailable:gpuAvailable,modelType:'LLM',onHandleCompleteDelete:handleCompleteDelete},filteredRegistration.model_name);})})]});};export default LaunchLLM;","map":{"version":3,"names":["Box","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","useCookies","ApiContext","fetcher","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","LaunchLLM","_ref","gpuAvailable","endPoint","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","_slicedToArray","cookie","_useState","_useState2","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","modelAbility","setModelAbility","_useState7","_useState8","status","setStatus","_useState9","_useState10","completeDeleteArr","setCompleteDeleteArr","handleChange","event","target","value","handleAbilityChange","handleStatusChange","filter","registration","modelName","model_name","toLowerCase","modelDescription","model_description","includes","model_ability","indexOf","model_specs","forEach","item","cache_status","Array","isArray","judge","some","spec","filterCache","model_format","cs","handleCompleteDelete","concat","_toConsumableArray","update","token","sessionStorage","getItem","method","then","response","ok","json","errData","detail","data","builtinRegistrations","v","is_builtin","error","console","style","display","gridTemplateColumns","paddingLeft","gridGap","m","children","columnGap","margin","variant","id","labelId","label","onChange","size","sx","width","type","hotkey","map","filteredRegistration","url","modelData","modelType","onHandleCompleteDelete"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/launchLLM.js"],"sourcesContent":["import { Box, FormControl, InputLabel, MenuItem, Select } from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetcher from '../../components/fetcher'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst LaunchLLM = ({ gpuAvailable }) => {\n let endPoint = useContext(ApiContext).endPoint\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n\n const [registrationData, setRegistrationData] = useState([])\n // States used for filtering\n const [searchTerm, setSearchTerm] = useState('')\n const [modelAbility, setModelAbility] = useState('all')\n const [status, setStatus] = useState('all')\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n\n const handleChange = (event) => {\n setSearchTerm(event.target.value)\n }\n\n const handleAbilityChange = (event) => {\n setModelAbility(event.target.value)\n }\n\n const handleStatusChange = (event) => {\n setStatus(event.target.value)\n }\n\n const filter = (registration) => {\n if (!registration || typeof searchTerm !== 'string') return false\n const modelName = registration.model_name\n ? registration.model_name.toLowerCase()\n : ''\n const modelDescription = registration.model_description\n ? registration.model_description.toLowerCase()\n : ''\n\n if (\n !modelName.includes(searchTerm.toLowerCase()) &&\n !modelDescription.includes(searchTerm.toLowerCase())\n ) {\n return false\n }\n if (modelAbility && modelAbility !== 'all') {\n if (registration.model_ability.indexOf(modelAbility) < 0) {\n return false\n }\n }\n if (completeDeleteArr.includes(registration.model_name)) {\n registration.model_specs.forEach((item) => {\n item.cache_status = Array.isArray(item) ? [false] : false\n })\n }\n if (status && status !== 'all') {\n const judge = registration.model_specs.some((spec) => {\n return filterCache(spec)\n })\n if (judge && !completeDeleteArr.includes(registration.model_name)) {\n return true\n } else {\n return false\n }\n }\n return true\n }\n\n const filterCache = (spec) => {\n if (spec.model_format === 'pytorch') {\n return spec.cache_status && spec.cache_status === true\n } else {\n return spec.cache_status && spec.cache_status.some((cs) => cs)\n }\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n const update = () => {\n if (\n isCallingApi ||\n isUpdatingModel ||\n (cookie.token !== 'no_auth' && !sessionStorage.getItem('token'))\n )\n return\n\n try {\n setIsCallingApi(true)\n\n fetcher(`${endPoint}/v1/model_registrations/LLM?detailed=true`, {\n method: 'GET',\n }).then((response) => {\n if (!response.ok) {\n response\n .json()\n .then((errData) =>\n setErrorMsg(\n `Server error: ${response.status} - ${\n errData.detail || 'Unknown error'\n }`\n )\n )\n } else {\n response.json().then((data) => {\n const builtinRegistrations = data.filter((v) => v.is_builtin)\n setRegistrationData(builtinRegistrations)\n })\n }\n })\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [cookie.token])\n\n const style = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n gridGap: '2rem 0rem',\n }\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '150px 150px 1fr',\n columnGap: '20px',\n margin: '30px 2rem',\n }}\n >\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"ability-select-label\">Model Ability</InputLabel>\n <Select\n id=\"ability\"\n labelId=\"ability-select-label\"\n label=\"Model Ability\"\n onChange={handleAbilityChange}\n value={modelAbility}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"generate\">generate</MenuItem>\n <MenuItem value=\"chat\">chat</MenuItem>\n <MenuItem value=\"vision\">vl-chat</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <InputLabel id=\"select-status\">Status</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label=\"Status\"\n onChange={handleStatusChange}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"all\">all</MenuItem>\n <MenuItem value=\"cached\">cached</MenuItem>\n </Select>\n </FormControl>\n <FormControl variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label=\"Search for model name and description\"\n value={searchTerm}\n onChange={handleChange}\n size=\"small\"\n hotkey=\"/\"\n />\n </FormControl>\n </div>\n <div style={style}>\n {registrationData\n .filter((registration) => filter(registration))\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n gpuAvailable={gpuAvailable}\n modelType={'LLM'}\n onHandleCompleteDelete={handleCompleteDelete}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchLLM\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -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 _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{Box,Button,FormControlLabel,Radio,RadioGroup,TextField,Tooltip}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 AddControlnet=function AddControlnet(_ref){var onGetControlnetArr=_ref.onGetControlnetArr,scrollRef=_ref.scrollRef;var _useState=useState(0),_useState2=_slicedToArray(_useState,2),count=_useState2[0],setCount=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),controlnetArr=_useState4[0],setControlnetArr=_useState4[1];var _useState5=useState(0),_useState6=_slicedToArray(_useState5,2),arrLength=_useState6[0],setArrLength=_useState6[1];useEffect(function(){var arr=controlnetArr.map(function(item){var name=item.model_name,uri=item.model_uri,model_family=item.model_family;return{model_name:name,model_uri:uri,model_family:model_family};});onGetControlnetArr(arr);setArrLength(controlnetArr.length);arrLength<controlnetArr.length?handleScrollBottom():'';},[controlnetArr]);var handleAddControlnet=function handleAddControlnet(){setCount(count+1);var item={id:count,model_name:'custom-controlnet',model_uri:'/path/to/controlnet-model',model_family:'controlnet'};setControlnetArr([].concat(_toConsumableArray(controlnetArr),[item]));};var handleUpdateSpecsArr=function handleUpdateSpecsArr(index,type,newValue){setControlnetArr(controlnetArr.map(function(item,subIndex){if(subIndex===index){return _objectSpread(_objectSpread({},item),{},_defineProperty({},type,newValue));}return item;}));};var handleDeleteControlnet=function handleDeleteControlnet(index){setControlnetArr(controlnetArr.filter(function(_,subIndex){return index!==subIndex;}));};var handleScrollBottom=function handleScrollBottom(){scrollRef.current.scrollTo({top:scrollRef.current.scrollHeight,behavior:'smooth'});};return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{style:{marginBottom:'20px'},children:\"Controlnet\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",size:\"small\",endIcon:/*#__PURE__*/_jsx(AddIcon,{}),className:\"addBtn\",onClick:handleAddControlnet,children:\"more\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"specs_container\",children:controlnetArr.map(function(item,index){return/*#__PURE__*/_jsxs(\"div\",{className:\"item\",children:[/*#__PURE__*/_jsx(TextField,{error:item.model_name!==''?false:true,style:{minWidth:'60%',marginTop:'10px'},label:\"Model Name\",size:\"small\",value:item.model_name,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_name',e.target.value);}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{error:item.model_uri!==''?false:true,style:{minWidth:'60%'},label:\"Model Path\",size:\"small\",value:item.model_uri,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_uri',e.target.value);}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:\"Model Format\"}),/*#__PURE__*/_jsx(RadioGroup,{value:item.model_format,onChange:function onChange(e){handleUpdateSpecsArr(index,'model_format',e.target.value);},children:/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:\"controlnet\",checked:true,control:/*#__PURE__*/_jsx(Radio,{}),label:\"controlnet\"})},item)})}),/*#__PURE__*/_jsx(Tooltip,{title:\"Delete specs\",placement:\"top\",children:/*#__PURE__*/_jsx(\"div\",{className:\"deleteBtn\",onClick:function onClick(){return handleDeleteControlnet(index);},children:/*#__PURE__*/_jsx(DeleteIcon,{className:\"deleteIcon\"})})})]},item.id);})})]});};export default AddControlnet;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',alignItems:'center',width:'100%'}};","map":{"version":3,"names":["AddIcon","DeleteIcon","Box","Button","FormControlLabel","Radio","RadioGroup","TextField","Tooltip","React","useEffect","useState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AddControlnet","_ref","onGetControlnetArr","scrollRef","_useState","_useState2","_slicedToArray","count","setCount","_useState3","_useState4","controlnetArr","setControlnetArr","_useState5","_useState6","arrLength","setArrLength","arr","map","item","name","model_name","uri","model_uri","model_family","length","handleScrollBottom","handleAddControlnet","id","concat","_toConsumableArray","handleUpdateSpecsArr","index","type","newValue","subIndex","_objectSpread","_defineProperty","handleDeleteControlnet","filter","_","current","scrollTo","top","scrollHeight","behavior","children","style","marginBottom","variant","size","endIcon","className","onClick","error","minWidth","marginTop","label","value","onChange","e","target","padding","paddingLeft","model_format","sx","styles","checkboxWrapper","marginLeft","checked","control","title","placement","baseFormControl","width","margin","display","flexWrap","alignItems"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/components/addControlnet.js"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport {\n Box,\n Button,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport React, { useEffect, useState } from 'react'\n\nconst AddControlnet = ({ onGetControlnetArr, scrollRef }) => {\n const [count, setCount] = useState(0)\n const [controlnetArr, setControlnetArr] = useState([])\n const [arrLength, setArrLength] = useState(0)\n\n useEffect(() => {\n const arr = controlnetArr.map((item) => {\n const { model_name: name, model_uri: uri, model_family } = item\n return {\n model_name: name,\n model_uri: uri,\n model_family,\n }\n })\n onGetControlnetArr(arr)\n setArrLength(controlnetArr.length)\n arrLength < controlnetArr.length ? handleScrollBottom() : ''\n }, [controlnetArr])\n\n const handleAddControlnet = () => {\n setCount(count + 1)\n const item = {\n id: count,\n model_name: 'custom-controlnet',\n model_uri: '/path/to/controlnet-model',\n model_family: 'controlnet',\n }\n setControlnetArr([...controlnetArr, item])\n }\n\n const handleUpdateSpecsArr = (index, type, newValue) => {\n setControlnetArr(\n controlnetArr.map((item, subIndex) => {\n if (subIndex === index) {\n return { ...item, [type]: newValue }\n }\n return item\n })\n )\n }\n\n const handleDeleteControlnet = (index) => {\n setControlnetArr(controlnetArr.filter((_, subIndex) => index !== subIndex))\n }\n\n const handleScrollBottom = () => {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n return (\n <>\n <div>\n <label style={{ marginBottom: '20px' }}>Controlnet</label>\n <Button\n variant=\"contained\"\n size=\"small\"\n endIcon={<AddIcon />}\n className=\"addBtn\"\n onClick={handleAddControlnet}\n >\n more\n </Button>\n </div>\n <div className=\"specs_container\">\n {controlnetArr.map((item, index) => (\n <div className=\"item\" key={item.id}>\n <TextField\n error={item.model_name !== '' ? false : true}\n style={{ minWidth: '60%', marginTop: '10px' }}\n label=\"Model Name\"\n size=\"small\"\n value={item.model_name}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_name', e.target.value)\n }}\n />\n <Box padding=\"15px\"></Box>\n\n <TextField\n error={item.model_uri !== '' ? false : true}\n style={{ minWidth: '60%' }}\n label=\"Model Path\"\n size=\"small\"\n value={item.model_uri}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_uri', e.target.value)\n }}\n />\n <Box padding=\"15px\"></Box>\n\n <label\n style={{\n paddingLeft: 5,\n }}\n >\n Model Format\n </label>\n <RadioGroup\n value={item.model_format}\n onChange={(e) => {\n handleUpdateSpecsArr(index, 'model_format', e.target.value)\n }}\n >\n <Box sx={styles.checkboxWrapper}>\n <Box key={item} sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value=\"controlnet\"\n checked\n control={<Radio />}\n label=\"controlnet\"\n />\n </Box>\n </Box>\n </RadioGroup>\n\n <Tooltip title=\"Delete specs\" placement=\"top\">\n <div\n className=\"deleteBtn\"\n onClick={() => handleDeleteControlnet(index)}\n >\n <DeleteIcon className=\"deleteIcon\" />\n </div>\n </Tooltip>\n </div>\n ))}\n </div>\n </>\n )\n}\n\nexport default AddControlnet\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n },\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|