xinference 1.6.0.post1__py3-none-any.whl → 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xinference might be problematic. Click here for more details.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +79 -2
- xinference/client/restful/restful_client.py +65 -3
- xinference/conftest.py +0 -7
- xinference/core/media_interface.py +132 -8
- xinference/core/model.py +44 -6
- xinference/core/scheduler.py +1 -10
- xinference/core/supervisor.py +8 -17
- xinference/core/worker.py +5 -27
- xinference/deploy/cmdline.py +6 -2
- xinference/model/audio/chattts.py +24 -39
- xinference/model/audio/cosyvoice.py +18 -30
- xinference/model/audio/funasr.py +42 -0
- xinference/model/audio/model_spec.json +71 -1
- xinference/model/audio/model_spec_modelscope.json +76 -2
- xinference/model/audio/utils.py +75 -0
- xinference/model/core.py +1 -0
- xinference/model/embedding/__init__.py +74 -18
- xinference/model/embedding/core.py +98 -589
- xinference/model/embedding/embed_family.py +133 -0
- xinference/{thirdparty/omnilmm/train → model/embedding/flag}/__init__.py +1 -1
- xinference/model/embedding/flag/core.py +282 -0
- xinference/model/embedding/model_spec.json +24 -0
- xinference/model/embedding/model_spec_modelscope.json +24 -0
- xinference/model/embedding/sentence_transformers/__init__.py +13 -0
- xinference/model/embedding/sentence_transformers/core.py +399 -0
- xinference/model/embedding/vllm/core.py +95 -0
- xinference/model/image/model_spec.json +30 -3
- xinference/model/image/model_spec_modelscope.json +41 -2
- xinference/model/image/stable_diffusion/core.py +144 -53
- xinference/model/llm/__init__.py +6 -54
- xinference/model/llm/core.py +19 -5
- xinference/model/llm/llama_cpp/core.py +59 -3
- xinference/model/llm/llama_cpp/memory.py +457 -0
- xinference/model/llm/llm_family.json +247 -402
- xinference/model/llm/llm_family.py +88 -16
- xinference/model/llm/llm_family_modelscope.json +260 -421
- xinference/model/llm/llm_family_openmind_hub.json +0 -34
- xinference/model/llm/sglang/core.py +8 -0
- xinference/model/llm/transformers/__init__.py +27 -6
- xinference/model/llm/transformers/chatglm.py +4 -2
- xinference/model/llm/transformers/core.py +49 -28
- xinference/model/llm/transformers/deepseek_v2.py +6 -49
- xinference/model/llm/transformers/gemma3.py +119 -164
- xinference/model/llm/transformers/multimodal/__init__.py +13 -0
- xinference/model/llm/transformers/{cogagent.py → multimodal/cogagent.py} +58 -95
- xinference/model/llm/transformers/multimodal/core.py +205 -0
- xinference/model/llm/transformers/{deepseek_vl2.py → multimodal/deepseek_vl2.py} +59 -120
- xinference/model/llm/transformers/multimodal/gemma3.py +117 -0
- xinference/model/llm/transformers/{glm4v.py → multimodal/glm4v.py} +57 -93
- xinference/model/llm/transformers/multimodal/intern_vl.py +412 -0
- xinference/model/llm/transformers/{minicpmv26.py → multimodal/minicpmv26.py} +55 -102
- xinference/model/llm/transformers/{ovis2.py → multimodal/ovis2.py} +114 -175
- xinference/model/llm/transformers/{qwen-omni.py → multimodal/qwen-omni.py} +82 -167
- xinference/model/llm/transformers/multimodal/qwen2_audio.py +131 -0
- xinference/model/llm/transformers/{qwen2_vl.py → multimodal/qwen2_vl.py} +224 -256
- xinference/model/llm/transformers/opt.py +4 -2
- xinference/model/llm/transformers/utils.py +6 -37
- xinference/model/llm/utils.py +11 -0
- xinference/model/llm/vllm/core.py +7 -0
- xinference/model/rerank/core.py +91 -3
- xinference/model/rerank/model_spec.json +24 -0
- xinference/model/rerank/model_spec_modelscope.json +24 -0
- xinference/model/rerank/utils.py +20 -2
- xinference/model/utils.py +38 -1
- xinference/model/video/diffusers.py +65 -3
- xinference/model/video/model_spec.json +31 -4
- xinference/model/video/model_spec_modelscope.json +32 -4
- xinference/web/ui/build/asset-manifest.json +6 -6
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/css/main.013f296b.css +2 -0
- xinference/web/ui/build/static/css/main.013f296b.css.map +1 -0
- xinference/web/ui/build/static/js/main.8a9e3ba0.js +3 -0
- xinference/web/ui/build/static/js/main.8a9e3ba0.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/34cfbfb7836e136ba3261cfd411cc554bf99ba24b35dcceebeaa4f008cb3c9dc.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/55b9fb40b57fa926e8f05f31c2f96467e76e5ad62f033dca97c03f9e8c4eb4fe.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/567e49df411efb24425d289bb484758cb57067ca54f8b5c67fe4505f698deb96.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6595880facebca7ceace6f17cf21c3a5a9219a2f52fb0ba9f3cf1131eddbcf6b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/aa998bc2d9c11853add6b8a2e08f50327f56d8824ccaaec92d6dde1b305f0d85.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c748246b1d7bcebc16153be69f37e955bb2145526c47dd425aeeff70d3004dbc.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/e31234e95d60a5a7883fbcd70de2475dc1c88c90705df1a530abb68f86f80a51.json +1 -0
- xinference/web/ui/src/locales/en.json +21 -8
- xinference/web/ui/src/locales/ja.json +224 -0
- xinference/web/ui/src/locales/ko.json +224 -0
- xinference/web/ui/src/locales/zh.json +21 -8
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/METADATA +14 -11
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/RECORD +93 -100
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/WHEEL +1 -1
- xinference/model/llm/transformers/cogvlm2.py +0 -442
- xinference/model/llm/transformers/cogvlm2_video.py +0 -333
- xinference/model/llm/transformers/deepseek_vl.py +0 -280
- xinference/model/llm/transformers/glm_edge_v.py +0 -213
- xinference/model/llm/transformers/intern_vl.py +0 -526
- xinference/model/llm/transformers/internlm2.py +0 -94
- xinference/model/llm/transformers/minicpmv25.py +0 -193
- xinference/model/llm/transformers/omnilmm.py +0 -132
- xinference/model/llm/transformers/qwen2_audio.py +0 -179
- xinference/model/llm/transformers/qwen_vl.py +0 -360
- xinference/thirdparty/omnilmm/LICENSE +0 -201
- xinference/thirdparty/omnilmm/chat.py +0 -218
- xinference/thirdparty/omnilmm/constants.py +0 -4
- xinference/thirdparty/omnilmm/conversation.py +0 -332
- xinference/thirdparty/omnilmm/model/__init__.py +0 -1
- xinference/thirdparty/omnilmm/model/omnilmm.py +0 -595
- xinference/thirdparty/omnilmm/model/resampler.py +0 -166
- xinference/thirdparty/omnilmm/model/utils.py +0 -578
- xinference/thirdparty/omnilmm/train/train_utils.py +0 -150
- xinference/thirdparty/omnilmm/utils.py +0 -134
- xinference/web/ui/build/static/css/main.337afe76.css +0 -2
- xinference/web/ui/build/static/css/main.337afe76.css.map +0 -1
- xinference/web/ui/build/static/js/main.ae579a97.js +0 -3
- xinference/web/ui/build/static/js/main.ae579a97.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/12e02ee790dbf57ead09a241a93bb5f893393aa36628ca741d44390e836a103f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2fdc61dcb6a9d1fbcb44be592d0e87d8c3f21297a7327559ef5345665f8343f7.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/3d596a3e8dd6430d7ce81d164e32c31f8d47cfa5f725c328a298754d78563e14.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/5c08e2cd07809ed3e41486b16652253404cbb63a3ff8d0366ee50f57e2413cea.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8472e58a31720892d534f3febda31f746b25ec4aa60787eef34217b074e67965.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/dc249829767b8abcbc3677e0b07b6d3ecbfdfe6d08cfe23a665eb33373a9aa9d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f91af913d7f91c410719ab13136aaed3aaf0f8dda06652f25c42cb5231587398.json +0 -1
- /xinference/{thirdparty/omnilmm → model/embedding/vllm}/__init__.py +0 -0
- /xinference/web/ui/build/static/js/{main.ae579a97.js.LICENSE.txt → main.8a9e3ba0.js.LICENSE.txt} +0 -0
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/entry_points.txt +0 -0
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/licenses/LICENSE +0 -0
- {xinference-1.6.0.post1.dist-info → xinference-1.7.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"export var llmAllDataKey=['model_uid','model_name','model_type','model_engine','model_format','model_size_in_billions','quantization','n_worker','n_gpu','n_gpu_layers','replica','request_limits','worker_ip','gpu_idx','download_hub','model_path','reasoning_content','gguf_quantization','gguf_model_path','cpu_offload','peft_model_config','quantization_config','enable_thinking','multimodal_projectors'];export var additionalParameterTipList={'transformers':['torch_dtype','device'],'llama.cpp':['n_ctx','use_mmap','use_mlock'],'vllm':['block_size','gpu_memory_utilization','max_num_seqs','max_model_len','guided_decoding_backend','scheduling_policy','tensor_parallel_size','pipeline_parallel_size','enable_prefix_caching','enable_chunked_prefill','enforce_eager','cpu_offload_gb','disable_custom_all_reduce','limit_mm_per_prompt','model_quantization','mm_processor_kwargs','min_pixels','max_pixels'],'sglang':['mem_fraction_static','attention_reduce_in_fp32','tp_size','dp_size','chunked_prefill_size','cpu_offload_gb','enable_dp_attention','enable_ep_moe'],'mlx':['cache_limit_gb','max_kv_size']};export var quantizationParametersTipList=['load_in_8bit','load_in_4bit','llm_int8_threshold','llm_int8_skip_modules','llm_int8_enable_fp32_cpu_offload','llm_int8_has_fp16_weight','bnb_4bit_compute_dtype','bnb_4bit_quant_type','bnb_4bit_use_double_quant','bnb_4bit_quant_storage'];export var featureModels=[{type:'llm',feature_models:['qwen3','deepseek-v3-0324','deepseek-r1-0528','deepseek-r1-0528-qwen3','deepseek-r1-distill-llama','qwen2.5-instruct','qwen2.5-vl-instruct','glm4-0414','QwQ-32B','gemma-3-it']},{type:'embedding',feature_models:['Qwen3-Embedding-0.6B','Qwen3-Embedding-4B','Qwen3-Embedding-8B','bge-large-zh-v1.5','bge-large-en-v1.5','bge-m3','gte-Qwen2','jina-embeddings-v3']},{type:'rerank',feature_models:[]},{type:'image',feature_models:['FLUX.1-dev','FLUX.1-schnell','sd3.5-large','HunyuanDiT-v1.2','cogview4','sd3.5-medium']},{type:'audio',feature_models:['CosyVoice2-0.5B','FishSpeech-1.5','F5-TTS','ChatTTS','SenseVoiceSmall','whisper-large-v3']},{type:'video',feature_models:[]}];","map":{"version":3,"names":["llmAllDataKey","additionalParameterTipList","quantizationParametersTipList","featureModels","type","feature_models"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/data/data.js"],"sourcesContent":["export const llmAllDataKey = [\n 'model_uid',\n 'model_name',\n 'model_type',\n 'model_engine',\n 'model_format',\n 'model_size_in_billions',\n 'quantization',\n 'n_worker',\n 'n_gpu',\n 'n_gpu_layers',\n 'replica',\n 'request_limits',\n 'worker_ip',\n 'gpu_idx',\n 'download_hub',\n 'model_path',\n 'reasoning_content',\n 'gguf_quantization',\n 'gguf_model_path',\n 'cpu_offload',\n 'peft_model_config',\n 'quantization_config',\n 'enable_thinking',\n 'multimodal_projectors',\n]\n\nexport const additionalParameterTipList = {\n 'transformers': ['torch_dtype', 'device'],\n 'llama.cpp': ['n_ctx', 'use_mmap', 'use_mlock'],\n 'vllm': [\n 'block_size',\n 'gpu_memory_utilization',\n 'max_num_seqs',\n 'max_model_len',\n 'guided_decoding_backend',\n 'scheduling_policy',\n 'tensor_parallel_size',\n 'pipeline_parallel_size',\n 'enable_prefix_caching',\n 'enable_chunked_prefill',\n 'enforce_eager',\n 'cpu_offload_gb',\n 'disable_custom_all_reduce',\n 'limit_mm_per_prompt',\n 'model_quantization',\n 'mm_processor_kwargs',\n 'min_pixels',\n 'max_pixels',\n ],\n 'sglang': [\n 'mem_fraction_static',\n 'attention_reduce_in_fp32',\n 'tp_size',\n 'dp_size',\n 'chunked_prefill_size',\n 'cpu_offload_gb',\n 'enable_dp_attention',\n 'enable_ep_moe',\n ],\n 'mlx': ['cache_limit_gb', 'max_kv_size'],\n}\n\nexport const quantizationParametersTipList = [\n 'load_in_8bit',\n 'load_in_4bit',\n 'llm_int8_threshold',\n 'llm_int8_skip_modules',\n 'llm_int8_enable_fp32_cpu_offload',\n 'llm_int8_has_fp16_weight',\n 'bnb_4bit_compute_dtype',\n 'bnb_4bit_quant_type',\n 'bnb_4bit_use_double_quant',\n 'bnb_4bit_quant_storage',\n]\n\nexport const featureModels = [\n {\n type: 'llm',\n feature_models: [\n 'qwen3',\n 'deepseek-v3-0324',\n 'deepseek-r1-0528',\n 'deepseek-r1-0528-qwen3',\n 'deepseek-r1-distill-llama',\n 'qwen2.5-instruct',\n 'qwen2.5-vl-instruct',\n 'glm4-0414',\n 'QwQ-32B',\n 'gemma-3-it',\n ],\n },\n {\n type: 'embedding',\n feature_models: [\n 'Qwen3-Embedding-0.6B',\n 'Qwen3-Embedding-4B',\n 'Qwen3-Embedding-8B',\n 'bge-large-zh-v1.5',\n 'bge-large-en-v1.5',\n 'bge-m3',\n 'gte-Qwen2',\n 'jina-embeddings-v3',\n ],\n },\n {\n type: 'rerank',\n feature_models: [],\n },\n {\n type: 'image',\n feature_models: [\n 'FLUX.1-dev',\n 'FLUX.1-schnell',\n 'sd3.5-large',\n 'HunyuanDiT-v1.2',\n 'cogview4',\n 'sd3.5-medium',\n ],\n },\n {\n type: 'audio',\n feature_models: [\n 'CosyVoice2-0.5B',\n 'FishSpeech-1.5',\n 'F5-TTS',\n 'ChatTTS',\n 'SenseVoiceSmall',\n 'whisper-large-v3',\n ],\n },\n {\n type: 'video',\n feature_models: [],\n },\n]\n"],"mappings":"AAAA,MAAO,IAAM,CAAAA,aAAa,CAAG,CAC3B,WAAW,CACX,YAAY,CACZ,YAAY,CACZ,cAAc,CACd,cAAc,CACd,wBAAwB,CACxB,cAAc,CACd,UAAU,CACV,OAAO,CACP,cAAc,CACd,SAAS,CACT,gBAAgB,CAChB,WAAW,CACX,SAAS,CACT,cAAc,CACd,YAAY,CACZ,mBAAmB,CACnB,mBAAmB,CACnB,iBAAiB,CACjB,aAAa,CACb,mBAAmB,CACnB,qBAAqB,CACrB,iBAAiB,CACjB,uBAAuB,CACxB,CAED,MAAO,IAAM,CAAAC,0BAA0B,CAAG,CACxC,cAAc,CAAE,CAAC,aAAa,CAAE,QAAQ,CAAC,CACzC,WAAW,CAAE,CAAC,OAAO,CAAE,UAAU,CAAE,WAAW,CAAC,CAC/C,MAAM,CAAE,CACN,YAAY,CACZ,wBAAwB,CACxB,cAAc,CACd,eAAe,CACf,yBAAyB,CACzB,mBAAmB,CACnB,sBAAsB,CACtB,wBAAwB,CACxB,uBAAuB,CACvB,wBAAwB,CACxB,eAAe,CACf,gBAAgB,CAChB,2BAA2B,CAC3B,qBAAqB,CACrB,oBAAoB,CACpB,qBAAqB,CACrB,YAAY,CACZ,YAAY,CACb,CACD,QAAQ,CAAE,CACR,qBAAqB,CACrB,0BAA0B,CAC1B,SAAS,CACT,SAAS,CACT,sBAAsB,CACtB,gBAAgB,CAChB,qBAAqB,CACrB,eAAe,CAChB,CACD,KAAK,CAAE,CAAC,gBAAgB,CAAE,aAAa,CACzC,CAAC,CAED,MAAO,IAAM,CAAAC,6BAA6B,CAAG,CAC3C,cAAc,CACd,cAAc,CACd,oBAAoB,CACpB,uBAAuB,CACvB,kCAAkC,CAClC,0BAA0B,CAC1B,wBAAwB,CACxB,qBAAqB,CACrB,2BAA2B,CAC3B,wBAAwB,CACzB,CAED,MAAO,IAAM,CAAAC,aAAa,CAAG,CAC3B,CACEC,IAAI,CAAE,KAAK,CACXC,cAAc,CAAE,CACd,OAAO,CACP,kBAAkB,CAClB,kBAAkB,CAClB,wBAAwB,CACxB,2BAA2B,CAC3B,kBAAkB,CAClB,qBAAqB,CACrB,WAAW,CACX,SAAS,CACT,YAAY,CAEhB,CAAC,CACD,CACED,IAAI,CAAE,WAAW,CACjBC,cAAc,CAAE,CACd,sBAAsB,CACtB,oBAAoB,CACpB,oBAAoB,CACpB,mBAAmB,CACnB,mBAAmB,CACnB,QAAQ,CACR,WAAW,CACX,oBAAoB,CAExB,CAAC,CACD,CACED,IAAI,CAAE,QAAQ,CACdC,cAAc,CAAE,EAClB,CAAC,CACD,CACED,IAAI,CAAE,OAAO,CACbC,cAAc,CAAE,CACd,YAAY,CACZ,gBAAgB,CAChB,aAAa,CACb,iBAAiB,CACjB,UAAU,CACV,cAAc,CAElB,CAAC,CACD,CACED,IAAI,CAAE,OAAO,CACbC,cAAc,CAAE,CACd,iBAAiB,CACjB,gBAAgB,CAChB,QAAQ,CACR,SAAS,CACT,iBAAiB,CACjB,kBAAkB,CAEtB,CAAC,CACD,CACED,IAAI,CAAE,OAAO,CACbC,cAAc,CAAE,EAClB,CAAC,CACF","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";import _objectSpread from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _defineProperty from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import{AddCircle}from'@mui/icons-material';import DeleteIcon from'@mui/icons-material/Delete';import{Alert,Autocomplete,Box,IconButton,Snackbar,TextField}from'@mui/material';import React,{useEffect,useState}from'react';import{useTranslation}from'react-i18next';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var AddPair=function AddPair(_ref){var customData=_ref.customData,pairData=_ref.pairData,_ref$tipOptions=_ref.tipOptions,tipOptions=_ref$tipOptions===void 0?[]:_ref$tipOptions,onGetArr=_ref.onGetArr,onJudgeArr=_ref.onJudgeArr;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),openSnackbar=_useState2[0],setOpenSnackbar=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),arr=_useState4[0],setArr=_useState4[1];var _useState5=useState(0),_useState6=_slicedToArray(_useState5,2),arrId=_useState6[0],setArrId=_useState6[1];var _useState7=useState(-1),_useState8=_slicedToArray(_useState7,2),defaultIndex=_useState8[0],setDefaultIndex=_useState8[1];var _useState9=useState(false),_useState10=_slicedToArray(_useState9,2),isNotUniqueKey=_useState10[0],setIsNotUniqueKey=_useState10[1];var _useTranslation=useTranslation(),t=_useTranslation.t;useEffect(function(){onGetArr(arr);},[arr]);useEffect(function(){var dataArr=[];pairData.forEach(function(item,index){var _dataArr$push;dataArr.push((_dataArr$push={id:index},_defineProperty(_dataArr$push,customData.key,item[customData.key]),_defineProperty(_dataArr$push,customData.value,item[customData.value]),_dataArr$push));});setArrId(pairData.length);setArr(dataArr);},[pairData]);var updateArr=function updateArr(index,type,newValue){setArr(arr.map(function(pair,subIndex){if(subIndex===index){return _objectSpread(_objectSpread({},pair),{},_defineProperty({},type,newValue));}return pair;}));if(type===customData.key){setDefaultIndex(-1);setIsNotUniqueKey(false);arr.forEach(function(pair){if(pair[customData.key]===newValue){setDefaultIndex(index);setIsNotUniqueKey(true);}});}};var handleDeleteArr=function handleDeleteArr(index){setDefaultIndex(-1);setArr(arr.filter(function(_,subIndex){return index!==subIndex;}));onGetArr(arr);};return/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',margin:'20px 0 0 15px'},children:[/*#__PURE__*/_jsx(\"div\",{children:customData.title}),/*#__PURE__*/_jsx(IconButton,{color:\"primary\",onClick:function onClick(){setArrId(arrId+1);var obj={id:arrId};obj[customData.key]='';obj[customData.value]='';onJudgeArr(arr,[customData.key,customData.value])?setArr([].concat(_toConsumableArray(arr),[obj])):setOpenSnackbar(true);},children:/*#__PURE__*/_jsx(AddCircle,{})})]}),/*#__PURE__*/_jsx(Box,{children:arr.map(function(item,index){return/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',justifyContent:'space-between',alignItems:'center',marginTop:'10px',marginLeft:'10px'},children:[tipOptions.length?/*#__PURE__*/_jsx(Autocomplete,{style:{width:'44%'},disablePortal:true,options:tipOptions,groupBy:function groupBy(){return t('components.suggestsCommonParameters');},value:item[customData.key],inputValue:item[customData.key],onInputChange:function onInputChange(_,newValue){updateArr(index,customData.key,newValue);},renderInput:function renderInput(params){return/*#__PURE__*/_jsx(TextField,_objectSpread(_objectSpread({className:\"textHighlight\"},params),{},{label:customData.key}));}}):/*#__PURE__*/_jsx(TextField,{className:\"textHighlight\",label:customData.key,value:item[customData.key],onChange:function onChange(e){updateArr(index,customData.key,e.target.value);},style:{width:'44%'}}),/*#__PURE__*/_jsx(TextField,{className:\"textHighlight\",label:customData.value,value:item[customData.value],onChange:function onChange(e){updateArr(index,customData.value,e.target.value);},style:{width:'44%'}}),/*#__PURE__*/_jsx(IconButton,{\"aria-label\":\"delete\",onClick:function onClick(){return handleDeleteArr(index);},style:{marginLeft:'10px'},children:/*#__PURE__*/_jsx(DeleteIcon,{})})]}),isNotUniqueKey&&defaultIndex===index&&/*#__PURE__*/_jsxs(Alert,{severity:\"error\",children:[customData.key,\" must be unique\"]})]},item.id);})})]}),/*#__PURE__*/_jsx(Snackbar,{anchorOrigin:{vertical:'top',horizontal:'center'},open:openSnackbar,onClose:function onClose(){return setOpenSnackbar(false);},message:\"Please fill in the complete parameters before adding!!\"},'top'+'center')]});};export default AddPair;","map":{"version":3,"names":["AddCircle","DeleteIcon","Alert","Autocomplete","Box","IconButton","Snackbar","TextField","React","useEffect","useState","useTranslation","jsx","_jsx","jsxs","_jsxs","AddPair","_ref","customData","pairData","_ref$tipOptions","tipOptions","onGetArr","onJudgeArr","_useState","_useState2","_slicedToArray","openSnackbar","setOpenSnackbar","_useState3","_useState4","arr","setArr","_useState5","_useState6","arrId","setArrId","_useState7","_useState8","defaultIndex","setDefaultIndex","_useState9","_useState10","isNotUniqueKey","setIsNotUniqueKey","_useTranslation","t","dataArr","forEach","item","index","_dataArr$push","push","id","_defineProperty","key","value","length","updateArr","type","newValue","map","pair","subIndex","_objectSpread","handleDeleteArr","filter","_","children","style","display","alignItems","margin","title","color","onClick","obj","concat","_toConsumableArray","justifyContent","marginTop","marginLeft","width","disablePortal","options","groupBy","inputValue","onInputChange","renderInput","params","className","label","onChange","e","target","severity","anchorOrigin","vertical","horizontal","open","onClose","message"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/components/addPair.js"],"sourcesContent":["import { AddCircle } from '@mui/icons-material'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport {\n Alert,\n Autocomplete,\n Box,\n IconButton,\n Snackbar,\n TextField,\n} from '@mui/material'\nimport React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nconst AddPair = ({\n customData,\n pairData,\n tipOptions = [],\n onGetArr,\n onJudgeArr,\n}) => {\n const [openSnackbar, setOpenSnackbar] = useState(false)\n const [arr, setArr] = useState([])\n const [arrId, setArrId] = useState(0)\n const [defaultIndex, setDefaultIndex] = useState(-1)\n const [isNotUniqueKey, setIsNotUniqueKey] = useState(false)\n\n const { t } = useTranslation()\n\n useEffect(() => {\n onGetArr(arr)\n }, [arr])\n\n useEffect(() => {\n const dataArr = []\n pairData.forEach((item, index) => {\n dataArr.push({\n id: index,\n [customData.key]: item[customData.key],\n [customData.value]: item[customData.value],\n })\n })\n setArrId(pairData.length)\n setArr(dataArr)\n }, [pairData])\n\n const updateArr = (index, type, newValue) => {\n setArr(\n arr.map((pair, subIndex) => {\n if (subIndex === index) {\n return { ...pair, [type]: newValue }\n }\n return pair\n })\n )\n if (type === customData.key) {\n setDefaultIndex(-1)\n setIsNotUniqueKey(false)\n arr.forEach((pair) => {\n if (pair[customData.key] === newValue) {\n setDefaultIndex(index)\n setIsNotUniqueKey(true)\n }\n })\n }\n }\n\n const handleDeleteArr = (index) => {\n setDefaultIndex(-1)\n setArr(\n arr.filter((_, subIndex) => {\n return index !== subIndex\n })\n )\n onGetArr(arr)\n }\n\n return (\n <div>\n <Box>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n margin: '20px 0 0 15px',\n }}\n >\n <div>{customData.title}</div>\n <IconButton\n color=\"primary\"\n onClick={() => {\n setArrId(arrId + 1)\n let obj = { id: arrId }\n obj[customData.key] = ''\n obj[customData.value] = ''\n onJudgeArr(arr, [customData.key, customData.value])\n ? setArr([...arr, obj])\n : setOpenSnackbar(true)\n }}\n >\n <AddCircle />\n </IconButton>\n </div>\n <Box>\n {arr.map((item, index) => {\n return (\n <Box key={item.id}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: '10px',\n marginLeft: '10px',\n }}\n >\n {tipOptions.length ? (\n <Autocomplete\n style={{ width: '44%' }}\n disablePortal\n options={tipOptions}\n groupBy={() => t('components.suggestsCommonParameters')}\n value={item[customData.key]}\n inputValue={item[customData.key]}\n onInputChange={(_, newValue) => {\n updateArr(index, customData.key, newValue)\n }}\n renderInput={(params) => (\n <TextField\n className=\"textHighlight\"\n {...params}\n label={customData.key}\n />\n )}\n />\n ) : (\n <TextField\n className=\"textHighlight\"\n label={customData.key}\n value={item[customData.key]}\n onChange={(e) => {\n updateArr(index, customData.key, e.target.value)\n }}\n style={{ width: '44%' }}\n />\n )}\n <TextField\n className=\"textHighlight\"\n label={customData.value}\n value={item[customData.value]}\n onChange={(e) => {\n updateArr(index, customData.value, e.target.value)\n }}\n style={{ width: '44%' }}\n />\n <IconButton\n aria-label=\"delete\"\n onClick={() => handleDeleteArr(index)}\n style={{ marginLeft: '10px' }}\n >\n <DeleteIcon />\n </IconButton>\n </div>\n {isNotUniqueKey && defaultIndex === index && (\n <Alert severity=\"error\">\n {customData.key} must be unique\n </Alert>\n )}\n </Box>\n )\n })}\n </Box>\n </Box>\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={openSnackbar}\n onClose={() => setOpenSnackbar(false)}\n message=\"Please fill in the complete parameters before adding!!\"\n key={'top' + 'center'}\n />\n </div>\n )\n}\n\nexport default AddPair\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"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 ContentCopyOutlinedIcon from'@mui/icons-material/ContentCopyOutlined';import DeleteOutlineOutlinedIcon from'@mui/icons-material/DeleteOutlineOutlined';import OpenInBrowserOutlinedIcon from'@mui/icons-material/OpenInBrowserOutlined';import{TabContext,TabList,TabPanel}from'@mui/lab';import{Badge,Box,IconButton,Stack,Tab,Tooltip}from'@mui/material';import{DataGrid}from'@mui/x-data-grid';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useTranslation}from'react-i18next';import{useLocation,useNavigate}from'react-router-dom';import{ApiContext}from'../../components/apiContext';import ErrorMessageSnackBar from'../../components/errorMessageSnackBar';import fetcher from'../../components/fetcher';import fetchWrapper from'../../components/fetchWrapper';import Title from'../../components/Title';import{isValidBearerToken}from'../../components/utils';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var tabArr=[{label:'model.languageModels',value:'/running_models/LLM',showPrompt:false},{label:'model.embeddingModels',value:'/running_models/embedding',showPrompt:false},{label:'model.rerankModels',value:'/running_models/rerank',showPrompt:false},{label:'model.imageModels',value:'/running_models/image',showPrompt:false},{label:'model.audioModels',value:'/running_models/audio',showPrompt:false},{label:'model.videoModels',value:'/running_models/video',showPrompt:false},{label:'model.flexibleModels',value:'/running_models/flexible',showPrompt:false}];var RunningModels=function RunningModels(){var _React$useState=React.useState(sessionStorage.getItem('runningModelType')),_React$useState2=_slicedToArray(_React$useState,2),tabValue=_React$useState2[0],setTabValue=_React$useState2[1];var _useState=useState(tabArr),_useState2=_slicedToArray(_useState,2),tabList=_useState2[0],setTabList=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),llmData=_useState4[0],setLlmData=_useState4[1];var _useState5=useState([]),_useState6=_slicedToArray(_useState5,2),embeddingModelData=_useState6[0],setEmbeddingModelData=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),imageModelData=_useState8[0],setImageModelData=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),audioModelData=_useState10[0],setAudioModelData=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),videoModelData=_useState12[0],setVideoModelData=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),rerankModelData=_useState14[0],setRerankModelData=_useState14[1];var _useState15=useState([]),_useState16=_slicedToArray(_useState15,2),flexibleModelData=_useState16[0],setFlexibleModelData=_useState16[1];var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi;var _useContext2=useContext(ApiContext),isUpdatingModel=_useContext2.isUpdatingModel,setIsUpdatingModel=_useContext2.setIsUpdatingModel;var _useContext3=useContext(ApiContext),setErrorMsg=_useContext3.setErrorMsg;var _useCookies=useCookies(['token']),_useCookies2=_slicedToArray(_useCookies,1),cookie=_useCookies2[0];var navigate=useNavigate();var endPoint=useContext(ApiContext).endPoint;var _useTranslation=useTranslation(),t=_useTranslation.t;var location=useLocation();var handleTabChange=function handleTabChange(event,newValue){setTabValue(newValue);navigate(newValue);sessionStorage.setItem('runningModelType',newValue);};var update=function update(isCallingApi){if(sessionStorage.getItem('auth')==='true'&&!isValidBearerToken(sessionStorage.getItem('token'))&&!isValidBearerToken(cookie.token)){navigate('/login',{replace:true});return;}if(isCallingApi){setLlmData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setEmbeddingModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setAudioModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setVideoModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setImageModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setRerankModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);setFlexibleModelData([{id:'Loading, do not refresh page...',url:'IS_LOADING'}]);}else{setIsUpdatingModel(true);fetchWrapper.get('/v1/models').then(function(response){var modelMap={LLM:[],embedding:[],image:[],audio:[],video:[],rerank:[],flexible:[]};response.data.forEach(function(model){var newValue=_objectSpread(_objectSpread({},model),{},{id:model.id,url:model.id});if(modelMap[newValue.model_type]){modelMap[newValue.model_type].push(newValue);}});setLlmData(modelMap.LLM);setEmbeddingModelData(modelMap.embedding);setImageModelData(modelMap.image);setAudioModelData(modelMap.audio);setVideoModelData(modelMap.video);setRerankModelData(modelMap.rerank);setFlexibleModelData(modelMap.flexible);if(location.pathname.endsWith('/LLM')){var modelOrder=['LLM','embedding','image','audio','video','rerank','flexible'];for(var _i=0,_modelOrder=modelOrder;_i<_modelOrder.length;_i++){var type=_modelOrder[_i];if(modelMap[type]&&modelMap[type].length>0){navigate(\"/running_models/\".concat(type));setTabValue(\"/running_models/\".concat(type));break;}}}setIsUpdatingModel(false);}).catch(function(error){console.error('Error:',error);setIsUpdatingModel(false);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});}};useEffect(function(){update(isCallingApi);// eslint-disable-next-line\n},[isCallingApi,cookie.token]);var llmColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250,renderCell:function renderCell(_ref){var row=_ref.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref2){var row=_ref2.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'model_size_in_billions',headerName:t('runningModels.size'),flex:1},{field:'quantization',headerName:t('runningModels.quantization'),flex:1},{field:'replica',headerName:t('runningModels.replica'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref3){var row=_ref3.row;var url=row.url;var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var gradioUrl=\"\".concat(endPoint,\"/v1/ui/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(IconButton,{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_name:row.model_family,model_size_in_billions:row.model_size_in_billions,model_format:row.model_format,quantization:row.quantization,context_length:row.context_length,model_ability:row.model_ability,model_description:row.model_description,model_lang:row.model_lang})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(IconButton,{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var embeddingModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250,renderCell:function renderCell(_ref4){var row=_ref4.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref5){var row=_ref5.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'replica',headerName:t('runningModels.replica'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref6){var row=_ref6.row;var url=row.url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsx(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:/*#__PURE__*/_jsx(IconButton,{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})});}}];var imageModelColumns=[{field:'id',headerName:'ID',flex:1,minWidth:250,renderCell:function renderCell(_ref7){var row=_ref7.row;return renderWithCopy(row.id);}},{field:'model_name',headerName:t('runningModels.name'),flex:1,renderCell:function renderCell(_ref8){var row=_ref8.row;return renderWithCopy(row.model_name);}},{field:'address',headerName:t('runningModels.address'),flex:1},{field:'accelerators',headerName:t('runningModels.gpuIndexes'),flex:1},{field:'url',headerName:t('runningModels.actions'),flex:1,minWidth:200,sortable:false,filterable:false,disableColumnMenu:true,renderCell:function renderCell(_ref9){var row=_ref9.row;// this URL means model_uid\nvar url=row.url;console.log('url: '+url);var openUrl=\"\".concat(endPoint,\"/\")+url;var closeUrl=\"\".concat(endPoint,\"/v1/models/\")+url;var pathType;if(row.model_type==='video'){pathType='videos';}else if(row.model_type==='audio'){pathType='audios';}else{pathType='images';// default\n}var gradioUrl=\"\".concat(endPoint,\"/v1/ui/\").concat(pathType,\"/\")+url;if(url==='IS_LOADING'){return/*#__PURE__*/_jsx(\"div\",{});}return/*#__PURE__*/_jsxs(Box,{style:{width:'100%',display:'flex',justifyContent:'left',alignItems:'left'},children:[/*#__PURE__*/_jsx(IconButton,{title:\"Launch Web UI\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){// Make sure no ongoing call\nreturn;}setIsCallingApi(true);fetcher(openUrl,{method:'HEAD'}).then(function(response){if(response.status===404){// If web UI doesn't exist (404 Not Found)\nconsole.log('UI does not exist, creating new...');return fetcher(gradioUrl,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model_type:row.model_type,model_family:row.model_family,model_id:row.id,controlnet:row.controlnet,model_revision:row.model_revision,model_name:row.model_name,model_ability:row.model_ability})}).then(function(response){return response.json();}).then(function(){return window.open(openUrl,'_blank','noopener noreferrer');}).finally(function(){return setIsCallingApi(false);});}else if(response.ok){// If web UI does exist\nconsole.log('UI exists, opening...');window.open(openUrl,'_blank','noopener noreferrer');setIsCallingApi(false);}else{// Other HTTP errors\nconsole.error(\"Unexpected response status: \".concat(response.status));setIsCallingApi(false);}}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(OpenInBrowserOutlinedIcon,{})})}),/*#__PURE__*/_jsx(IconButton,{title:\"Terminate Model\",style:{borderWidth:'0px',backgroundColor:'transparent',paddingLeft:'0px',paddingRight:'10px'},onClick:function onClick(){if(isCallingApi||isUpdatingModel){return;}setIsCallingApi(true);fetcher(closeUrl,{method:'DELETE'}).then(function(response){response.json();}).then(function(){setIsCallingApi(false);}).catch(function(error){console.error('Error:',error);setIsCallingApi(false);});},children:/*#__PURE__*/_jsx(Box,{width:\"40px\",m:\"0 auto\",p:\"5px\",display:\"flex\",justifyContent:\"center\",borderRadius:\"4px\",style:{border:'1px solid #e5e7eb',borderWidth:'1px',borderColor:'#e5e7eb'},children:/*#__PURE__*/_jsx(DeleteOutlineOutlinedIcon,{})})})]});}}];var audioModelColumns=imageModelColumns;var videoModelColumns=imageModelColumns;var rerankModelColumns=embeddingModelColumns;var flexibleModelColumns=embeddingModelColumns;var dataGridStyle={'& .MuiDataGrid-cell':{borderBottom:'none'},'& .MuiDataGrid-columnHeaders':{borderBottom:'none'},'& .MuiDataGrid-columnHeaderTitle':{fontWeight:'bold'},'& .MuiDataGrid-virtualScroller':{overflowX:'visible !important',overflow:'visible'},'& .MuiDataGrid-footerContainer':{borderTop:'none'},'border-width':'0px'};var noRowsOverlay=function noRowsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:t('runningModels.noRunningModels')});};var noResultsOverlay=function noResultsOverlay(){return/*#__PURE__*/_jsx(Stack,{height:\"100%\",alignItems:\"center\",justifyContent:\"center\",children:t('runningModels.noRunningModelsMatches')});};var renderWithCopy=function renderWithCopy(display){var _useState17=useState(false),_useState18=_slicedToArray(_useState17,2),tooltipOpen=_useState18[0],setTooltipOpen=_useState18[1];var _useState19=useState(t('runningModels.copy')),_useState20=_slicedToArray(_useState19,2),tooltipText=_useState20[0],setTooltipText=_useState20[1];var handleCopy=function handleCopy(event){event.stopPropagation();if(navigator.clipboard&&window.isSecureContext){// for HTTPS\nnavigator.clipboard.writeText(display).then(function(){setTooltipText(t('runningModels.copied'));}).catch(function(){setTooltipText(t('runningModels.copyFailed'));}).finally(function(){setTooltipOpen(true);setTimeout(function(){setTooltipOpen(false);setTooltipText(t('runningModels.copy'));},1500);});}else{// for HTTP\nvar textArea=document.createElement('textarea');textArea.value=display;textArea.style.position='absolute';textArea.style.left='-9999px';document.body.appendChild(textArea);textArea.select();try{var success=document.execCommand('copy');if(success){setTooltipText(t('runningModels.copied'));}else{setTooltipText(t('runningModels.copyFailed'));}}catch(err){setTooltipText(t('runningModels.copyFailed'));}document.body.removeChild(textArea);setTooltipOpen(true);setTimeout(function(){setTooltipOpen(false);setTooltipText(t('runningModels.copy'));},1500);}};return/*#__PURE__*/_jsxs(\"div\",{style:{display:'flex',alignItems:'center',maxWidth:'100%',overflow:'hidden'},children:[/*#__PURE__*/_jsx(\"span\",{style:{flex:1,minWidth:0,overflow:'hidden',whiteSpace:'nowrap',textOverflow:'ellipsis',marginRight:8},children:display}),/*#__PURE__*/_jsx(Tooltip,{title:tooltipText,open:tooltipOpen,children:/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:handleCopy,children:/*#__PURE__*/_jsx(ContentCopyOutlinedIcon,{fontSize:\"small\"})})})]});};useEffect(function(){var dataMap={'model.languageModels':llmData,'model.embeddingModels':embeddingModelData,'model.rerankModels':rerankModelData,'model.imageModels':imageModelData,'model.audioModels':audioModelData,'model.videoModels':videoModelData,'model.flexibleModels':flexibleModelData};setTabList(tabList.map(function(item){var _dataMap$item$label;if((_dataMap$item$label=dataMap[item.label])!==null&&_dataMap$item$label!==void 0&&_dataMap$item$label.length&&dataMap[item.label][0].model_type){return _objectSpread(_objectSpread({},item),{},{showPrompt:true});}return _objectSpread(_objectSpread({},item),{},{showPrompt:false});}));},[llmData,embeddingModelData,rerankModelData,imageModelData,audioModelData,videoModelData,flexibleModelData]);return/*#__PURE__*/_jsxs(Box,{sx:{height:'100%',width:'100%',padding:'20px 20px 0 20px'},children:[/*#__PURE__*/_jsx(Title,{title:t('menu.runningModels')}),/*#__PURE__*/_jsx(ErrorMessageSnackBar,{}),/*#__PURE__*/_jsxs(TabContext,{value:tabValue,children:[/*#__PURE__*/_jsx(Box,{sx:{borderBottom:1,borderColor:'divider'},children:/*#__PURE__*/_jsx(TabList,{value:tabValue,onChange:handleTabChange,\"aria-label\":\"tabs\",children:tabList.map(function(item){return/*#__PURE__*/_jsx(Tab,{label:/*#__PURE__*/_jsx(Badge,{color:\"secondary\",variant:\"dot\",invisible:!item.showPrompt,children:t(item.label)}),value:item.value},item.value);})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/LLM\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:llmData,columns:llmColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/embedding\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:embeddingModelData,columns:embeddingModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/rerank\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:rerankModelData,columns:rerankModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/image\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:imageModelData,columns:imageModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/audio\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:audioModelData,columns:audioModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/video\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:videoModelData,columns:videoModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})}),/*#__PURE__*/_jsx(TabPanel,{value:\"/running_models/flexible\",sx:{padding:0},children:/*#__PURE__*/_jsx(Box,{sx:{height:'100%',width:'100%'},children:/*#__PURE__*/_jsx(DataGrid,{rows:flexibleModelData,columns:flexibleModelColumns,autoHeight:true,sx:dataGridStyle,slots:{noRowsOverlay:noRowsOverlay,noResultsOverlay:noResultsOverlay}})})})]})]});};export default RunningModels;","map":{"version":3,"names":["ContentCopyOutlinedIcon","DeleteOutlineOutlinedIcon","OpenInBrowserOutlinedIcon","TabContext","TabList","TabPanel","Badge","Box","IconButton","Stack","Tab","Tooltip","DataGrid","React","useContext","useEffect","useState","useCookies","useTranslation","useLocation","useNavigate","ApiContext","ErrorMessageSnackBar","fetcher","fetchWrapper","Title","isValidBearerToken","jsx","_jsx","jsxs","_jsxs","tabArr","label","value","showPrompt","RunningModels","_React$useState","sessionStorage","getItem","_React$useState2","_slicedToArray","tabValue","setTabValue","_useState","_useState2","tabList","setTabList","_useState3","_useState4","llmData","setLlmData","_useState5","_useState6","embeddingModelData","setEmbeddingModelData","_useState7","_useState8","imageModelData","setImageModelData","_useState9","_useState10","audioModelData","setAudioModelData","_useState11","_useState12","videoModelData","setVideoModelData","_useState13","_useState14","rerankModelData","setRerankModelData","_useState15","_useState16","flexibleModelData","setFlexibleModelData","_useContext","isCallingApi","setIsCallingApi","_useContext2","isUpdatingModel","setIsUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","cookie","navigate","endPoint","_useTranslation","t","location","handleTabChange","event","newValue","setItem","update","token","replace","id","url","get","then","response","modelMap","LLM","embedding","image","audio","video","rerank","flexible","data","forEach","model","_objectSpread","model_type","push","pathname","endsWith","modelOrder","_i","_modelOrder","length","type","concat","catch","error","console","status","message","llmColumns","field","headerName","flex","minWidth","renderCell","_ref","row","renderWithCopy","_ref2","model_name","sortable","filterable","disableColumnMenu","_ref3","openUrl","closeUrl","gradioUrl","style","width","display","justifyContent","alignItems","children","title","borderWidth","backgroundColor","paddingLeft","paddingRight","onClick","method","log","headers","body","JSON","stringify","model_family","model_size_in_billions","model_format","quantization","context_length","model_ability","model_description","model_lang","json","window","open","finally","ok","m","p","borderRadius","border","borderColor","embeddingModelColumns","_ref4","_ref5","_ref6","imageModelColumns","_ref7","_ref8","_ref9","pathType","model_id","controlnet","model_revision","audioModelColumns","videoModelColumns","rerankModelColumns","flexibleModelColumns","dataGridStyle","borderBottom","fontWeight","overflowX","overflow","borderTop","noRowsOverlay","height","noResultsOverlay","_useState17","_useState18","tooltipOpen","setTooltipOpen","_useState19","_useState20","tooltipText","setTooltipText","handleCopy","stopPropagation","navigator","clipboard","isSecureContext","writeText","setTimeout","textArea","document","createElement","position","left","appendChild","select","success","execCommand","err","removeChild","maxWidth","whiteSpace","textOverflow","marginRight","size","fontSize","dataMap","map","item","_dataMap$item$label","sx","padding","onChange","color","variant","invisible","rows","columns","autoHeight","slots"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/running_models/index.js"],"sourcesContent":["import ContentCopyOutlinedIcon from '@mui/icons-material/ContentCopyOutlined'\nimport DeleteOutlineOutlinedIcon from '@mui/icons-material/DeleteOutlineOutlined'\nimport OpenInBrowserOutlinedIcon from '@mui/icons-material/OpenInBrowserOutlined'\nimport { TabContext, TabList, TabPanel } from '@mui/lab'\nimport { Badge, Box, IconButton, Stack, Tab, Tooltip } from '@mui/material'\nimport { DataGrid } from '@mui/x-data-grid'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { ApiContext } from '../../components/apiContext'\nimport ErrorMessageSnackBar from '../../components/errorMessageSnackBar'\nimport fetcher from '../../components/fetcher'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport Title from '../../components/Title'\nimport { isValidBearerToken } from '../../components/utils'\n\nconst tabArr = [\n {\n label: 'model.languageModels',\n value: '/running_models/LLM',\n showPrompt: false,\n },\n {\n label: 'model.embeddingModels',\n value: '/running_models/embedding',\n showPrompt: false,\n },\n {\n label: 'model.rerankModels',\n value: '/running_models/rerank',\n showPrompt: false,\n },\n {\n label: 'model.imageModels',\n value: '/running_models/image',\n showPrompt: false,\n },\n {\n label: 'model.audioModels',\n value: '/running_models/audio',\n showPrompt: false,\n },\n {\n label: 'model.videoModels',\n value: '/running_models/video',\n showPrompt: false,\n },\n {\n label: 'model.flexibleModels',\n value: '/running_models/flexible',\n showPrompt: false,\n },\n]\n\nconst RunningModels = () => {\n const [tabValue, setTabValue] = React.useState(\n sessionStorage.getItem('runningModelType')\n )\n const [tabList, setTabList] = useState(tabArr)\n const [llmData, setLlmData] = useState([])\n const [embeddingModelData, setEmbeddingModelData] = useState([])\n const [imageModelData, setImageModelData] = useState([])\n const [audioModelData, setAudioModelData] = useState([])\n const [videoModelData, setVideoModelData] = useState([])\n const [rerankModelData, setRerankModelData] = useState([])\n const [flexibleModelData, setFlexibleModelData] = useState([])\n const { isCallingApi, setIsCallingApi } = useContext(ApiContext)\n const { isUpdatingModel, setIsUpdatingModel } = useContext(ApiContext)\n const { setErrorMsg } = useContext(ApiContext)\n const [cookie] = useCookies(['token'])\n const navigate = useNavigate()\n const endPoint = useContext(ApiContext).endPoint\n const { t } = useTranslation()\n const location = useLocation()\n\n const handleTabChange = (event, newValue) => {\n setTabValue(newValue)\n navigate(newValue)\n sessionStorage.setItem('runningModelType', newValue)\n }\n\n const update = (isCallingApi) => {\n if (\n sessionStorage.getItem('auth') === 'true' &&\n !isValidBearerToken(sessionStorage.getItem('token')) &&\n !isValidBearerToken(cookie.token)\n ) {\n navigate('/login', { replace: true })\n return\n }\n if (isCallingApi) {\n setLlmData([{ id: 'Loading, do not refresh page...', url: 'IS_LOADING' }])\n setEmbeddingModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setAudioModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setVideoModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setImageModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setRerankModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n setFlexibleModelData([\n { id: 'Loading, do not refresh page...', url: 'IS_LOADING' },\n ])\n } else {\n setIsUpdatingModel(true)\n\n fetchWrapper\n .get('/v1/models')\n .then((response) => {\n const modelMap = {\n LLM: [],\n embedding: [],\n image: [],\n audio: [],\n video: [],\n rerank: [],\n flexible: [],\n }\n\n response.data.forEach((model) => {\n const newValue = {\n ...model,\n id: model.id,\n url: model.id,\n }\n if (modelMap[newValue.model_type]) {\n modelMap[newValue.model_type].push(newValue)\n }\n })\n\n setLlmData(modelMap.LLM)\n setEmbeddingModelData(modelMap.embedding)\n setImageModelData(modelMap.image)\n setAudioModelData(modelMap.audio)\n setVideoModelData(modelMap.video)\n setRerankModelData(modelMap.rerank)\n setFlexibleModelData(modelMap.flexible)\n\n if (location.pathname.endsWith('/LLM')) {\n const modelOrder = [\n 'LLM',\n 'embedding',\n 'image',\n 'audio',\n 'video',\n 'rerank',\n 'flexible',\n ]\n for (const type of modelOrder) {\n if (modelMap[type] && modelMap[type].length > 0) {\n navigate(`/running_models/${type}`)\n setTabValue(`/running_models/${type}`)\n break\n }\n }\n }\n\n setIsUpdatingModel(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsUpdatingModel(false)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\n }\n })\n }\n }\n\n useEffect(() => {\n update(isCallingApi)\n // eslint-disable-next-line\n }, [isCallingApi, cookie.token])\n\n const llmColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'model_size_in_billions',\n headerName: t('runningModels.size'),\n flex: 1,\n },\n {\n field: 'quantization',\n headerName: t('runningModels.quantization'),\n flex: 1,\n },\n {\n field: 'replica',\n headerName: t('runningModels.replica'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.actions'),\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n const gradioUrl = `${endPoint}/v1/ui/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <IconButton\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_name: row.model_family,\n model_size_in_billions: row.model_size_in_billions,\n model_format: row.model_format,\n quantization: row.quantization,\n context_length: row.context_length,\n model_ability: row.model_ability,\n model_description: row.model_description,\n model_lang: row.model_lang,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </IconButton>\n <IconButton\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </IconButton>\n </Box>\n )\n },\n },\n ]\n const embeddingModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'replica',\n headerName: t('runningModels.replica'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.actions'),\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n const url = row.url\n const closeUrl = `${endPoint}/v1/models/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <IconButton\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </IconButton>\n </Box>\n )\n },\n },\n ]\n const imageModelColumns = [\n {\n field: 'id',\n headerName: 'ID',\n flex: 1,\n minWidth: 250,\n renderCell: ({ row }) => {\n return renderWithCopy(row.id)\n },\n },\n {\n field: 'model_name',\n headerName: t('runningModels.name'),\n flex: 1,\n renderCell: ({ row }) => {\n return renderWithCopy(row.model_name)\n },\n },\n {\n field: 'address',\n headerName: t('runningModels.address'),\n flex: 1,\n },\n {\n field: 'accelerators',\n headerName: t('runningModels.gpuIndexes'),\n flex: 1,\n },\n {\n field: 'url',\n headerName: t('runningModels.actions'),\n flex: 1,\n minWidth: 200,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n renderCell: ({ row }) => {\n // this URL means model_uid\n const url = row.url\n console.log('url: ' + url)\n const openUrl = `${endPoint}/` + url\n const closeUrl = `${endPoint}/v1/models/` + url\n let pathType\n if (row.model_type === 'video') {\n pathType = 'videos'\n } else if (row.model_type === 'audio') {\n pathType = 'audios'\n } else {\n pathType = 'images' // default\n }\n const gradioUrl = `${endPoint}/v1/ui/${pathType}/` + url\n\n if (url === 'IS_LOADING') {\n return <div></div>\n }\n\n return (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'left',\n }}\n >\n <IconButton\n title=\"Launch Web UI\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n // Make sure no ongoing call\n return\n }\n\n setIsCallingApi(true)\n\n fetcher(openUrl, {\n method: 'HEAD',\n })\n .then((response) => {\n if (response.status === 404) {\n // If web UI doesn't exist (404 Not Found)\n console.log('UI does not exist, creating new...')\n return fetcher(gradioUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n model_type: row.model_type,\n model_family: row.model_family,\n model_id: row.id,\n controlnet: row.controlnet,\n model_revision: row.model_revision,\n model_name: row.model_name,\n model_ability: row.model_ability,\n }),\n })\n .then((response) => response.json())\n .then(() =>\n window.open(openUrl, '_blank', 'noopener noreferrer')\n )\n .finally(() => setIsCallingApi(false))\n } else if (response.ok) {\n // If web UI does exist\n console.log('UI exists, opening...')\n window.open(openUrl, '_blank', 'noopener noreferrer')\n setIsCallingApi(false)\n } else {\n // Other HTTP errors\n console.error(\n `Unexpected response status: ${response.status}`\n )\n setIsCallingApi(false)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <OpenInBrowserOutlinedIcon />\n </Box>\n </IconButton>\n <IconButton\n title=\"Terminate Model\"\n style={{\n borderWidth: '0px',\n backgroundColor: 'transparent',\n paddingLeft: '0px',\n paddingRight: '10px',\n }}\n onClick={() => {\n if (isCallingApi || isUpdatingModel) {\n return\n }\n setIsCallingApi(true)\n fetcher(closeUrl, {\n method: 'DELETE',\n })\n .then((response) => {\n response.json()\n })\n .then(() => {\n setIsCallingApi(false)\n })\n .catch((error) => {\n console.error('Error:', error)\n setIsCallingApi(false)\n })\n }}\n >\n <Box\n width=\"40px\"\n m=\"0 auto\"\n p=\"5px\"\n display=\"flex\"\n justifyContent=\"center\"\n borderRadius=\"4px\"\n style={{\n border: '1px solid #e5e7eb',\n borderWidth: '1px',\n borderColor: '#e5e7eb',\n }}\n >\n <DeleteOutlineOutlinedIcon />\n </Box>\n </IconButton>\n </Box>\n )\n },\n },\n ]\n const audioModelColumns = imageModelColumns\n const videoModelColumns = imageModelColumns\n const rerankModelColumns = embeddingModelColumns\n const flexibleModelColumns = embeddingModelColumns\n\n const dataGridStyle = {\n '& .MuiDataGrid-cell': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: 'none',\n },\n '& .MuiDataGrid-columnHeaderTitle': {\n fontWeight: 'bold',\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'visible !important',\n overflow: 'visible',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: 'none',\n },\n 'border-width': '0px',\n }\n\n const noRowsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n {t('runningModels.noRunningModels')}\n </Stack>\n )\n }\n\n const noResultsOverlay = () => {\n return (\n <Stack height=\"100%\" alignItems=\"center\" justifyContent=\"center\">\n {t('runningModels.noRunningModelsMatches')}\n </Stack>\n )\n }\n\n const renderWithCopy = (display) => {\n const [tooltipOpen, setTooltipOpen] = useState(false)\n const [tooltipText, setTooltipText] = useState(t('runningModels.copy'))\n\n const handleCopy = (event) => {\n event.stopPropagation()\n\n if (navigator.clipboard && window.isSecureContext) {\n // for HTTPS\n navigator.clipboard\n .writeText(display)\n .then(() => {\n setTooltipText(t('runningModels.copied'))\n })\n .catch(() => {\n setTooltipText(t('runningModels.copyFailed'))\n })\n .finally(() => {\n setTooltipOpen(true)\n setTimeout(() => {\n setTooltipOpen(false)\n setTooltipText(t('runningModels.copy'))\n }, 1500)\n })\n } else {\n // for HTTP\n const textArea = document.createElement('textarea')\n textArea.value = display\n textArea.style.position = 'absolute'\n textArea.style.left = '-9999px'\n document.body.appendChild(textArea)\n textArea.select()\n\n try {\n const success = document.execCommand('copy')\n if (success) {\n setTooltipText(t('runningModels.copied'))\n } else {\n setTooltipText(t('runningModels.copyFailed'))\n }\n } catch (err) {\n setTooltipText(t('runningModels.copyFailed'))\n }\n\n document.body.removeChild(textArea)\n\n setTooltipOpen(true)\n setTimeout(() => {\n setTooltipOpen(false)\n setTooltipText(t('runningModels.copy'))\n }, 1500)\n }\n }\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n overflow: 'hidden',\n }}\n >\n <span\n style={{\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n marginRight: 8,\n }}\n >\n {display}\n </span>\n <Tooltip title={tooltipText} open={tooltipOpen}>\n <IconButton size=\"small\" onClick={handleCopy}>\n <ContentCopyOutlinedIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n </div>\n )\n }\n\n useEffect(() => {\n const dataMap = {\n 'model.languageModels': llmData,\n 'model.embeddingModels': embeddingModelData,\n 'model.rerankModels': rerankModelData,\n 'model.imageModels': imageModelData,\n 'model.audioModels': audioModelData,\n 'model.videoModels': videoModelData,\n 'model.flexibleModels': flexibleModelData,\n }\n\n setTabList(\n tabList.map((item) => {\n if (dataMap[item.label]?.length && dataMap[item.label][0].model_type) {\n return {\n ...item,\n showPrompt: true,\n }\n }\n return {\n ...item,\n showPrompt: false,\n }\n })\n )\n }, [\n llmData,\n embeddingModelData,\n rerankModelData,\n imageModelData,\n audioModelData,\n videoModelData,\n flexibleModelData,\n ])\n\n return (\n <Box\n sx={{\n height: '100%',\n width: '100%',\n padding: '20px 20px 0 20px',\n }}\n >\n <Title title={t('menu.runningModels')} />\n <ErrorMessageSnackBar />\n <TabContext value={tabValue}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n value={tabValue}\n onChange={handleTabChange}\n aria-label=\"tabs\"\n >\n {tabList.map((item) => (\n <Tab\n key={item.value}\n label={\n <Badge\n color=\"secondary\"\n variant=\"dot\"\n invisible={!item.showPrompt}\n >\n {t(item.label)}\n </Badge>\n }\n value={item.value}\n />\n ))}\n </TabList>\n </Box>\n <TabPanel value=\"/running_models/LLM\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={llmData}\n columns={llmColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/embedding\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={embeddingModelData}\n columns={embeddingModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/rerank\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={rerankModelData}\n columns={rerankModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/image\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={imageModelData}\n columns={imageModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/audio\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={audioModelData}\n columns={audioModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/video\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={videoModelData}\n columns={videoModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n <TabPanel value=\"/running_models/flexible\" sx={{ padding: 0 }}>\n <Box sx={{ height: '100%', width: '100%' }}>\n <DataGrid\n rows={flexibleModelData}\n columns={flexibleModelColumns}\n autoHeight={true}\n sx={dataGridStyle}\n slots={{\n noRowsOverlay: noRowsOverlay,\n noResultsOverlay: noResultsOverlay,\n }}\n />\n </Box>\n </TabPanel>\n </TabContext>\n </Box>\n )\n}\n\nexport default RunningModels\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _slicedToArray from\"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";import Translate from'@mui/icons-material/Translate';import{Box,ClickAwayListener,IconButton,List,ListItem,ListItemButton,ListItemText,Tooltip}from'@mui/material';import React from'react';import{useTranslation}from'react-i18next';import{jsx as _jsx}from\"react/jsx-runtime\";var TranslateButton=function TranslateButton(_ref){var sx=_ref.sx;var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _useTranslation=useTranslation(),i18n=_useTranslation.i18n;var languages=[{language:'English',code:'en'},{language:'中文',code:'zh'},{language:'日本語',code:'ja'},{language:'한국어',code:'ko'}];var changeLanguage=function changeLanguage(lng){i18n.changeLanguage(lng);handleTooltipClose();};var handleTooltipClose=function handleTooltipClose(){setOpen(false);};return/*#__PURE__*/_jsx(ClickAwayListener,{onClickAway:handleTooltipClose,children:/*#__PURE__*/_jsx(Tooltip,{onClose:handleTooltipClose,open:open,disableFocusListener:true,disableHoverListener:true,disableTouchListener:true,placement:\"top\",slotProps:{popper:{disablePortal:true}},title:/*#__PURE__*/_jsx(List,{sx:{pt:0},children:languages.map(function(item,index){return/*#__PURE__*/_jsx(ListItem,{disablePadding:true,onClick:function onClick(){return changeLanguage(item.code);},children:/*#__PURE__*/_jsx(ListItemButton,{sx:{'&':{paddingY:0,marginY:'2px'},'&:hover, &:focus':{bgcolor:'#bbb',color:'#333'}},children:/*#__PURE__*/_jsx(ListItemText,{primary:item.language})})},index);})}),children:/*#__PURE__*/_jsx(Box,{sx:sx,children:/*#__PURE__*/_jsx(IconButton,{size:\"large\",onClick:function onClick(){return setOpen(function(prev){return!prev;});},children:/*#__PURE__*/_jsx(Translate,{})})})})});};export default TranslateButton;","map":{"version":3,"names":["Translate","Box","ClickAwayListener","IconButton","List","ListItem","ListItemButton","ListItemText","Tooltip","React","useTranslation","jsx","_jsx","TranslateButton","_ref","sx","_React$useState","useState","_React$useState2","_slicedToArray","open","setOpen","_useTranslation","i18n","languages","language","code","changeLanguage","lng","handleTooltipClose","onClickAway","children","onClose","disableFocusListener","disableHoverListener","disableTouchListener","placement","slotProps","popper","disablePortal","title","pt","map","item","index","disablePadding","onClick","paddingY","marginY","bgcolor","color","primary","size","prev"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/components/translateButton.js"],"sourcesContent":["import Translate from '@mui/icons-material/Translate'\nimport {\n Box,\n ClickAwayListener,\n IconButton,\n List,\n ListItem,\n ListItemButton,\n ListItemText,\n Tooltip,\n} from '@mui/material'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nconst TranslateButton = ({ sx }) => {\n const [open, setOpen] = React.useState(false)\n const { i18n } = useTranslation()\n const languages = [\n {\n language: 'English',\n code: 'en',\n },\n {\n language: '中文',\n code: 'zh',\n },\n {\n language: '日本語',\n code: 'ja',\n },\n {\n language: '한국어',\n code: 'ko',\n },\n ]\n\n const changeLanguage = (lng) => {\n i18n.changeLanguage(lng)\n handleTooltipClose()\n }\n\n const handleTooltipClose = () => {\n setOpen(false)\n }\n\n return (\n <ClickAwayListener onClickAway={handleTooltipClose}>\n <Tooltip\n onClose={handleTooltipClose}\n open={open}\n disableFocusListener\n disableHoverListener\n disableTouchListener\n placement=\"top\"\n slotProps={{\n popper: {\n disablePortal: true,\n },\n }}\n title={\n <List sx={{ pt: 0 }}>\n {languages.map((item, index) => {\n return (\n <ListItem\n key={index}\n disablePadding\n onClick={() => changeLanguage(item.code)}\n >\n <ListItemButton\n sx={{\n '&': {\n paddingY: 0,\n marginY: '2px',\n },\n '&:hover, &:focus': {\n bgcolor: '#bbb',\n color: '#333',\n },\n }}\n >\n <ListItemText primary={item.language} />\n </ListItemButton>\n </ListItem>\n )\n })}\n </List>\n }\n >\n <Box sx={sx}>\n <IconButton size=\"large\" onClick={() => setOpen((prev) => !prev)}>\n <Translate />\n </IconButton>\n </Box>\n </Tooltip>\n </ClickAwayListener>\n )\n}\n\nexport default TranslateButton\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"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{Box,Button,ButtonGroup,Chip,FormControl,InputLabel,MenuItem,Select}from'@mui/material';import React,{useContext,useEffect,useState}from'react';import{useCookies}from'react-cookie';import{useTranslation}from'react-i18next';import{ApiContext}from'../../components/apiContext';import fetchWrapper from'../../components/fetchWrapper';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 LaunchModelComponent=function LaunchModelComponent(_ref){var modelType=_ref.modelType,gpuAvailable=_ref.gpuAvailable,featureModels=_ref.featureModels;var _useContext=useContext(ApiContext),isCallingApi=_useContext.isCallingApi,setIsCallingApi=_useContext.setIsCallingApi,endPoint=_useContext.endPoint;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(''),_useState6=_slicedToArray(_useState5,2),status=_useState6[0],setStatus=_useState6[1];var _useState7=useState([]),_useState8=_slicedToArray(_useState7,2),statusArr=_useState8[0],setStatusArr=_useState8[1];var _useState9=useState([]),_useState10=_slicedToArray(_useState9,2),completeDeleteArr=_useState10[0],setCompleteDeleteArr=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),collectionArr=_useState12[0],setCollectionArr=_useState12[1];var _useState13=useState([]),_useState14=_slicedToArray(_useState13,2),filterArr=_useState14[0],setFilterArr=_useState14[1];var _useTranslation=useTranslation(),t=_useTranslation.t;var _useState15=useState('featured'),_useState16=_slicedToArray(_useState15,2),modelListType=_useState16[0],setModelListType=_useState16[1];var _useState17=useState({type:modelType,modelAbility:'',options:[]}),_useState18=_slicedToArray(_useState17,2),modelAbilityData=_useState18[0],setModelAbilityData=_useState18[1];var filter=function filter(registration){if(searchTerm!==''){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(modelListType==='featured'){if(featureModels.length&&!featureModels.includes(registration.model_name)){return false;}}if(modelAbilityData.modelAbility&&(Array.isArray(registration.model_ability)&®istration.model_ability.indexOf(modelAbilityData.modelAbility)<0||typeof registration.model_ability==='string'&®istration.model_ability!==modelAbilityData.modelAbility))return false;if(completeDeleteArr.includes(registration.model_name)){var _registration$model_s;(_registration$model_s=registration.model_specs)===null||_registration$model_s===void 0?void 0:_registration$model_s.forEach(function(item){item.cache_status=Array.isArray(item)?[false]:false;});}if(statusArr.length===1){if(statusArr[0]==='cached'){var _registration$model_s2;var judge=((_registration$model_s2=registration.model_specs)===null||_registration$model_s2===void 0?void 0:_registration$model_s2.some(function(spec){return filterCache(spec);}))||(registration===null||registration===void 0?void 0:registration.cache_status);return judge&&!completeDeleteArr.includes(registration.model_name);}else{return collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name);}}else if(statusArr.length>1){var _registration$model_s3;var _judge=((_registration$model_s3=registration.model_specs)===null||_registration$model_s3===void 0?void 0:_registration$model_s3.some(function(spec){return filterCache(spec);}))||(registration===null||registration===void 0?void 0:registration.cache_status);return _judge&&!completeDeleteArr.includes(registration.model_name)&&(collectionArr===null||collectionArr===void 0?void 0:collectionArr.includes(registration.model_name));}return true;};var filterCache=function filterCache(spec){if(Array.isArray(spec.cache_status)){var _spec$cache_status;return(_spec$cache_status=spec.cache_status)===null||_spec$cache_status===void 0?void 0:_spec$cache_status.some(function(cs){return cs;});}else{return spec.cache_status===true;}};var handleCompleteDelete=function handleCompleteDelete(model_name){setCompleteDeleteArr([].concat(_toConsumableArray(completeDeleteArr),[model_name]));};function getUniqueModelAbilities(arr){var uniqueAbilities=new Set();arr.forEach(function(item){if(Array.isArray(item.model_ability)){item.model_ability.forEach(function(ability){uniqueAbilities.add(ability);});}});return Array.from(uniqueAbilities);}var update=function update(){if(isCallingApi||isUpdatingModel||cookie.token!=='no_auth'&&!sessionStorage.getItem('token'))return;try{setIsCallingApi(true);fetchWrapper.get(\"/v1/model_registrations/\".concat(modelType,\"?detailed=true\")).then(function(data){var builtinRegistrations=data.filter(function(v){return v.is_builtin;});setModelAbilityData(_objectSpread(_objectSpread({},modelAbilityData),{},{options:getUniqueModelAbilities(builtinRegistrations)}));setRegistrationData(builtinRegistrations);var collectionData=JSON.parse(localStorage.getItem('collectionArr'));setCollectionArr(collectionData);}).catch(function(error){console.error('Error:',error);if(error.response.status!==403&&error.response.status!==401){setErrorMsg(error.message);}});}catch(error){console.error('Error:',error);}finally{setIsCallingApi(false);}};useEffect(function(){update();},[cookie.token]);var getCollectionArr=function getCollectionArr(data){setCollectionArr(data);};var handleChangeFilter=function handleChangeFilter(type,value){var typeMap={modelAbility:{setter:function setter(value){setModelAbilityData(_objectSpread(_objectSpread({},modelAbilityData),{},{modelAbility:value}));},filterArr:modelAbilityData.options},status:{setter:setStatus,filterArr:[]}};var _ref2=typeMap[type]||{},setter=_ref2.setter,excludeArr=_ref2.filterArr;if(!setter)return;setter(value);var updatedFilterArr=[].concat(_toConsumableArray(filterArr.filter(function(item){return!excludeArr.includes(item);})),[value]);setFilterArr(updatedFilterArr);if(type==='status'){setStatusArr(updatedFilterArr.filter(function(item){return!_toConsumableArray(modelAbilityData.options).includes(item);}));}};var handleDeleteChip=function handleDeleteChip(item){setFilterArr(filterArr.filter(function(subItem){return subItem!==item;}));if(item===modelAbilityData.modelAbility){setModelAbilityData(_objectSpread(_objectSpread({},modelAbilityData),{},{modelAbility:''}));}else{setStatusArr(statusArr.filter(function(subItem){return subItem!==item;}));if(item===status)setStatus('');}};var handleModelType=function handleModelType(newModelType){if(newModelType!==null){setModelListType(newModelType);}};function getLabel(item){var translation=t(\"launchModel.\".concat(item));return translation===\"launchModel.\".concat(item)?item:translation;}return/*#__PURE__*/_jsxs(Box,{m:\"20px\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:'grid',gridTemplateColumns:function(){var baseColumns=modelAbilityData.options.length>0?['150px','150px']:['150px'];return featureModels.length?[].concat(baseColumns,['150px','1fr']).join(' '):[].concat(baseColumns,['1fr']).join(' ');}(),columnGap:'20px',margin:'30px 2rem',alignItems:'center'},children:[featureModels.length>0&&/*#__PURE__*/_jsx(FormControl,{sx:{minWidth:120},size:\"small\",children:/*#__PURE__*/_jsxs(ButtonGroup,{children:[/*#__PURE__*/_jsx(Button,{fullWidth:true,onClick:function onClick(){return handleModelType('featured');},variant:modelListType==='featured'?'contained':'outlined',children:t('launchModel.featured')}),/*#__PURE__*/_jsx(Button,{fullWidth:true,onClick:function onClick(){return handleModelType('all');},variant:modelListType==='all'?'contained':'outlined',children:t('launchModel.all')})]})}),modelAbilityData.options.length>0&&/*#__PURE__*/_jsxs(FormControl,{sx:{minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"ability-select-label\",children:t('launchModel.modelAbility')}),/*#__PURE__*/_jsx(Select,{id:\"ability\",labelId:\"ability-select-label\",label:\"Model Ability\",onChange:function onChange(e){return handleChangeFilter('modelAbility',e.target.value);},value:modelAbilityData.modelAbility,size:\"small\",sx:{width:'150px'},children:modelAbilityData.options.map(function(item){return/*#__PURE__*/_jsx(MenuItem,{value:item,children:getLabel(item)},item);})})]}),/*#__PURE__*/_jsxs(FormControl,{sx:{minWidth:120},size:\"small\",children:[/*#__PURE__*/_jsx(InputLabel,{id:\"select-status\",children:t('launchModel.status')}),/*#__PURE__*/_jsxs(Select,{id:\"status\",labelId:\"select-status\",label:t('launchModel.status'),onChange:function onChange(e){return handleChangeFilter('status',e.target.value);},value:status,size:\"small\",sx:{width:'150px'},children:[/*#__PURE__*/_jsx(MenuItem,{value:\"cached\",children:t('launchModel.cached')}),/*#__PURE__*/_jsx(MenuItem,{value:\"favorite\",children:t('launchModel.favorite')})]})]}),/*#__PURE__*/_jsx(FormControl,{sx:{marginTop:1},variant:\"outlined\",margin:\"normal\",children:/*#__PURE__*/_jsx(HotkeyFocusTextField,{id:\"search\",type:\"search\",label:t('launchModel.search'),value:searchTerm,onChange:function onChange(e){return setSearchTerm(e.target.value);},size:\"small\",hotkey:\"Enter\",t:t})})]}),/*#__PURE__*/_jsx(\"div\",{style:{margin:'0 0 30px 30px'},children:filterArr.map(function(item,index){return/*#__PURE__*/_jsx(Chip,{label:getLabel(item),variant:\"outlined\",size:\"small\",color:\"primary\",style:{marginRight:10},onDelete:function onDelete(){return handleDeleteChip(item);}},index);})}),/*#__PURE__*/_jsx(\"div\",{style:{display:'grid',gridTemplateColumns:'repeat(auto-fill, minmax(300px, 1fr))',paddingLeft:'2rem',gridGap:'2rem 0rem'},children:registrationData.filter(function(registration){return filter(registration);}).sort(function(a,b){if(modelListType==='featured'){var indexA=featureModels.indexOf(a.model_name);var indexB=featureModels.indexOf(b.model_name);return(indexA!==-1?indexA:Infinity)-(indexB!==-1?indexB:Infinity);}return 0;}).map(function(filteredRegistration){return/*#__PURE__*/_jsx(ModelCard,{url:endPoint,modelData:filteredRegistration,gpuAvailable:gpuAvailable,modelType:modelType,onHandleCompleteDelete:handleCompleteDelete,onGetCollectionArr:getCollectionArr},filteredRegistration.model_name);})})]});};export default LaunchModelComponent;","map":{"version":3,"names":["Box","Button","ButtonGroup","Chip","FormControl","InputLabel","MenuItem","Select","React","useContext","useEffect","useState","useCookies","useTranslation","ApiContext","fetchWrapper","HotkeyFocusTextField","ModelCard","jsx","_jsx","jsxs","_jsxs","LaunchModelComponent","_ref","modelType","gpuAvailable","featureModels","_useContext","isCallingApi","setIsCallingApi","endPoint","_useContext2","isUpdatingModel","_useContext3","setErrorMsg","_useCookies","_useCookies2","_slicedToArray","cookie","_useState","_useState2","registrationData","setRegistrationData","_useState3","_useState4","searchTerm","setSearchTerm","_useState5","_useState6","status","setStatus","_useState7","_useState8","statusArr","setStatusArr","_useState9","_useState10","completeDeleteArr","setCompleteDeleteArr","_useState11","_useState12","collectionArr","setCollectionArr","_useState13","_useState14","filterArr","setFilterArr","_useTranslation","t","_useState15","_useState16","modelListType","setModelListType","_useState17","type","modelAbility","options","_useState18","modelAbilityData","setModelAbilityData","filter","registration","modelName","model_name","toLowerCase","modelDescription","model_description","includes","length","Array","isArray","model_ability","indexOf","_registration$model_s","model_specs","forEach","item","cache_status","_registration$model_s2","judge","some","spec","filterCache","_registration$model_s3","_spec$cache_status","cs","handleCompleteDelete","concat","_toConsumableArray","getUniqueModelAbilities","arr","uniqueAbilities","Set","ability","add","from","update","token","sessionStorage","getItem","get","then","data","builtinRegistrations","v","is_builtin","_objectSpread","collectionData","JSON","parse","localStorage","catch","error","console","response","message","getCollectionArr","handleChangeFilter","value","typeMap","setter","_ref2","excludeArr","updatedFilterArr","handleDeleteChip","subItem","handleModelType","newModelType","getLabel","translation","m","children","style","display","gridTemplateColumns","baseColumns","join","columnGap","margin","alignItems","sx","minWidth","size","fullWidth","onClick","variant","id","labelId","label","onChange","e","target","width","map","marginTop","hotkey","index","color","marginRight","onDelete","paddingLeft","gridGap","sort","a","b","indexA","indexB","Infinity","filteredRegistration","url","modelData","onHandleCompleteDelete","onGetCollectionArr"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/scenes/launch_model/LaunchModel.js"],"sourcesContent":["import {\n Box,\n Button,\n ButtonGroup,\n Chip,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n} from '@mui/material'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useTranslation } from 'react-i18next'\n\nimport { ApiContext } from '../../components/apiContext'\nimport fetchWrapper from '../../components/fetchWrapper'\nimport HotkeyFocusTextField from '../../components/hotkeyFocusTextField'\nimport ModelCard from './modelCard'\n\nconst LaunchModelComponent = ({ modelType, gpuAvailable, featureModels }) => {\n const { isCallingApi, setIsCallingApi, endPoint } = 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 [status, setStatus] = useState('')\n const [statusArr, setStatusArr] = useState([])\n const [completeDeleteArr, setCompleteDeleteArr] = useState([])\n const [collectionArr, setCollectionArr] = useState([])\n const [filterArr, setFilterArr] = useState([])\n const { t } = useTranslation()\n const [modelListType, setModelListType] = useState('featured')\n const [modelAbilityData, setModelAbilityData] = useState({\n type: modelType,\n modelAbility: '',\n options: [],\n })\n\n const filter = (registration) => {\n if (searchTerm !== '') {\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 }\n\n if (modelListType === 'featured') {\n if (\n featureModels.length &&\n !featureModels.includes(registration.model_name)\n ) {\n return false\n }\n }\n\n if (\n modelAbilityData.modelAbility &&\n ((Array.isArray(registration.model_ability) &&\n registration.model_ability.indexOf(modelAbilityData.modelAbility) <\n 0) ||\n (typeof registration.model_ability === 'string' &&\n registration.model_ability !== modelAbilityData.modelAbility))\n )\n return false\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\n if (statusArr.length === 1) {\n if (statusArr[0] === 'cached') {\n const judge =\n registration.model_specs?.some((spec) => filterCache(spec)) ||\n registration?.cache_status\n return judge && !completeDeleteArr.includes(registration.model_name)\n } else {\n return collectionArr?.includes(registration.model_name)\n }\n } else if (statusArr.length > 1) {\n const judge =\n registration.model_specs?.some((spec) => filterCache(spec)) ||\n registration?.cache_status\n return (\n judge &&\n !completeDeleteArr.includes(registration.model_name) &&\n collectionArr?.includes(registration.model_name)\n )\n }\n\n return true\n }\n\n const filterCache = (spec) => {\n if (Array.isArray(spec.cache_status)) {\n return spec.cache_status?.some((cs) => cs)\n } else {\n return spec.cache_status === true\n }\n }\n\n const handleCompleteDelete = (model_name) => {\n setCompleteDeleteArr([...completeDeleteArr, model_name])\n }\n\n function getUniqueModelAbilities(arr) {\n const uniqueAbilities = new Set()\n\n arr.forEach((item) => {\n if (Array.isArray(item.model_ability)) {\n item.model_ability.forEach((ability) => {\n uniqueAbilities.add(ability)\n })\n }\n })\n\n return Array.from(uniqueAbilities)\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 fetchWrapper\n .get(`/v1/model_registrations/${modelType}?detailed=true`)\n .then((data) => {\n const builtinRegistrations = data.filter((v) => v.is_builtin)\n setModelAbilityData({\n ...modelAbilityData,\n options: getUniqueModelAbilities(builtinRegistrations),\n })\n setRegistrationData(builtinRegistrations)\n const collectionData = JSON.parse(\n localStorage.getItem('collectionArr')\n )\n setCollectionArr(collectionData)\n })\n .catch((error) => {\n console.error('Error:', error)\n if (error.response.status !== 403 && error.response.status !== 401) {\n setErrorMsg(error.message)\n }\n })\n } catch (error) {\n console.error('Error:', error)\n } finally {\n setIsCallingApi(false)\n }\n }\n\n useEffect(() => {\n update()\n }, [cookie.token])\n\n const getCollectionArr = (data) => {\n setCollectionArr(data)\n }\n\n const handleChangeFilter = (type, value) => {\n const typeMap = {\n modelAbility: {\n setter: (value) => {\n setModelAbilityData({\n ...modelAbilityData,\n modelAbility: value,\n })\n },\n filterArr: modelAbilityData.options,\n },\n status: { setter: setStatus, filterArr: [] },\n }\n\n const { setter, filterArr: excludeArr } = typeMap[type] || {}\n if (!setter) return\n\n setter(value)\n\n const updatedFilterArr = [\n ...filterArr.filter((item) => !excludeArr.includes(item)),\n value,\n ]\n\n setFilterArr(updatedFilterArr)\n\n if (type === 'status') {\n setStatusArr(\n updatedFilterArr.filter(\n (item) => ![...modelAbilityData.options].includes(item)\n )\n )\n }\n }\n\n const handleDeleteChip = (item) => {\n setFilterArr(\n filterArr.filter((subItem) => {\n return subItem !== item\n })\n )\n if (item === modelAbilityData.modelAbility) {\n setModelAbilityData({\n ...modelAbilityData,\n modelAbility: '',\n })\n } else {\n setStatusArr(\n statusArr.filter((subItem) => {\n return subItem !== item\n })\n )\n if (item === status) setStatus('')\n }\n }\n\n const handleModelType = (newModelType) => {\n if (newModelType !== null) {\n setModelListType(newModelType)\n }\n }\n\n function getLabel(item) {\n const translation = t(`launchModel.${item}`)\n return translation === `launchModel.${item}` ? item : translation\n }\n\n return (\n <Box m=\"20px\">\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: (() => {\n const baseColumns =\n modelAbilityData.options.length > 0\n ? ['150px', '150px']\n : ['150px']\n return featureModels.length\n ? [...baseColumns, '150px', '1fr'].join(' ')\n : [...baseColumns, '1fr'].join(' ')\n })(),\n columnGap: '20px',\n margin: '30px 2rem',\n alignItems: 'center',\n }}\n >\n {featureModels.length > 0 && (\n <FormControl sx={{ minWidth: 120 }} size=\"small\">\n <ButtonGroup>\n <Button\n fullWidth\n onClick={() => handleModelType('featured')}\n variant={\n modelListType === 'featured' ? 'contained' : 'outlined'\n }\n >\n {t('launchModel.featured')}\n </Button>\n <Button\n fullWidth\n onClick={() => handleModelType('all')}\n variant={modelListType === 'all' ? 'contained' : 'outlined'}\n >\n {t('launchModel.all')}\n </Button>\n </ButtonGroup>\n </FormControl>\n )}\n {modelAbilityData.options.length > 0 && (\n <FormControl sx={{ minWidth: 120 }} size=\"small\">\n <InputLabel id=\"ability-select-label\">\n {t('launchModel.modelAbility')}\n </InputLabel>\n <Select\n id=\"ability\"\n labelId=\"ability-select-label\"\n label=\"Model Ability\"\n onChange={(e) =>\n handleChangeFilter('modelAbility', e.target.value)\n }\n value={modelAbilityData.modelAbility}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n {modelAbilityData.options.map((item) => (\n <MenuItem key={item} value={item}>\n {getLabel(item)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n <FormControl sx={{ minWidth: 120 }} size=\"small\">\n <InputLabel id=\"select-status\">{t('launchModel.status')}</InputLabel>\n <Select\n id=\"status\"\n labelId=\"select-status\"\n label={t('launchModel.status')}\n onChange={(e) => handleChangeFilter('status', e.target.value)}\n value={status}\n size=\"small\"\n sx={{ width: '150px' }}\n >\n <MenuItem value=\"cached\">{t('launchModel.cached')}</MenuItem>\n <MenuItem value=\"favorite\">{t('launchModel.favorite')}</MenuItem>\n </Select>\n </FormControl>\n\n <FormControl sx={{ marginTop: 1 }} variant=\"outlined\" margin=\"normal\">\n <HotkeyFocusTextField\n id=\"search\"\n type=\"search\"\n label={t('launchModel.search')}\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n size=\"small\"\n hotkey=\"Enter\"\n t={t}\n />\n </FormControl>\n </div>\n <div style={{ margin: '0 0 30px 30px' }}>\n {filterArr.map((item, index) => (\n <Chip\n key={index}\n label={getLabel(item)}\n variant=\"outlined\"\n size=\"small\"\n color=\"primary\"\n style={{ marginRight: 10 }}\n onDelete={() => handleDeleteChip(item)}\n />\n ))}\n </div>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))',\n paddingLeft: '2rem',\n gridGap: '2rem 0rem',\n }}\n >\n {registrationData\n .filter((registration) => filter(registration))\n .sort((a, b) => {\n if (modelListType === 'featured') {\n const indexA = featureModels.indexOf(a.model_name)\n const indexB = featureModels.indexOf(b.model_name)\n return (\n (indexA !== -1 ? indexA : Infinity) -\n (indexB !== -1 ? indexB : Infinity)\n )\n }\n return 0\n })\n .map((filteredRegistration) => (\n <ModelCard\n key={filteredRegistration.model_name}\n url={endPoint}\n modelData={filteredRegistration}\n gpuAvailable={gpuAvailable}\n modelType={modelType}\n onHandleCompleteDelete={handleCompleteDelete}\n onGetCollectionArr={getCollectionArr}\n />\n ))}\n </div>\n </Box>\n )\n}\n\nexport default LaunchModelComponent\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import i18n from'i18next';import{initReactI18next}from'react-i18next';import en from'./locales/en.json';import ja from'./locales/ja.json';import ko from'./locales/ko.json';import zh from'./locales/zh.json';i18n.use(initReactI18next).init({fallbackLng:'en',lng:localStorage.getItem('language')||'en',debug:true,interpolation:{escapeValue:false},resources:{en:{translation:en},zh:{translation:zh},ja:{translation:ja},ko:{translation:ko}}});i18n.on('languageChanged',function(lng){localStorage.setItem('language',lng);});export default i18n;","map":{"version":3,"names":["i18n","initReactI18next","en","ja","ko","zh","use","init","fallbackLng","lng","localStorage","getItem","debug","interpolation","escapeValue","resources","translation","on","setItem"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/src/i18n.js"],"sourcesContent":["import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\n\nimport en from './locales/en.json'\nimport ja from './locales/ja.json'\nimport ko from './locales/ko.json'\nimport zh from './locales/zh.json'\n\ni18n.use(initReactI18next).init({\n fallbackLng: 'en',\n lng: localStorage.getItem('language') || 'en',\n debug: true,\n interpolation: {\n escapeValue: false,\n },\n resources: {\n en: { translation: en },\n zh: { translation: zh },\n ja: { translation: ja },\n ko: { translation: ko },\n },\n})\n\ni18n.on('languageChanged', (lng) => {\n localStorage.setItem('language', lng)\n})\n\nexport default i18n\n"],"mappings":"AAAA,MAAO,CAAAA,IAAI,KAAM,SAAS,CAC1B,OAASC,gBAAgB,KAAQ,eAAe,CAEhD,MAAO,CAAAC,EAAE,KAAM,mBAAmB,CAClC,MAAO,CAAAC,EAAE,KAAM,mBAAmB,CAClC,MAAO,CAAAC,EAAE,KAAM,mBAAmB,CAClC,MAAO,CAAAC,EAAE,KAAM,mBAAmB,CAElCL,IAAI,CAACM,GAAG,CAACL,gBAAgB,CAAC,CAACM,IAAI,CAAC,CAC9BC,WAAW,CAAE,IAAI,CACjBC,GAAG,CAAEC,YAAY,CAACC,OAAO,CAAC,UAAU,CAAC,EAAI,IAAI,CAC7CC,KAAK,CAAE,IAAI,CACXC,aAAa,CAAE,CACbC,WAAW,CAAE,KACf,CAAC,CACDC,SAAS,CAAE,CACTb,EAAE,CAAE,CAAEc,WAAW,CAAEd,EAAG,CAAC,CACvBG,EAAE,CAAE,CAAEW,WAAW,CAAEX,EAAG,CAAC,CACvBF,EAAE,CAAE,CAAEa,WAAW,CAAEb,EAAG,CAAC,CACvBC,EAAE,CAAE,CAAEY,WAAW,CAAEZ,EAAG,CACxB,CACF,CAAC,CAAC,CAEFJ,IAAI,CAACiB,EAAE,CAAC,iBAAiB,CAAE,SAACR,GAAG,CAAK,CAClCC,YAAY,CAACQ,OAAO,CAAC,UAAU,CAAET,GAAG,CAAC,CACvC,CAAC,CAAC,CAEF,cAAe,CAAAT,IAAI","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|
|
@@ -21,13 +21,23 @@
|
|
|
21
21
|
|
|
22
22
|
"launchModel": {
|
|
23
23
|
"modelAbility": "Model Ability",
|
|
24
|
-
"generate": "
|
|
25
|
-
"chat": "
|
|
26
|
-
"vision": "
|
|
27
|
-
"reasoning": "
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
24
|
+
"generate": "Text Generation",
|
|
25
|
+
"chat": "Conversation",
|
|
26
|
+
"vision": "Vision",
|
|
27
|
+
"reasoning": "Reasoning",
|
|
28
|
+
"tools": "Tool Use",
|
|
29
|
+
"audio": "Audio Processing",
|
|
30
|
+
"omni": "Multimodal (Omni)",
|
|
31
|
+
"hybrid": "Hybrid Capability",
|
|
32
|
+
"text2image": "Text to Image",
|
|
33
|
+
"image2image": "Image to Image",
|
|
34
|
+
"inpainting": "Image Inpainting",
|
|
35
|
+
"ocr": "Optical Character Recognition (OCR)",
|
|
36
|
+
"audio2text": "Audio to Text",
|
|
37
|
+
"text2audio": "Text to Audio",
|
|
38
|
+
"text2video": "Text to Video",
|
|
39
|
+
"image2video": "Image to Video",
|
|
40
|
+
"firstlastframe2video": "First & Last Frame to Video",
|
|
31
41
|
"status": "Status",
|
|
32
42
|
"cached": "Cached",
|
|
33
43
|
"manageCachedModels": "Manage Cached Models",
|
|
@@ -50,9 +60,11 @@
|
|
|
50
60
|
"commandLineParsing": "Command Line Argument Parsing",
|
|
51
61
|
"copyToCommandLine": "Copy as Command Line Command",
|
|
52
62
|
"modelEngine": "Model Engine",
|
|
63
|
+
"modelEngine.optional": "(Optional) Model Engine",
|
|
53
64
|
"modelFormat": "Model Format",
|
|
54
65
|
"modelSize": "Model Size",
|
|
55
66
|
"quantization": "Quantization",
|
|
67
|
+
"multimodelProjector": "Multimodel Projector",
|
|
56
68
|
"nGPU": "GPU Count per Replica",
|
|
57
69
|
"nGPUPerWorker": "GPU Count per Worker",
|
|
58
70
|
"nGpuLayers": "N GPU Layers",
|
|
@@ -206,6 +218,7 @@
|
|
|
206
218
|
},
|
|
207
219
|
|
|
208
220
|
"components": {
|
|
209
|
-
"copySuccess": "Copied to clipboard!"
|
|
221
|
+
"copySuccess": "Copied to clipboard!",
|
|
222
|
+
"suggestsCommonParameters": "Suggests common parameters; others allowed."
|
|
210
223
|
}
|
|
211
224
|
}
|