xinference 0.7.4.1__py3-none-any.whl → 0.7.5__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 +22 -8
- xinference/client/oscar/actor_client.py +78 -8
- xinference/core/model.py +14 -7
- xinference/core/supervisor.py +12 -0
- xinference/deploy/cmdline.py +16 -0
- xinference/deploy/test/test_cmdline.py +1 -0
- xinference/model/embedding/model_spec.json +40 -0
- xinference/model/llm/__init__.py +14 -1
- xinference/model/llm/llm_family.json +10 -1
- xinference/model/llm/llm_family.py +38 -2
- xinference/model/llm/llm_family_modelscope.json +10 -1
- xinference/model/llm/pytorch/chatglm.py +1 -0
- xinference/model/llm/pytorch/core.py +1 -1
- xinference/model/llm/pytorch/utils.py +50 -18
- xinference/model/llm/utils.py +2 -2
- xinference/model/llm/vllm/core.py +13 -4
- xinference/web/ui/build/asset-manifest.json +3 -3
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/js/{main.31d347d8.js → main.236e72e7.js} +3 -3
- xinference/web/ui/build/static/js/main.236e72e7.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/78f2521da2e2a98b075a2666cb782c7e2c019cd3c72199eecd5901c82d8655df.json +1 -0
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/METADATA +9 -2
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/RECORD +29 -29
- xinference/web/ui/build/static/js/main.31d347d8.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/ca8515ecefb4a06c5305417bfd9c04e13cf6b9103f52a47c925921b26c0a9f9d.json +0 -1
- /xinference/web/ui/build/static/js/{main.31d347d8.js.LICENSE.txt → main.236e72e7.js.LICENSE.txt} +0 -0
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/LICENSE +0 -0
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/WHEEL +0 -0
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/entry_points.txt +0 -0
- {xinference-0.7.4.1.dist-info → xinference-0.7.5.dist-info}/top_level.txt +0 -0
|
@@ -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 _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{TabContext,TabList,TabPanel}from'@mui/lab';import{Box,Checkbox,FormControl,FormControlLabel,FormHelperText,Radio,RadioGroup,Tab}from'@mui/material';import Alert from'@mui/material/Alert';import AlertTitle from'@mui/material/AlertTitle';import Button from'@mui/material/Button';import TextField from'@mui/material/TextField';import React,{useContext,useEffect,useState}from'react';import{ApiContext}from'../../components/apiContext';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import Title from'../../components/Title';import{useMode}from'../../theme';import RegisterEmbeddingModel from'./register_embedding';import RegisterRerankModel from'./register_rerank';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var SUPPORTED_LANGUAGES_DICT={en:'English',zh:'Chinese'};var SUPPORTED_FEATURES=['Generate','Chat'];// Convert dictionary of supported languages into list\nvar SUPPORTED_LANGUAGES=Object.keys(SUPPORTED_LANGUAGES_DICT);var RegisterModel=function RegisterModel(){var ERROR_COLOR=useMode();var endPoint=useContext(ApiContext).endPoint;var _useContext=useContext(ApiContext),setErrorMsg=_useContext.setErrorMsg;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),successMsg=_useState2[0],setSuccessMsg=_useState2[1];var _useState3=useState('pytorch'),_useState4=_slicedToArray(_useState3,2),modelFormat=_useState4[0],setModelFormat=_useState4[1];var _useState5=useState(7),_useState6=_slicedToArray(_useState5,2),modelSize=_useState6[0],setModelSize=_useState6[1];var _useState7=useState('/path/to/llama-2'),_useState8=_slicedToArray(_useState7,2),modelUri=_useState8[0],setModelUri=_useState8[1];var _useState9=useState({version:1,context_length:2048,model_name:'custom-llama-2',model_lang:['en'],model_ability:['generate'],model_description:'This is a custom model description.',model_specs:[],prompt_style:undefined}),_useState10=_slicedToArray(_useState9,2),formData=_useState10[0],setFormData=_useState10[1];var _useState11=useState('vicuna'),_useState12=_slicedToArray(_useState11,2),promptStyleLabel=_useState12[0],setPromptStyleLabel=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),promptStyles=_useState14[0],setPromptStyles=_useState14[1];var _React$useState=React.useState('1'),_React$useState2=_slicedToArray(_React$useState,2),tabValue=_React$useState2[0],setTabValue=_React$useState2[1];var errorModelName=formData.model_name.trim().length<=0;var errorModelDescription=formData.model_description.length<0;var errorContextLength=formData.context_length===0;var errorLanguage=formData.model_lang===undefined||formData.model_lang.length===0;var errorAbility=formData.model_ability===undefined||formData.model_ability.length===0;var errorModelSize=formData.model_specs&&formData.model_specs.some(function(spec){return spec.model_size_in_billions===undefined||spec.model_size_in_billions===0;});var errorAny=errorModelName||errorModelDescription||errorContextLength||errorLanguage||errorAbility||errorModelSize;useEffect(function(){var getBuiltInPromptStyles=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var response,errorData,data,res,key,v;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetch(endPoint+'/v1/models/prompts',{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;res=[];for(key in data){v=data[key];v['name']=key;res.push(v);}setPromptStyles(res);case 16:case\"end\":return _context.stop();}},_callee);}));return function getBuiltInPromptStyles(){return _ref.apply(this,arguments);};}();// 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);});}});var isModelFormatPytorch=function isModelFormatPytorch(){return modelFormat==='pytorch';};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 handleClick=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var _getPathComponents,baseDir,filename,ps,_ps$stop,_ps$stop_token_ids,response,errorData;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!isModelFormatPytorch()){_getPathComponents=getPathComponents(modelUri),baseDir=_getPathComponents.baseDir,filename=_getPathComponents.filename;formData.model_specs=[{model_format:modelFormat,model_size_in_billions:modelSize,quantizations:[''],model_id:'',model_file_name_template:filename,model_uri:baseDir}];}else{formData.model_specs=[{model_format:modelFormat,model_size_in_billions:modelSize,quantizations:['4-bit','8-bit','none'],model_id:'',model_uri:modelUri}];}if(formData.model_ability.includes('chat')){ps=promptStyles.find(function(item){return item.name===promptStyleLabel;});if(ps){formData.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};}}if(!errorAny){_context2.next=5;break;}setErrorMsg('Please fill in valid value for all fields');return _context2.abrupt(\"return\");case 5:_context2.prev=5;_context2.next=8;return fetch(endPoint+'/v1/model_registrations/LLM',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model:JSON.stringify(formData),persist:true})});case 8:response=_context2.sent;if(response.ok){_context2.next=16;break;}_context2.next=12;return response.json();case 12: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=17;break;case 16:setSuccessMsg('Model has been registered successfully! Navigate to launch model page to proceed.');case 17:_context2.next=23;break;case 19:_context2.prev=19;_context2.t0=_context2[\"catch\"](5);console.error('There was a problem with the fetch operation:',_context2.t0);setErrorMsg(_context2.t0.message||'An unexpected error occurred.');case 23:case\"end\":return _context2.stop();}},_callee2,null,[[5,19]]);}));return function handleClick(){return _ref2.apply(this,arguments);};}();var toggleLanguage=function toggleLanguage(lang){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])}));}};var toggleAbility=function toggleAbility(ability){if(formData.model_ability.includes(ability)){setFormData(_objectSpread(_objectSpread({},formData),{},{model_ability:formData.model_ability.filter(function(a){return a!==ability;})}));}else{setFormData(_objectSpread(_objectSpread({},formData),{},{model_ability:[].concat(_toConsumableArray(formData.model_ability),[ability])}));}};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:\"1\"}),/*#__PURE__*/_jsx(Tab,{label:\"Embedding Model\",value:\"2\"}),/*#__PURE__*/_jsx(Tab,{label:\"Rerank Model\",value:\"3\"})]})}),/*#__PURE__*/_jsxs(TabPanel,{value:\"1\",sx:{padding:0},children:[/*#__PURE__*/_jsx(Box,{padding:\"20px\"}),/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[/*#__PURE__*/_jsx(TextField,{label:\"Model Name\",error:errorModelName,defaultValue: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\"}),/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5},children:\"Model Format\"}),/*#__PURE__*/_jsx(RadioGroup,{value:modelFormat,onChange:function onChange(e){setModelFormat(e.target.value);},children:/*#__PURE__*/_jsxs(Box,{sx:styles.checkboxWrapper,children:[/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:\"pytorch\",control:/*#__PURE__*/_jsx(Radio,{}),label:\"PyTorch\"})}),/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:\"ggmlv3\",control:/*#__PURE__*/_jsx(Radio,{}),label:\"GGML\"})}),/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:\"ggufv2\",control:/*#__PURE__*/_jsx(Radio,{}),label:\"GGUF\"})})]})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{error:errorContextLength,label:\"Context Length\",value:formData.context_length,size:\"small\",onChange:function onChange(event){var value=event.target.value;// Remove leading zeros\nif(/^0+/.test(value)){value=value.replace(/^0+/,'')||'0';}// Ensure it's a positive integer, if not set it to the minimum\nif(!/^\\d+$/.test(value)||parseInt(value)<0){value='0';}// Update with the processed value\nsetFormData(_objectSpread(_objectSpread({},formData),{},{context_length:Number(value)}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{label:\"Model Size in Billions\",size:\"small\",error:errorModelSize,value:modelSize,onChange:function onChange(e){var value=e.target.value;// Remove leading zeros\nif(/^0+/.test(value)){value=value.replace(/^0+/,'')||'0';}// Ensure it's a positive integer, if not set it to the minimum\nif(!/^\\d+$/.test(value)||parseInt(value)<0){value='0';}setModelSize(Number(value));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(TextField,{label:\"Model Path\",size:\"small\",value:modelUri,onChange:function onChange(e){setModelUri(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,{label:\"Model Description (Optional)\",error:errorModelDescription,defaultValue:formData.model_description,size:\"small\",onChange:function onChange(event){return setFormData(_objectSpread(_objectSpread({},formData),{},{model_description:event.target.value}));}}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:errorLanguage?ERROR_COLOR:'inherit'},children:\"Model Languages\"}),/*#__PURE__*/_jsx(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:formData.model_lang.includes(lang),onChange:function onChange(){return toggleLanguage(lang);},name:lang,sx:errorLanguage?{'color':ERROR_COLOR,'&.Mui-checked':{color:ERROR_COLOR}}:{}}),label:SUPPORTED_LANGUAGES_DICT[lang],style:{paddingLeft:10,color:errorLanguage?ERROR_COLOR:'inherit'}})},lang);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"}),/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:errorAbility?ERROR_COLOR:'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,sx:errorAbility?{'color':ERROR_COLOR,'&.Mui-checked':{color:ERROR_COLOR}}:{}}),label:ability,style:{paddingLeft:10,color:errorAbility?ERROR_COLOR:'inherit'}})},ability);})}),/*#__PURE__*/_jsx(Box,{padding:\"15px\"})]}),formData.model_ability.includes('chat')&&/*#__PURE__*/_jsxs(FormControl,{sx:styles.baseFormControl,children:[/*#__PURE__*/_jsx(\"label\",{style:{paddingLeft:5,color:errorAbility?ERROR_COLOR:'inherit'},children:\"Prompt styles\"}),/*#__PURE__*/_jsx(FormHelperText,{children:\"Select a prompt style that aligns with the training data of your model.\"}),/*#__PURE__*/_jsx(RadioGroup,{value:promptStyleLabel,onChange:function onChange(e){setPromptStyleLabel(e.target.value);},children:/*#__PURE__*/_jsx(Box,{sx:styles.checkboxWrapper,children:promptStyles.map(function(p){return/*#__PURE__*/_jsx(Box,{sx:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(FormControlLabel,{value:p.name,control:/*#__PURE__*/_jsx(Radio,{}),label:p.name})});})})})]}),/*#__PURE__*/_jsxs(Box,{width:'100%',children:[successMsg!==''&&/*#__PURE__*/_jsxs(Alert,{severity:\"success\",children:[/*#__PURE__*/_jsx(AlertTitle,{children:\"Success\"}),successMsg]}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",color:\"primary\",type:\"submit\",onClick:handleClick,children:\"Register Model\"})]})]}),/*#__PURE__*/_jsx(TabPanel,{value:\"2\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterEmbeddingModel,{})}),/*#__PURE__*/_jsx(TabPanel,{value:\"3\",sx:{padding:0},children:/*#__PURE__*/_jsx(RegisterRerankModel,{})})]})]});};export default RegisterModel;var styles={baseFormControl:{width:'100%',margin:'normal',size:'small'},checkboxWrapper:{display:'flex',flexWrap:'wrap',maxWidth:'80%'},labelPaddingLeft:{paddingLeft:5},formControlLabelPaddingLeft:{paddingLeft:10},buttonBox:{width:'100%',margin:'20px'},error:{fontWeight:'bold',margin:'5px 0',padding:'1px',borderRadius:'5px'}};","map":{"version":3,"names":["TabContext","TabList","TabPanel","Box","Checkbox","FormControl","FormControlLabel","FormHelperText","Radio","RadioGroup","Tab","Alert","AlertTitle","Button","TextField","React","useContext","useEffect","useState","ApiContext","ErrorMessageSnackBar","Title","useMode","RegisterEmbeddingModel","RegisterRerankModel","jsx","_jsx","jsxs","_jsxs","SUPPORTED_LANGUAGES_DICT","en","zh","SUPPORTED_FEATURES","SUPPORTED_LANGUAGES","Object","keys","RegisterModel","ERROR_COLOR","endPoint","_useContext","setErrorMsg","_useState","_useState2","_slicedToArray","successMsg","setSuccessMsg","_useState3","_useState4","modelFormat","setModelFormat","_useState5","_useState6","modelSize","setModelSize","_useState7","_useState8","modelUri","setModelUri","_useState9","version","context_length","model_name","model_lang","model_ability","model_description","model_specs","prompt_style","undefined","_useState10","formData","setFormData","_useState11","_useState12","promptStyleLabel","setPromptStyleLabel","_useState13","_useState14","promptStyles","setPromptStyles","_React$useState","_React$useState2","tabValue","setTabValue","errorModelName","trim","length","errorModelDescription","errorContextLength","errorLanguage","errorAbility","errorModelSize","some","spec","model_size_in_billions","errorAny","getBuiltInPromptStyles","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","errorData","data","res","key","v","wrap","_callee$","_context","prev","next","fetch","method","headers","sent","ok","json","concat","status","detail","push","stop","apply","arguments","catch","error","message","console","isModelFormatPytorch","getPathComponents","path","normalizedPath","replace","baseDir","substring","lastIndexOf","filename","handleClick","_ref2","_callee2","_getPathComponents","ps","_ps$stop","_ps$stop_token_ids","_callee2$","_context2","model_format","quantizations","model_id","model_file_name_template","model_uri","includes","find","item","name","style_name","system_prompt","roles","intra_message_sep","inter_message_sep","stop_token_ids","abrupt","body","JSON","stringify","model","persist","t0","toggleLanguage","lang","_objectSpread","filter","l","_toConsumableArray","toggleAbility","ability","a","m","children","title","value","sx","borderBottom","borderColor","onChange","e","label","padding","styles","baseFormControl","defaultValue","size","helperText","event","target","style","paddingLeft","checkboxWrapper","marginLeft","control","test","parseInt","Number","color","map","marginRight","checked","toLowerCase","p","width","severity","variant","type","onClick","margin","display","flexWrap","maxWidth","labelPaddingLeft","formControlLabelPaddingLeft","buttonBox","fontWeight","borderRadius"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/register_model/index.js"],"sourcesContent":["import { TabContext, TabList, TabPanel } from '@mui/lab'\nimport {\n Box,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormHelperText,\n Radio,\n RadioGroup,\n Tab,\n} from '@mui/material'\nimport Alert from '@mui/material/Alert'\nimport AlertTitle from '@mui/material/AlertTitle'\nimport Button from '@mui/material/Button'\nimport TextField from '@mui/material/TextField'\nimport React, { useContext, useEffect, useState } from 'react'\n\nimport { ApiContext } from '../../components/apiContext'\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport Title from '../../components/Title'\nimport { useMode } from '../../theme'\nimport RegisterEmbeddingModel from './register_embedding'\nimport RegisterRerankModel from './register_rerank'\n\nconst SUPPORTED_LANGUAGES_DICT = { en: 'English', zh: 'Chinese' }\nconst SUPPORTED_FEATURES = ['Generate', 'Chat']\n\n// Convert dictionary of supported languages into list\nconst SUPPORTED_LANGUAGES = Object.keys(SUPPORTED_LANGUAGES_DICT)\n\nconst RegisterModel = () => {\n const ERROR_COLOR = useMode()\n const endPoint = useContext(ApiContext).endPoint\n const { setErrorMsg } = useContext(ApiContext)\n const [successMsg, setSuccessMsg] = useState('')\n const [modelFormat, setModelFormat] = useState('pytorch')\n const [modelSize, setModelSize] = useState(7)\n const [modelUri, setModelUri] = useState('/path/to/llama-2')\n const [formData, setFormData] = useState({\n version: 1,\n context_length: 2048,\n model_name: 'custom-llama-2',\n model_lang: ['en'],\n model_ability: ['generate'],\n model_description: 'This is a custom model description.',\n model_specs: [],\n prompt_style: undefined,\n })\n const [promptStyleLabel, setPromptStyleLabel] = useState('vicuna')\n const [promptStyles, setPromptStyles] = useState([])\n const [tabValue, setTabValue] = React.useState('1')\n\n const errorModelName = formData.model_name.trim().length <= 0\n const errorModelDescription = formData.model_description.length < 0\n const errorContextLength = formData.context_length === 0\n const errorLanguage =\n formData.model_lang === undefined || formData.model_lang.length === 0\n const errorAbility =\n formData.model_ability === undefined || formData.model_ability.length === 0\n const errorModelSize =\n formData.model_specs &&\n formData.model_specs.some((spec) => {\n return (\n spec.model_size_in_billions === undefined ||\n spec.model_size_in_billions === 0\n )\n })\n const errorAny =\n errorModelName ||\n errorModelDescription ||\n errorContextLength ||\n errorLanguage ||\n errorAbility ||\n errorModelSize\n\n useEffect(() => {\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 // 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 })\n\n const isModelFormatPytorch = () => {\n return modelFormat === 'pytorch'\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 handleClick = async () => {\n if (!isModelFormatPytorch()) {\n const { baseDir, filename } = getPathComponents(modelUri)\n formData.model_specs = [\n {\n model_format: modelFormat,\n model_size_in_billions: modelSize,\n quantizations: [''],\n model_id: '',\n model_file_name_template: filename,\n model_uri: baseDir,\n },\n ]\n } else {\n formData.model_specs = [\n {\n model_format: modelFormat,\n model_size_in_billions: modelSize,\n quantizations: ['4-bit', '8-bit', 'none'],\n model_id: '',\n model_uri: modelUri,\n },\n ]\n }\n\n if (formData.model_ability.includes('chat')) {\n const ps = promptStyles.find((item) => item.name === promptStyleLabel)\n if (ps) {\n formData.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 }\n }\n\n if (errorAny) {\n setErrorMsg('Please fill in valid value for all fields')\n return\n }\n\n try {\n const response = await fetch(endPoint + '/v1/model_registrations/LLM', {\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 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 setSuccessMsg(\n 'Model has been registered successfully! Navigate to launch model page to proceed.'\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 toggleLanguage = (lang) => {\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 }\n\n const toggleAbility = (ability) => {\n if (formData.model_ability.includes(ability)) {\n setFormData({\n ...formData,\n model_ability: formData.model_ability.filter((a) => a !== ability),\n })\n } else {\n setFormData({\n ...formData,\n model_ability: [...formData.model_ability, ability],\n })\n }\n }\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=\"1\" />\n <Tab label=\"Embedding Model\" value=\"2\" />\n <Tab label=\"Rerank Model\" value=\"3\" />\n </TabList>\n </Box>\n <TabPanel value=\"1\" sx={{ padding: 0 }}>\n <Box padding=\"20px\"></Box>\n {/* Base Information */}\n <FormControl sx={styles.baseFormControl}>\n <TextField\n label=\"Model Name\"\n error={errorModelName}\n defaultValue={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 <label\n style={{\n paddingLeft: 5,\n }}\n >\n Model Format\n </label>\n\n <RadioGroup\n value={modelFormat}\n onChange={(e) => {\n setModelFormat(e.target.value)\n }}\n >\n <Box sx={styles.checkboxWrapper}>\n <Box sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value=\"pytorch\"\n control={<Radio />}\n label=\"PyTorch\"\n />\n </Box>\n <Box sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value=\"ggmlv3\"\n control={<Radio />}\n label=\"GGML\"\n />\n </Box>\n <Box sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value=\"ggufv2\"\n control={<Radio />}\n label=\"GGUF\"\n />\n </Box>\n </Box>\n </RadioGroup>\n <Box padding=\"15px\"></Box>\n\n <TextField\n error={errorContextLength}\n label=\"Context Length\"\n value={formData.context_length}\n size=\"small\"\n onChange={(event) => {\n let value = event.target.value\n // Remove leading zeros\n if (/^0+/.test(value)) {\n value = value.replace(/^0+/, '') || '0'\n }\n // Ensure it's a positive integer, if not set it to the minimum\n if (!/^\\d+$/.test(value) || parseInt(value) < 0) {\n value = '0'\n }\n // Update with the processed value\n setFormData({\n ...formData,\n context_length: Number(value),\n })\n }}\n />\n <Box padding=\"15px\"></Box>\n\n <TextField\n label=\"Model Size in Billions\"\n size=\"small\"\n error={errorModelSize}\n value={modelSize}\n onChange={(e) => {\n let value = e.target.value\n // Remove leading zeros\n if (/^0+/.test(value)) {\n value = value.replace(/^0+/, '') || '0'\n }\n // Ensure it's a positive integer, if not set it to the minimum\n if (!/^\\d+$/.test(value) || parseInt(value) < 0) {\n value = '0'\n }\n setModelSize(Number(value))\n }}\n />\n <Box padding=\"15px\"></Box>\n\n <TextField\n label=\"Model Path\"\n size=\"small\"\n value={modelUri}\n onChange={(e) => {\n setModelUri(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 label=\"Model Description (Optional)\"\n error={errorModelDescription}\n defaultValue={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 <label\n style={{\n paddingLeft: 5,\n color: errorLanguage ? ERROR_COLOR : '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={formData.model_lang.includes(lang)}\n onChange={() => toggleLanguage(lang)}\n name={lang}\n sx={\n errorLanguage\n ? {\n 'color': ERROR_COLOR,\n '&.Mui-checked': {\n color: ERROR_COLOR,\n },\n }\n : {}\n }\n />\n }\n label={SUPPORTED_LANGUAGES_DICT[lang]}\n style={{\n paddingLeft: 10,\n color: errorLanguage ? ERROR_COLOR : 'inherit',\n }}\n />\n </Box>\n ))}\n </Box>\n <Box padding=\"15px\"></Box>\n\n <label\n style={{\n paddingLeft: 5,\n color: errorAbility ? ERROR_COLOR : '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 sx={\n errorAbility\n ? {\n 'color': ERROR_COLOR,\n '&.Mui-checked': {\n color: ERROR_COLOR,\n },\n }\n : {}\n }\n />\n }\n label={ability}\n style={{\n paddingLeft: 10,\n color: errorAbility ? ERROR_COLOR : 'inherit',\n }}\n />\n </Box>\n ))}\n </Box>\n <Box padding=\"15px\"></Box>\n </FormControl>\n\n {formData.model_ability.includes('chat') && (\n <FormControl sx={styles.baseFormControl}>\n <label\n style={{\n paddingLeft: 5,\n color: errorAbility ? ERROR_COLOR : 'inherit',\n }}\n >\n Prompt styles\n </label>\n <FormHelperText>\n Select a prompt style that aligns with the training data of your\n model.\n </FormHelperText>\n <RadioGroup\n value={promptStyleLabel}\n onChange={(e) => {\n setPromptStyleLabel(e.target.value)\n }}\n >\n <Box sx={styles.checkboxWrapper}>\n {promptStyles.map((p) => (\n <Box sx={{ marginLeft: '10px' }}>\n <FormControlLabel\n value={p.name}\n control={<Radio />}\n label={p.name}\n />\n </Box>\n ))}\n </Box>\n </RadioGroup>\n </FormControl>\n )}\n\n <Box width={'100%'}>\n {successMsg !== '' && (\n <Alert severity=\"success\">\n <AlertTitle>Success</AlertTitle>\n {successMsg}\n </Alert>\n )}\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleClick}\n >\n Register Model\n </Button>\n </Box>\n </TabPanel>\n <TabPanel value=\"2\" sx={{ padding: 0 }}>\n <RegisterEmbeddingModel />\n </TabPanel>\n <TabPanel value=\"3\" sx={{ padding: 0 }}>\n <RegisterRerankModel />\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default RegisterModel\n\nconst styles = {\n baseFormControl: {\n width: '100%',\n margin: 'normal',\n size: 'small',\n },\n checkboxWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n maxWidth: '80%',\n },\n labelPaddingLeft: {\n paddingLeft: 5,\n },\n formControlLabelPaddingLeft: {\n paddingLeft: 10,\n },\n buttonBox: {\n width: '100%',\n margin: '20px',\n },\n error: {\n fontWeight: 'bold',\n margin: '5px 0',\n padding: '1px',\n borderRadius: '5px',\n },\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
/xinference/web/ui/build/static/js/{main.31d347d8.js.LICENSE.txt → main.236e72e7.js.LICENSE.txt}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|