xinference 1.10.0__py3-none-any.whl → 1.10.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xinference might be problematic. Click here for more details.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +11 -28
- xinference/client/restful/async_restful_client.py +20 -3
- xinference/client/restful/restful_client.py +20 -3
- xinference/core/supervisor.py +87 -53
- xinference/core/worker.py +10 -0
- xinference/deploy/cmdline.py +15 -0
- xinference/model/audio/core.py +21 -6
- xinference/model/audio/indextts2.py +166 -0
- xinference/model/audio/model_spec.json +38 -1
- xinference/model/image/model_spec.json +69 -0
- xinference/model/image/stable_diffusion/core.py +13 -4
- xinference/model/llm/__init__.py +4 -0
- xinference/model/llm/llm_family.json +464 -2
- xinference/model/llm/sglang/core.py +30 -11
- xinference/model/llm/tool_parsers/deepseek_r1_tool_parser.py +94 -32
- xinference/model/llm/transformers/multimodal/qwen2_vl.py +34 -8
- xinference/model/llm/utils.py +12 -9
- xinference/model/llm/vllm/core.py +93 -17
- xinference/thirdparty/audiotools/__init__.py +10 -0
- xinference/thirdparty/audiotools/core/__init__.py +4 -0
- xinference/thirdparty/audiotools/core/audio_signal.py +1682 -0
- xinference/thirdparty/audiotools/core/display.py +194 -0
- xinference/thirdparty/audiotools/core/dsp.py +390 -0
- xinference/thirdparty/audiotools/core/effects.py +647 -0
- xinference/thirdparty/audiotools/core/ffmpeg.py +211 -0
- xinference/thirdparty/audiotools/core/loudness.py +320 -0
- xinference/thirdparty/audiotools/core/playback.py +252 -0
- xinference/thirdparty/audiotools/core/templates/__init__.py +0 -0
- xinference/thirdparty/audiotools/core/templates/headers.html +322 -0
- xinference/thirdparty/audiotools/core/templates/pandoc.css +407 -0
- xinference/thirdparty/audiotools/core/templates/widget.html +52 -0
- xinference/thirdparty/audiotools/core/util.py +671 -0
- xinference/thirdparty/audiotools/core/whisper.py +97 -0
- xinference/thirdparty/audiotools/data/__init__.py +3 -0
- xinference/thirdparty/audiotools/data/datasets.py +517 -0
- xinference/thirdparty/audiotools/data/preprocess.py +81 -0
- xinference/thirdparty/audiotools/data/transforms.py +1592 -0
- xinference/thirdparty/audiotools/metrics/__init__.py +6 -0
- xinference/thirdparty/audiotools/metrics/distance.py +131 -0
- xinference/thirdparty/audiotools/metrics/quality.py +159 -0
- xinference/thirdparty/audiotools/metrics/spectral.py +247 -0
- xinference/thirdparty/audiotools/ml/__init__.py +5 -0
- xinference/thirdparty/audiotools/ml/accelerator.py +184 -0
- xinference/thirdparty/audiotools/ml/decorators.py +440 -0
- xinference/thirdparty/audiotools/ml/experiment.py +90 -0
- xinference/thirdparty/audiotools/ml/layers/__init__.py +2 -0
- xinference/thirdparty/audiotools/ml/layers/base.py +328 -0
- xinference/thirdparty/audiotools/ml/layers/spectral_gate.py +127 -0
- xinference/thirdparty/audiotools/post.py +140 -0
- xinference/thirdparty/audiotools/preference.py +600 -0
- xinference/thirdparty/indextts/BigVGAN/ECAPA_TDNN.py +656 -0
- xinference/thirdparty/indextts/BigVGAN/__init__.py +0 -0
- xinference/thirdparty/indextts/BigVGAN/activations.py +122 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/__init__.py +0 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/.gitignore +1 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/__init__.py +0 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/activation1d.py +76 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation.cpp +23 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation_cuda.cu +256 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/compat.h +29 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/load.py +121 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/cuda/type_shim.h +92 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/torch/__init__.py +6 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/torch/act.py +31 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/torch/filter.py +102 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_activation/torch/resample.py +58 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_torch/__init__.py +6 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_torch/act.py +29 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_torch/filter.py +96 -0
- xinference/thirdparty/indextts/BigVGAN/alias_free_torch/resample.py +49 -0
- xinference/thirdparty/indextts/BigVGAN/bigvgan.py +534 -0
- xinference/thirdparty/indextts/BigVGAN/models.py +451 -0
- xinference/thirdparty/indextts/BigVGAN/nnet/CNN.py +546 -0
- xinference/thirdparty/indextts/BigVGAN/nnet/__init__.py +0 -0
- xinference/thirdparty/indextts/BigVGAN/nnet/linear.py +89 -0
- xinference/thirdparty/indextts/BigVGAN/nnet/normalization.py +670 -0
- xinference/thirdparty/indextts/BigVGAN/utils.py +101 -0
- xinference/thirdparty/indextts/__init__.py +0 -0
- xinference/thirdparty/indextts/cli.py +65 -0
- xinference/thirdparty/indextts/gpt/__init__.py +0 -0
- xinference/thirdparty/indextts/gpt/conformer/__init__.py +0 -0
- xinference/thirdparty/indextts/gpt/conformer/attention.py +312 -0
- xinference/thirdparty/indextts/gpt/conformer/embedding.py +163 -0
- xinference/thirdparty/indextts/gpt/conformer/subsampling.py +348 -0
- xinference/thirdparty/indextts/gpt/conformer_encoder.py +520 -0
- xinference/thirdparty/indextts/gpt/model.py +713 -0
- xinference/thirdparty/indextts/gpt/model_v2.py +747 -0
- xinference/thirdparty/indextts/gpt/perceiver.py +317 -0
- xinference/thirdparty/indextts/gpt/transformers_beam_search.py +1013 -0
- xinference/thirdparty/indextts/gpt/transformers_generation_utils.py +4747 -0
- xinference/thirdparty/indextts/gpt/transformers_gpt2.py +1878 -0
- xinference/thirdparty/indextts/gpt/transformers_modeling_utils.py +5525 -0
- xinference/thirdparty/indextts/infer.py +690 -0
- xinference/thirdparty/indextts/infer_v2.py +739 -0
- xinference/thirdparty/indextts/s2mel/dac/__init__.py +16 -0
- xinference/thirdparty/indextts/s2mel/dac/__main__.py +36 -0
- xinference/thirdparty/indextts/s2mel/dac/model/__init__.py +4 -0
- xinference/thirdparty/indextts/s2mel/dac/model/base.py +294 -0
- xinference/thirdparty/indextts/s2mel/dac/model/dac.py +400 -0
- xinference/thirdparty/indextts/s2mel/dac/model/discriminator.py +228 -0
- xinference/thirdparty/indextts/s2mel/dac/model/encodec.py +320 -0
- xinference/thirdparty/indextts/s2mel/dac/nn/__init__.py +3 -0
- xinference/thirdparty/indextts/s2mel/dac/nn/layers.py +33 -0
- xinference/thirdparty/indextts/s2mel/dac/nn/loss.py +368 -0
- xinference/thirdparty/indextts/s2mel/dac/nn/quantize.py +339 -0
- xinference/thirdparty/indextts/s2mel/dac/utils/__init__.py +123 -0
- xinference/thirdparty/indextts/s2mel/dac/utils/decode.py +95 -0
- xinference/thirdparty/indextts/s2mel/dac/utils/encode.py +94 -0
- xinference/thirdparty/indextts/s2mel/hf_utils.py +12 -0
- xinference/thirdparty/indextts/s2mel/modules/alias_free_torch/__init__.py +5 -0
- xinference/thirdparty/indextts/s2mel/modules/alias_free_torch/act.py +29 -0
- xinference/thirdparty/indextts/s2mel/modules/alias_free_torch/filter.py +96 -0
- xinference/thirdparty/indextts/s2mel/modules/alias_free_torch/resample.py +57 -0
- xinference/thirdparty/indextts/s2mel/modules/audio.py +82 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/activations.py +120 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py +0 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py +77 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp +23 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu +246 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h +29 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py +86 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h +92 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py +6 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py +30 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py +101 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py +58 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/bigvgan.py +492 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/config.json +63 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/env.py +18 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/meldataset.py +354 -0
- xinference/thirdparty/indextts/s2mel/modules/bigvgan/utils.py +99 -0
- xinference/thirdparty/indextts/s2mel/modules/campplus/DTDNN.py +115 -0
- xinference/thirdparty/indextts/s2mel/modules/campplus/classifier.py +70 -0
- xinference/thirdparty/indextts/s2mel/modules/campplus/layers.py +253 -0
- xinference/thirdparty/indextts/s2mel/modules/commons.py +632 -0
- xinference/thirdparty/indextts/s2mel/modules/diffusion_transformer.py +257 -0
- xinference/thirdparty/indextts/s2mel/modules/encodec.py +292 -0
- xinference/thirdparty/indextts/s2mel/modules/flow_matching.py +171 -0
- xinference/thirdparty/indextts/s2mel/modules/gpt_fast/generate.py +436 -0
- xinference/thirdparty/indextts/s2mel/modules/gpt_fast/model.py +360 -0
- xinference/thirdparty/indextts/s2mel/modules/gpt_fast/quantize.py +622 -0
- xinference/thirdparty/indextts/s2mel/modules/hifigan/f0_predictor.py +55 -0
- xinference/thirdparty/indextts/s2mel/modules/hifigan/generator.py +454 -0
- xinference/thirdparty/indextts/s2mel/modules/layers.py +354 -0
- xinference/thirdparty/indextts/s2mel/modules/length_regulator.py +141 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/__init__.py +0 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/api.py +186 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/attentions.py +465 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/checkpoints_v2/converter/config.json +57 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/commons.py +160 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/mel_processing.py +183 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/models.py +499 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/modules.py +598 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/openvoice_app.py +275 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/se_extractor.py +153 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/transforms.py +209 -0
- xinference/thirdparty/indextts/s2mel/modules/openvoice/utils.py +194 -0
- xinference/thirdparty/indextts/s2mel/modules/quantize.py +229 -0
- xinference/thirdparty/indextts/s2mel/modules/rmvpe.py +631 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/__init__.py +4 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/heads.py +164 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/helpers.py +71 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/loss.py +114 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/models.py +118 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/modules.py +213 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/pretrained.py +51 -0
- xinference/thirdparty/indextts/s2mel/modules/vocos/spectral_ops.py +192 -0
- xinference/thirdparty/indextts/s2mel/modules/wavenet.py +174 -0
- xinference/thirdparty/indextts/s2mel/optimizers.py +96 -0
- xinference/thirdparty/indextts/s2mel/wav2vecbert_extract.py +148 -0
- xinference/thirdparty/indextts/utils/__init__.py +0 -0
- xinference/thirdparty/indextts/utils/arch_util.py +120 -0
- xinference/thirdparty/indextts/utils/checkpoint.py +34 -0
- xinference/thirdparty/indextts/utils/common.py +121 -0
- xinference/thirdparty/indextts/utils/feature_extractors.py +50 -0
- xinference/thirdparty/indextts/utils/front.py +536 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/__init__.py +0 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/codec.py +427 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py +11 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py +150 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py +77 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py +177 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py +401 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py +881 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/codec_dataset.py +264 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/codec_inference.py +515 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/codec_sampler.py +126 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/codec_trainer.py +166 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/__init__.py +0 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py +5 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py +29 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py +96 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py +57 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py +98 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py +137 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py +776 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py +1 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 +0 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py +219 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py +437 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/commons.py +331 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py +35 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/layers.py +460 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py +741 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py +110 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py +224 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/facodec/optimizer.py +104 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py +210 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/kmeans/vocos.py +850 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/melvqgan/melspec.py +108 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/README.md +216 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py +6 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py +5 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py +29 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py +96 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py +57 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py +1222 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py +35 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py +102 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py +7 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py +116 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py +87 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py +234 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/model.py +184 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py +27 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py +346 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py +46 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py +37 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py +14 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py +317 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py +388 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py +135 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py +125 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py +414 -0
- xinference/thirdparty/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py +592 -0
- xinference/thirdparty/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt +0 -0
- xinference/thirdparty/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py +650 -0
- xinference/thirdparty/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py +503 -0
- xinference/thirdparty/indextts/utils/maskgct_utils.py +259 -0
- xinference/thirdparty/indextts/utils/text_utils.py +41 -0
- xinference/thirdparty/indextts/utils/typical_sampling.py +30 -0
- xinference/thirdparty/indextts/utils/utils.py +93 -0
- xinference/thirdparty/indextts/utils/webui_utils.py +42 -0
- xinference/thirdparty/indextts/utils/xtransformers.py +1247 -0
- xinference/thirdparty/indextts/vqvae/__init__.py +0 -0
- xinference/thirdparty/indextts/vqvae/xtts_dvae.py +395 -0
- xinference/ui/gradio/media_interface.py +66 -8
- xinference/ui/web/ui/build/asset-manifest.json +6 -6
- xinference/ui/web/ui/build/index.html +1 -1
- xinference/ui/web/ui/build/static/css/main.5ea97072.css +2 -0
- xinference/ui/web/ui/build/static/css/main.5ea97072.css.map +1 -0
- xinference/ui/web/ui/build/static/js/main.d192c4f3.js +3 -0
- xinference/ui/web/ui/build/static/js/{main.1086c759.js.LICENSE.txt → main.d192c4f3.js.LICENSE.txt} +0 -7
- xinference/ui/web/ui/build/static/js/main.d192c4f3.js.map +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/089c38df5f52348d212ed868dda5c518a42e0c2762caed4175487c0405830c35.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/2b6e3a5b6eb2c5c5f2d007e68cd46c372721cd52bf63508adcdb21ecf79241d8.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/2d887825fd07a56f872eda4420da25fba0b5b62a23bdcc6c6da1a5281887f618.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/4001f9c3e64e73a4f2158826650c174a59d5e3f89ddecddf17cbb6bb688cc4ca.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/4a7018a69e6b7f90fc313248c2aa86f2a8f1eb1db120df586047a8023549b44b.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/64b12aaa1c1d1bf53820ada8a63769067c0ccc5aab46b32348eb1917ae7f2a11.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/7275b67c78ec76ce38a686bb8a576d8c9cecf54e1573614c84859d538efb9be5.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/a68b6ee3b31eadc051fb95ce8f8ccb9c2e8b52c60f290dbab545a1917e065282.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/ae8771cc37693feb160fa8727231312a0c54ef2d1d1ca893be568cd70016ca7e.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/bb4e8722d2d41d87f1fce3661bc8937bffe9448e231fc5f0462630849e851592.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/be6aada1ee4adc2bbf65dbe56d17db32bb3b5478be05d6b527805a8ba6cfb2b9.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/de91c352653c233cf0cb6674e6e04049a44fd0e1156560de65d5c4620521391e.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/e85f7002fc325c83b9c9cd8a1619e5b3ebc701d30e811afc284b88e6ae710cb5.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/e8b603c78944bf3d213639078bfe155ff5c0dfa4048a93cbb967cad6a4eb4ff3.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/f05535160a508b2a312de546a6de234776c613db276479ea4253c0b1bdeeb7d6.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/f09ba9e11106bd59a0de10cc85c55084097729dcab575f43dfcf07375961ed87.json +1 -0
- xinference/ui/web/ui/node_modules/.cache/babel-loader/f995a2425dfb0822fd07127f66ffe9b026883bc156b402eb8bd0b83d52460a93.json +1 -0
- xinference/ui/web/ui/node_modules/.package-lock.json +0 -33
- xinference/ui/web/ui/package-lock.json +0 -34
- xinference/ui/web/ui/package.json +0 -1
- xinference/ui/web/ui/src/locales/en.json +9 -3
- xinference/ui/web/ui/src/locales/ja.json +9 -3
- xinference/ui/web/ui/src/locales/ko.json +9 -3
- xinference/ui/web/ui/src/locales/zh.json +9 -3
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/METADATA +18 -2
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/RECORD +285 -67
- xinference/ui/web/ui/build/static/css/main.013f296b.css +0 -2
- xinference/ui/web/ui/build/static/css/main.013f296b.css.map +0 -1
- xinference/ui/web/ui/build/static/js/main.1086c759.js +0 -3
- xinference/ui/web/ui/build/static/js/main.1086c759.js.map +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/0b0f77000cc1b482ca091cfbcae511dfe02f08916971645fad21d0b1234d04a2.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/1c5f8ff423a7c9202bea60b15680f04b1e9964b445b0da3f86c6ff70cf24e797.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/44ce7993e344980e3ed4f13e8f69237d4a5dfc60e37ca6b54f51f8ee1357bd67.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/4aec1cc414ac3ebb3481d3d915e4db597d9127de813291346eacb8554ab170d4.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/644cfec52f3c57a6e222ce60f112237a1efefe9835efd9aad857a685f53d8eed.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/663436f72af53fe0d72394f56d003fa4e0bba489e5bb4e483fd34b00f84637f7.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/69db82ca9bfe27fe417cc6cf2b1716b09be9c6f0cd198530f12bfc60e801bbcf.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/85087e27618d740c236bf159f30e0219db443ab55f0997388eed5fde6f9e90cc.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/88b07838348864aa86c672be3bbca1e9f58f6f3a2881b32070ec27f4e7b449d1.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/8b8cd408ccfbe115acef27ccfa5b233da8597131a2a5712add13e1e4d5d4504b.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/a23824fe746b9c6ca5eee9159b5764d1ff1653c1d856288c0f75c742bbb0023b.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/a3eb18af328280b139693c9092dff2a0ef8c9a967e6c8956ceee0996611f1984.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/bc1aacc65a102db325ca61bcd2f681e1ae22c36a1f1d98a6ff5e4ad49dc7544f.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/c682fd521747c19dae437d83ce3235a306ce6b68e24a117bc57c27ebb8d1f1ca.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/d5c224be7081f18cba1678b7874a9782eba895df004874ff8f243f94ba79942a.json +0 -1
- xinference/ui/web/ui/node_modules/.cache/babel-loader/f7f18bfb539b036a6a342176dd98a85df5057a884a8da978d679f2a0264883d0.json +0 -1
- xinference/ui/web/ui/node_modules/clipboard/.babelrc.json +0 -11
- xinference/ui/web/ui/node_modules/clipboard/.eslintrc.json +0 -24
- xinference/ui/web/ui/node_modules/clipboard/.prettierrc.json +0 -9
- xinference/ui/web/ui/node_modules/clipboard/bower.json +0 -18
- xinference/ui/web/ui/node_modules/clipboard/composer.json +0 -25
- xinference/ui/web/ui/node_modules/clipboard/package.json +0 -63
- xinference/ui/web/ui/node_modules/delegate/package.json +0 -31
- xinference/ui/web/ui/node_modules/good-listener/bower.json +0 -11
- xinference/ui/web/ui/node_modules/good-listener/package.json +0 -35
- xinference/ui/web/ui/node_modules/select/bower.json +0 -13
- xinference/ui/web/ui/node_modules/select/package.json +0 -29
- xinference/ui/web/ui/node_modules/tiny-emitter/package.json +0 -53
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/WHEEL +0 -0
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/entry_points.txt +0 -0
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/licenses/LICENSE +0 -0
- {xinference-1.10.0.dist-info → xinference-1.10.1.dist-info}/top_level.txt +0 -0
|
@@ -5321,7 +5321,8 @@
|
|
|
5321
5321
|
"<|end▁of▁sentence|>"
|
|
5322
5322
|
],
|
|
5323
5323
|
"reasoning_start_tag": "<think>",
|
|
5324
|
-
"reasoning_end_tag": "</think>"
|
|
5324
|
+
"reasoning_end_tag": "</think>",
|
|
5325
|
+
"tool_parser": "deepseek-r1"
|
|
5325
5326
|
},
|
|
5326
5327
|
{
|
|
5327
5328
|
"version": 2,
|
|
@@ -5778,7 +5779,7 @@
|
|
|
5778
5779
|
],
|
|
5779
5780
|
"reasoning_start_tag": "<think>",
|
|
5780
5781
|
"reasoning_end_tag": "</think>",
|
|
5781
|
-
"tool_parser": "
|
|
5782
|
+
"tool_parser": "deepseek-r1"
|
|
5782
5783
|
},
|
|
5783
5784
|
{
|
|
5784
5785
|
"version": 2,
|
|
@@ -21549,5 +21550,466 @@
|
|
|
21549
21550
|
],
|
|
21550
21551
|
"reasoning_start_tag": "<think>",
|
|
21551
21552
|
"reasoning_end_tag": "</think>"
|
|
21553
|
+
},
|
|
21554
|
+
{
|
|
21555
|
+
"version": 2,
|
|
21556
|
+
"context_length": 131072,
|
|
21557
|
+
"model_name": "Baichuan-M2",
|
|
21558
|
+
"model_lang": [
|
|
21559
|
+
"en",
|
|
21560
|
+
"zh"
|
|
21561
|
+
],
|
|
21562
|
+
"model_ability": [
|
|
21563
|
+
"chat",
|
|
21564
|
+
"reasoning",
|
|
21565
|
+
"hybrid",
|
|
21566
|
+
"tools"
|
|
21567
|
+
],
|
|
21568
|
+
"model_description": "Baichuan-M2-32B is Baichuan AI's medical-enhanced reasoning model, the second medical model released by Baichuan. Designed for real-world medical reasoning tasks, this model builds upon Qwen2.5-32B with an innovative Large Verifier System. Through domain-specific fine-tuning on real-world medical questions, it achieves breakthrough medical performance while maintaining strong general capabilities.",
|
|
21569
|
+
"model_specs": [
|
|
21570
|
+
{
|
|
21571
|
+
"model_format": "pytorch",
|
|
21572
|
+
"model_size_in_billions": 32,
|
|
21573
|
+
"model_src": {
|
|
21574
|
+
"huggingface": {
|
|
21575
|
+
"quantizations": [
|
|
21576
|
+
"none"
|
|
21577
|
+
],
|
|
21578
|
+
"model_id": "baichuan-inc/Baichuan-M2-32B"
|
|
21579
|
+
},
|
|
21580
|
+
"modelscope": {
|
|
21581
|
+
"quantizations": [
|
|
21582
|
+
"none"
|
|
21583
|
+
],
|
|
21584
|
+
"model_id": "baichuan-inc/Baichuan-M2-32B"
|
|
21585
|
+
}
|
|
21586
|
+
}
|
|
21587
|
+
},
|
|
21588
|
+
{
|
|
21589
|
+
"model_format": "gptq",
|
|
21590
|
+
"model_size_in_billions": 32,
|
|
21591
|
+
"model_src": {
|
|
21592
|
+
"huggingface": {
|
|
21593
|
+
"quantizations": [
|
|
21594
|
+
"Int4"
|
|
21595
|
+
],
|
|
21596
|
+
"model_id": "baichuan-inc/Baichuan-M2-32B-GPTQ-Int4"
|
|
21597
|
+
},
|
|
21598
|
+
"modelscope": {
|
|
21599
|
+
"quantizations": [
|
|
21600
|
+
"Int4"
|
|
21601
|
+
],
|
|
21602
|
+
"model_id": "baichuan-inc/Baichuan-M2-32B-GPTQ-Int4"
|
|
21603
|
+
}
|
|
21604
|
+
}
|
|
21605
|
+
}
|
|
21606
|
+
],
|
|
21607
|
+
"chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set content = message.content %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is defined and message.reasoning_content is not none %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in message.content %}\n {%- set content = message.content.split('</think>')[-1].lstrip('\\n') %}\n {%- set reasoning_content = message.content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if thinking_mode is defined %}\n {%- if thinking_mode == \"on\" %}\n {{- '<think>\\n' }}\n {%- elif thinking_mode == \"off\" %}\n {{- '<think>\\n\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endif %}\n",
|
|
21608
|
+
"stop_token_ids": [
|
|
21609
|
+
151643,
|
|
21610
|
+
151644,
|
|
21611
|
+
151645
|
|
21612
|
+
],
|
|
21613
|
+
"stop": [
|
|
21614
|
+
"<|endoftext|>",
|
|
21615
|
+
"<|im_start|>",
|
|
21616
|
+
"<|im_end|>"
|
|
21617
|
+
],
|
|
21618
|
+
"reasoning_start_tag": "<think>",
|
|
21619
|
+
"reasoning_end_tag": "</think>"
|
|
21620
|
+
},
|
|
21621
|
+
{
|
|
21622
|
+
"version": 2,
|
|
21623
|
+
"context_length": 262144,
|
|
21624
|
+
"model_name": "Qwen3-VL-Instruct",
|
|
21625
|
+
"model_lang": [
|
|
21626
|
+
"en",
|
|
21627
|
+
"zh"
|
|
21628
|
+
],
|
|
21629
|
+
"model_ability": [
|
|
21630
|
+
"chat",
|
|
21631
|
+
"vision",
|
|
21632
|
+
"tools"
|
|
21633
|
+
],
|
|
21634
|
+
"model_description": "Meet Qwen3-VL — the most powerful vision-language model in the Qwen series to date.",
|
|
21635
|
+
"model_specs": [
|
|
21636
|
+
{
|
|
21637
|
+
"model_format": "pytorch",
|
|
21638
|
+
"model_size_in_billions": 235,
|
|
21639
|
+
"activated_size_in_billions": 22,
|
|
21640
|
+
"model_src": {
|
|
21641
|
+
"huggingface": {
|
|
21642
|
+
"quantizations": [
|
|
21643
|
+
"none"
|
|
21644
|
+
],
|
|
21645
|
+
"model_id": "Qwen/Qwen3-VL-235B-A22B-Instruct"
|
|
21646
|
+
},
|
|
21647
|
+
"modelscope": {
|
|
21648
|
+
"quantizations": [
|
|
21649
|
+
"none"
|
|
21650
|
+
],
|
|
21651
|
+
"model_id": "Qwen/Qwen3-VL-235B-A22B-Instruct"
|
|
21652
|
+
}
|
|
21653
|
+
}
|
|
21654
|
+
},
|
|
21655
|
+
{
|
|
21656
|
+
"model_format": "fp8",
|
|
21657
|
+
"model_size_in_billions": 235,
|
|
21658
|
+
"activated_size_in_billions": 22,
|
|
21659
|
+
"model_src": {
|
|
21660
|
+
"huggingface": {
|
|
21661
|
+
"quantizations": [
|
|
21662
|
+
"fp8"
|
|
21663
|
+
],
|
|
21664
|
+
"model_id": "QuantTrio/Qwen3-VL-235B-A22B-Instruct-FP8"
|
|
21665
|
+
},
|
|
21666
|
+
"modelscope": {
|
|
21667
|
+
"quantizations": [
|
|
21668
|
+
"fp8"
|
|
21669
|
+
],
|
|
21670
|
+
"model_id": "tclf90/Qwen3-VL-235B-A22B-Instruct-FP8"
|
|
21671
|
+
}
|
|
21672
|
+
}
|
|
21673
|
+
},
|
|
21674
|
+
{
|
|
21675
|
+
"model_format": "awq",
|
|
21676
|
+
"model_size_in_billions": 235,
|
|
21677
|
+
"activated_size_in_billions": 22,
|
|
21678
|
+
"model_src": {
|
|
21679
|
+
"huggingface": {
|
|
21680
|
+
"quantizations": [
|
|
21681
|
+
"Int4"
|
|
21682
|
+
],
|
|
21683
|
+
"model_id": "QuantTrio/Qwen3-VL-235B-A22B-Instruct-AWQ"
|
|
21684
|
+
},
|
|
21685
|
+
"modelscope": {
|
|
21686
|
+
"quantizations": [
|
|
21687
|
+
"Int4"
|
|
21688
|
+
],
|
|
21689
|
+
"model_id": "tclf90/Qwen3-VL-235B-A22B-Instruct-AWQ"
|
|
21690
|
+
}
|
|
21691
|
+
}
|
|
21692
|
+
}
|
|
21693
|
+
],
|
|
21694
|
+
"chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- for message in messages %}\n {%- if message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content_item in message.content %}\n {%- if 'text' in content_item %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and message.content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n",
|
|
21695
|
+
"stop_token_ids": [
|
|
21696
|
+
151643,
|
|
21697
|
+
151645
|
|
21698
|
+
],
|
|
21699
|
+
"stop": [
|
|
21700
|
+
"<|endoftext|>",
|
|
21701
|
+
"<|im_end|>"
|
|
21702
|
+
],
|
|
21703
|
+
"tool_parser":"qwen"
|
|
21704
|
+
},
|
|
21705
|
+
{
|
|
21706
|
+
"version": 2,
|
|
21707
|
+
"context_length": 262144,
|
|
21708
|
+
"model_name": "Qwen3-VL-Thinking",
|
|
21709
|
+
"model_lang": [
|
|
21710
|
+
"en",
|
|
21711
|
+
"zh"
|
|
21712
|
+
],
|
|
21713
|
+
"model_ability": [
|
|
21714
|
+
"chat",
|
|
21715
|
+
"vision",
|
|
21716
|
+
"reasoning",
|
|
21717
|
+
"tools"
|
|
21718
|
+
],
|
|
21719
|
+
"model_description": "Meet Qwen3-VL — the most powerful vision-language model in the Qwen series to date.",
|
|
21720
|
+
"model_specs": [
|
|
21721
|
+
{
|
|
21722
|
+
"model_format": "pytorch",
|
|
21723
|
+
"model_size_in_billions": 235,
|
|
21724
|
+
"activated_size_in_billions": 22,
|
|
21725
|
+
"model_src": {
|
|
21726
|
+
"huggingface": {
|
|
21727
|
+
"quantizations": [
|
|
21728
|
+
"none"
|
|
21729
|
+
],
|
|
21730
|
+
"model_id": "Qwen/Qwen3-VL-235B-A22B-Thinking"
|
|
21731
|
+
},
|
|
21732
|
+
"modelscope": {
|
|
21733
|
+
"quantizations": [
|
|
21734
|
+
"none"
|
|
21735
|
+
],
|
|
21736
|
+
"model_id": "Qwen/Qwen3-VL-235B-A22B-Thinking"
|
|
21737
|
+
}
|
|
21738
|
+
}
|
|
21739
|
+
},
|
|
21740
|
+
{
|
|
21741
|
+
"model_format": "fp8",
|
|
21742
|
+
"model_size_in_billions": 235,
|
|
21743
|
+
"activated_size_in_billions": 22,
|
|
21744
|
+
"model_src": {
|
|
21745
|
+
"huggingface": {
|
|
21746
|
+
"quantizations": [
|
|
21747
|
+
"fp8"
|
|
21748
|
+
],
|
|
21749
|
+
"model_id": "QuantTrio/Qwen3-VL-235B-A22B-Thinking-FP8"
|
|
21750
|
+
},
|
|
21751
|
+
"modelscope": {
|
|
21752
|
+
"quantizations": [
|
|
21753
|
+
"fp8"
|
|
21754
|
+
],
|
|
21755
|
+
"model_id": "tclf90/Qwen3-VL-235B-A22B-Thinking-FP8"
|
|
21756
|
+
}
|
|
21757
|
+
}
|
|
21758
|
+
},
|
|
21759
|
+
{
|
|
21760
|
+
"model_format": "awq",
|
|
21761
|
+
"model_size_in_billions": 235,
|
|
21762
|
+
"activated_size_in_billions": 22,
|
|
21763
|
+
"model_src": {
|
|
21764
|
+
"huggingface": {
|
|
21765
|
+
"quantizations": [
|
|
21766
|
+
"Int4"
|
|
21767
|
+
],
|
|
21768
|
+
"model_id": "QuantTrio/Qwen3-VL-235B-A22B-Thinking-AWQ"
|
|
21769
|
+
},
|
|
21770
|
+
"modelscope": {
|
|
21771
|
+
"quantizations": [
|
|
21772
|
+
"Int4"
|
|
21773
|
+
],
|
|
21774
|
+
"model_id": "tclf90/Qwen3-VL-235B-A22B-Thinking-AWQ"
|
|
21775
|
+
}
|
|
21776
|
+
}
|
|
21777
|
+
}
|
|
21778
|
+
],
|
|
21779
|
+
"chat_template": "{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count) %}\n {%- if content is string %}\n {{- content }}\n {%- else %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n{%- endmacro %}\n{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- render_content(messages[0].content, false) + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + render_content(messages[0].content, false) + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false) %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, True) %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n<think>\\n' }}\n{%- endif %}\n",
|
|
21780
|
+
"stop_token_ids": [
|
|
21781
|
+
151643,
|
|
21782
|
+
151645
|
|
21783
|
+
],
|
|
21784
|
+
"stop": [
|
|
21785
|
+
"<|endoftext|>",
|
|
21786
|
+
"<|im_end|>"
|
|
21787
|
+
],
|
|
21788
|
+
"reasoning_start_tag": "<think>",
|
|
21789
|
+
"reasoning_end_tag": "</think>",
|
|
21790
|
+
"tool_parser":"qwen"
|
|
21791
|
+
},
|
|
21792
|
+
{
|
|
21793
|
+
"version": 2,
|
|
21794
|
+
"context_length": 262144,
|
|
21795
|
+
"model_name": "Qwen3-Next-Instruct",
|
|
21796
|
+
"model_lang": [
|
|
21797
|
+
"en",
|
|
21798
|
+
"zh"
|
|
21799
|
+
],
|
|
21800
|
+
"model_ability": [
|
|
21801
|
+
"chat",
|
|
21802
|
+
"tools"
|
|
21803
|
+
],
|
|
21804
|
+
"model_description": "Qwen3-Next-80B-A3B is the first installment in the Qwen3-Next series",
|
|
21805
|
+
"model_specs": [
|
|
21806
|
+
{
|
|
21807
|
+
"model_format": "pytorch",
|
|
21808
|
+
"model_size_in_billions": 80,
|
|
21809
|
+
"activated_size_in_billions": 3,
|
|
21810
|
+
"model_src": {
|
|
21811
|
+
"huggingface": {
|
|
21812
|
+
"quantizations": [
|
|
21813
|
+
"none"
|
|
21814
|
+
],
|
|
21815
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
|
21816
|
+
},
|
|
21817
|
+
"modelscope": {
|
|
21818
|
+
"quantizations": [
|
|
21819
|
+
"none"
|
|
21820
|
+
],
|
|
21821
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
|
21822
|
+
}
|
|
21823
|
+
}
|
|
21824
|
+
},
|
|
21825
|
+
{
|
|
21826
|
+
"model_format": "fp8",
|
|
21827
|
+
"model_size_in_billions": 80,
|
|
21828
|
+
"activated_size_in_billions": 3,
|
|
21829
|
+
"model_src": {
|
|
21830
|
+
"huggingface": {
|
|
21831
|
+
"quantizations": [
|
|
21832
|
+
"fp8"
|
|
21833
|
+
],
|
|
21834
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Instruct-FP8"
|
|
21835
|
+
},
|
|
21836
|
+
"modelscope": {
|
|
21837
|
+
"quantizations": [
|
|
21838
|
+
"fp8"
|
|
21839
|
+
],
|
|
21840
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Instruct-FP8"
|
|
21841
|
+
}
|
|
21842
|
+
}
|
|
21843
|
+
},
|
|
21844
|
+
{
|
|
21845
|
+
"model_format": "awq",
|
|
21846
|
+
"model_size_in_billions": 80,
|
|
21847
|
+
"activated_size_in_billions": 3,
|
|
21848
|
+
"model_src": {
|
|
21849
|
+
"huggingface": {
|
|
21850
|
+
"quantizations": [
|
|
21851
|
+
"4bit",
|
|
21852
|
+
"8bit"
|
|
21853
|
+
],
|
|
21854
|
+
"model_id": "cpatonn/Qwen3-Next-80B-A3B-Instruct-AWQ-{quantization}"
|
|
21855
|
+
},
|
|
21856
|
+
"modelscope": {
|
|
21857
|
+
"quantizations": [
|
|
21858
|
+
"4bit",
|
|
21859
|
+
"8bit"
|
|
21860
|
+
],
|
|
21861
|
+
"model_id": "cpatonn-mirror/Qwen3-Next-80B-A3B-Instruct-AWQ-{quantization}"
|
|
21862
|
+
}
|
|
21863
|
+
}
|
|
21864
|
+
},
|
|
21865
|
+
{
|
|
21866
|
+
"model_format": "mlx",
|
|
21867
|
+
"model_size_in_billions": 80,
|
|
21868
|
+
"activated_size_in_billions": 3,
|
|
21869
|
+
"model_src": {
|
|
21870
|
+
"huggingface": {
|
|
21871
|
+
"quantizations": [
|
|
21872
|
+
"4bit",
|
|
21873
|
+
"5bit",
|
|
21874
|
+
"6bit",
|
|
21875
|
+
"8bit"
|
|
21876
|
+
],
|
|
21877
|
+
"model_id": "mlx-community/Qwen3-Next-80B-A3B-Instruct-{quantization}"
|
|
21878
|
+
},
|
|
21879
|
+
"modelscope": {
|
|
21880
|
+
"quantizations": [
|
|
21881
|
+
"4bit",
|
|
21882
|
+
"5bit",
|
|
21883
|
+
"6bit",
|
|
21884
|
+
"8bit"
|
|
21885
|
+
],
|
|
21886
|
+
"model_id": "mlx-community/Qwen3-Next-80B-A3B-Instruct-{quantization}"
|
|
21887
|
+
}
|
|
21888
|
+
}
|
|
21889
|
+
}
|
|
21890
|
+
],
|
|
21891
|
+
"chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}",
|
|
21892
|
+
"stop_token_ids": [
|
|
21893
|
+
151643,
|
|
21894
|
+
151645
|
|
21895
|
+
],
|
|
21896
|
+
"stop": [
|
|
21897
|
+
"<|endoftext|>",
|
|
21898
|
+
"<|im_end|>"
|
|
21899
|
+
],
|
|
21900
|
+
"tool_parser":"qwen"
|
|
21901
|
+
},
|
|
21902
|
+
{
|
|
21903
|
+
"version": 2,
|
|
21904
|
+
"context_length": 262144,
|
|
21905
|
+
"model_name": "Qwen3-Next-Thinking",
|
|
21906
|
+
"model_lang": [
|
|
21907
|
+
"en",
|
|
21908
|
+
"zh"
|
|
21909
|
+
],
|
|
21910
|
+
"model_ability": [
|
|
21911
|
+
"chat",
|
|
21912
|
+
"reasoning",
|
|
21913
|
+
"tools"
|
|
21914
|
+
],
|
|
21915
|
+
"model_description": "Qwen3-Next-80B-A3B is the first installment in the Qwen3-Next series",
|
|
21916
|
+
"model_specs": [
|
|
21917
|
+
{
|
|
21918
|
+
"model_format": "pytorch",
|
|
21919
|
+
"model_size_in_billions": 80,
|
|
21920
|
+
"activated_size_in_billions": 3,
|
|
21921
|
+
"model_src": {
|
|
21922
|
+
"huggingface": {
|
|
21923
|
+
"quantizations": [
|
|
21924
|
+
"none"
|
|
21925
|
+
],
|
|
21926
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Thinking"
|
|
21927
|
+
},
|
|
21928
|
+
"modelscope": {
|
|
21929
|
+
"quantizations": [
|
|
21930
|
+
"none"
|
|
21931
|
+
],
|
|
21932
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Thinking"
|
|
21933
|
+
}
|
|
21934
|
+
}
|
|
21935
|
+
},
|
|
21936
|
+
{
|
|
21937
|
+
"model_format": "fp8",
|
|
21938
|
+
"model_size_in_billions": 80,
|
|
21939
|
+
"activated_size_in_billions": 3,
|
|
21940
|
+
"model_src": {
|
|
21941
|
+
"huggingface": {
|
|
21942
|
+
"quantizations": [
|
|
21943
|
+
"fp8"
|
|
21944
|
+
],
|
|
21945
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Thinking-FP8"
|
|
21946
|
+
},
|
|
21947
|
+
"modelscope": {
|
|
21948
|
+
"quantizations": [
|
|
21949
|
+
"fp8"
|
|
21950
|
+
],
|
|
21951
|
+
"model_id": "Qwen/Qwen3-Next-80B-A3B-Thinking-FP8"
|
|
21952
|
+
}
|
|
21953
|
+
}
|
|
21954
|
+
},
|
|
21955
|
+
{
|
|
21956
|
+
"model_format": "awq",
|
|
21957
|
+
"model_size_in_billions": 80,
|
|
21958
|
+
"activated_size_in_billions": 3,
|
|
21959
|
+
"model_src": {
|
|
21960
|
+
"huggingface": {
|
|
21961
|
+
"quantizations": [
|
|
21962
|
+
"4bit",
|
|
21963
|
+
"8bit"
|
|
21964
|
+
],
|
|
21965
|
+
"model_id": "cpatonn/Qwen3-Next-80B-A3B-Thinking-AWQ-{quantization}"
|
|
21966
|
+
},
|
|
21967
|
+
"modelscope": {
|
|
21968
|
+
"quantizations": [
|
|
21969
|
+
"4bit",
|
|
21970
|
+
"8bit"
|
|
21971
|
+
],
|
|
21972
|
+
"model_id": "cpatonn-mirror/Qwen3-Next-80B-A3B-Thinking-AWQ-{quantization}"
|
|
21973
|
+
}
|
|
21974
|
+
}
|
|
21975
|
+
},
|
|
21976
|
+
{
|
|
21977
|
+
"model_format": "mlx",
|
|
21978
|
+
"model_size_in_billions": 80,
|
|
21979
|
+
"activated_size_in_billions": 3,
|
|
21980
|
+
"model_src": {
|
|
21981
|
+
"huggingface": {
|
|
21982
|
+
"quantizations": [
|
|
21983
|
+
"4bit",
|
|
21984
|
+
"5bit",
|
|
21985
|
+
"6bit",
|
|
21986
|
+
"8bit"
|
|
21987
|
+
],
|
|
21988
|
+
"model_id": "mlx-community/Qwen3-Next-80B-A3B-Thinking-{quantization}"
|
|
21989
|
+
},
|
|
21990
|
+
"modelscope": {
|
|
21991
|
+
"quantizations": [
|
|
21992
|
+
"4bit",
|
|
21993
|
+
"5bit",
|
|
21994
|
+
"6bit",
|
|
21995
|
+
"8bit"
|
|
21996
|
+
],
|
|
21997
|
+
"model_id": "mlx-community/Qwen3-Next-80B-A3B-Thinking-{quantization}"
|
|
21998
|
+
}
|
|
21999
|
+
}
|
|
22000
|
+
}
|
|
22001
|
+
],
|
|
22002
|
+
"chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n<think>\\n' }}\n{%- endif %}",
|
|
22003
|
+
"stop_token_ids": [
|
|
22004
|
+
151643,
|
|
22005
|
+
151645
|
|
22006
|
+
],
|
|
22007
|
+
"stop": [
|
|
22008
|
+
"<|endoftext|>",
|
|
22009
|
+
"<|im_end|>"
|
|
22010
|
+
],
|
|
22011
|
+
"reasoning_start_tag": "<think>",
|
|
22012
|
+
"reasoning_end_tag": "</think>",
|
|
22013
|
+
"tool_parser":"qwen"
|
|
21552
22014
|
}
|
|
21553
22015
|
]
|
|
@@ -73,6 +73,7 @@ class SGLANGGenerateConfig(TypedDict, total=False):
|
|
|
73
73
|
stream: bool
|
|
74
74
|
stream_options: Optional[Union[dict, None]]
|
|
75
75
|
json_schema: Optional[dict]
|
|
76
|
+
response_format: dict
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
try:
|
|
@@ -317,13 +318,16 @@ class SGLANGModel(LLM):
|
|
|
317
318
|
stream_options = generate_config.get("stream_options")
|
|
318
319
|
generate_config.setdefault("stream_options", stream_options)
|
|
319
320
|
generate_config.setdefault("ignore_eos", False)
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
.pop("json_schema",
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
321
|
+
response_format = generate_config.pop("response_format", None)
|
|
322
|
+
if response_format:
|
|
323
|
+
json_schema_config = response_format.pop("json_schema", None)
|
|
324
|
+
json_schema = None
|
|
325
|
+
if "schema_" in json_schema_config:
|
|
326
|
+
json_schema = json_schema_config.pop("schema_")
|
|
327
|
+
elif "schema" in json_schema_config:
|
|
328
|
+
json_schema = json_schema_config.pop("schema")
|
|
329
|
+
if json_schema:
|
|
330
|
+
generate_config.setdefault("json_schema", json.dumps(json_schema)) # type: ignore
|
|
327
331
|
|
|
328
332
|
return generate_config
|
|
329
333
|
|
|
@@ -356,22 +360,31 @@ class SGLANGModel(LLM):
|
|
|
356
360
|
|
|
357
361
|
@staticmethod
|
|
358
362
|
def _convert_state_to_completion_chunk(
|
|
359
|
-
request_id: str, model: str, output_text: str
|
|
363
|
+
request_id: str, model: str, output_text: str, meta_info: Dict
|
|
360
364
|
) -> CompletionChunk:
|
|
365
|
+
finish_reason = meta_info.get("finish_reason", None)
|
|
366
|
+
if isinstance(finish_reason, dict) and "type" in finish_reason:
|
|
367
|
+
finish_reason = finish_reason["type"]
|
|
361
368
|
choices: List[CompletionChoice] = [
|
|
362
369
|
CompletionChoice(
|
|
363
370
|
text=output_text,
|
|
364
371
|
index=0,
|
|
365
372
|
logprobs=None,
|
|
366
|
-
finish_reason=
|
|
373
|
+
finish_reason=finish_reason,
|
|
367
374
|
)
|
|
368
375
|
]
|
|
376
|
+
usage = CompletionUsage(
|
|
377
|
+
prompt_tokens=meta_info["prompt_tokens"],
|
|
378
|
+
completion_tokens=meta_info["completion_tokens"],
|
|
379
|
+
total_tokens=meta_info["prompt_tokens"] + meta_info["completion_tokens"],
|
|
380
|
+
)
|
|
369
381
|
chunk = CompletionChunk(
|
|
370
382
|
id=request_id,
|
|
371
383
|
object="text_completion",
|
|
372
384
|
created=int(time.time()),
|
|
373
385
|
model=model,
|
|
374
386
|
choices=choices,
|
|
387
|
+
usage=usage,
|
|
375
388
|
)
|
|
376
389
|
return chunk
|
|
377
390
|
|
|
@@ -379,12 +392,15 @@ class SGLANGModel(LLM):
|
|
|
379
392
|
def _convert_state_to_completion(
|
|
380
393
|
request_id: str, model: str, output_text: str, meta_info: Dict
|
|
381
394
|
) -> Completion:
|
|
395
|
+
finish_reason = meta_info.get("finish_reason", None)
|
|
396
|
+
if isinstance(finish_reason, dict) and "type" in finish_reason:
|
|
397
|
+
finish_reason = finish_reason["type"]
|
|
382
398
|
choices = [
|
|
383
399
|
CompletionChoice(
|
|
384
400
|
text=output_text,
|
|
385
401
|
index=0,
|
|
386
402
|
logprobs=None,
|
|
387
|
-
finish_reason=
|
|
403
|
+
finish_reason=finish_reason,
|
|
388
404
|
)
|
|
389
405
|
]
|
|
390
406
|
|
|
@@ -513,7 +529,10 @@ class SGLANGModel(LLM):
|
|
|
513
529
|
prompt, image_data, **sanitized_generate_config
|
|
514
530
|
):
|
|
515
531
|
chunk = self._convert_state_to_completion_chunk(
|
|
516
|
-
request_id,
|
|
532
|
+
request_id,
|
|
533
|
+
self.model_uid,
|
|
534
|
+
output_text=out,
|
|
535
|
+
meta_info=meta_info,
|
|
517
536
|
)
|
|
518
537
|
complete_response += out
|
|
519
538
|
finish_reason = meta_info["finish_reason"]
|