xinference 0.8.4__py3-none-any.whl → 0.9.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/__init__.py +6 -0
- xinference/_compat.py +52 -0
- xinference/_version.py +3 -3
- xinference/api/oauth2/auth_service.py +2 -3
- xinference/api/oauth2/types.py +1 -1
- xinference/api/restful_api.py +176 -108
- xinference/client/restful/restful_client.py +10 -6
- xinference/core/model.py +3 -2
- xinference/core/resource.py +4 -2
- xinference/core/status_guard.py +2 -1
- xinference/core/supervisor.py +37 -12
- xinference/core/utils.py +2 -1
- xinference/core/worker.py +13 -13
- xinference/deploy/worker.py +7 -7
- xinference/device_utils.py +100 -0
- xinference/fields.py +1 -1
- xinference/model/audio/core.py +1 -2
- xinference/model/audio/whisper.py +20 -8
- xinference/model/core.py +9 -0
- xinference/model/embedding/core.py +5 -136
- xinference/model/image/__init__.py +13 -1
- xinference/model/image/core.py +22 -43
- xinference/model/image/model_spec_modelscope.json +94 -0
- xinference/model/image/stable_diffusion/core.py +3 -5
- xinference/model/llm/ggml/llamacpp.py +1 -1
- xinference/model/llm/llm_family.json +333 -3
- xinference/model/llm/llm_family.py +11 -5
- xinference/model/llm/llm_family_modelscope.json +311 -1
- xinference/model/llm/pytorch/compression.py +3 -1
- xinference/model/llm/pytorch/core.py +34 -15
- xinference/model/llm/pytorch/qwen_vl.py +5 -3
- xinference/model/llm/pytorch/spec_decoding_utils.py +3 -1
- xinference/model/llm/pytorch/spec_model.py +20 -17
- xinference/model/llm/pytorch/utils.py +4 -3
- xinference/model/llm/pytorch/yi_vl.py +9 -5
- xinference/model/llm/utils.py +10 -1
- xinference/model/llm/vllm/core.py +4 -0
- xinference/model/rerank/core.py +5 -136
- xinference/model/utils.py +143 -18
- xinference/thirdparty/llava/mm_utils.py +1 -1
- xinference/types.py +3 -3
- xinference/web/ui/build/asset-manifest.json +3 -3
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/js/main.87d39ffb.js +3 -0
- xinference/web/ui/build/static/js/main.87d39ffb.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{8d95a492a6b08c192e212189567b59b98282ca6f3ed52dd9bd053a6be7ff4e65.json → 027745bdb9bb9fe375f2eef7377e9f7ba82510ed90c05f9e5b34ba314bb93498.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/03d5e7de9b1728d71cd8c483a35f4373eb66932022026142e03005d9de1a2a44.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0738899eefad7f90261125823d87ea9f0d53667b1479a0c1f398aff14f2bbd2a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/09a21ab449599121eadfdd12d6dba40c5a1c5b35dc90be17108eeff80daf79b8.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/09d043a8289da33d05768f5face63cc47e9ce9646d67f5589865db511574e8f9.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0b901c8f077905bf153a1390b207277c31e893f83f9ced5d29a0a0c85a07b5eb.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0da1ff7c9602609cfa8b82a67140114f3037130fe79583bbf23b69cef81823a6.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0db651c046ef908f45cde73af0dbea0a797d3e35bb57f4a0863b481502103a64.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/0f87caef05125425c0ca418a32ce8a53e9becffd464411b2ff94e3c7a37c7b5b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{cb50b4d54ce9c249d580f7f1fc2df4beab4f13c4d16f486c89239809570de8fb.json → 0fc333c35ad49c0db7f18f77521984a36067cfce4206df50ce16a2fdc88be1c6.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/13fdd92dd5e2fe11640cf6ec0368e3c098d3f0c43e11703ccf157e8c41410d5b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1464f950e5600fe2e5890186a1ae3750cdabbadd8525070cef6273450760bcf6.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/17c53dc44a324629efef425833ab48cc05243d089f4eb3c731da63568fcff35e.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1946a52cb34e675da423de15b703437b4c841e4f5aed6ddd932a091c145e17b0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1e0da5ce4d8ccdbe33705a47bdc0d5d1d7e4e48c8e5c1d0b8c473e9f491930ac.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1e3ec3302ef2253fad5e86bf429baf6b69e57e769f38ec1aaada87f3114b6a1f.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1f18804827897c337874b289873df611b44869f86ced1d4351fbe0b45ed17518.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/21b64f7fdb74c2c35479811c3f5683ee161d3b64a4fade0cd1fc0044332c79b2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/22873d21eab4b5a04b183cc3d2cbfafa431e0ce99649aeb900cffcfc33ecbca4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{7a5fecf96af770954035948b07dfadeceb33536b4763a2f9e548121ae555b75f.json → 228b78cd0950f1c967cb33b210b11497052a9998f0b1d1f31ecee0fd8b99fb40.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2328fc2360224ac3eef5c5261fc2a75cdce7fe58c210af8d3e532ec609464f5f.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/25fd89450dcf73a205a5f8c82dbc604bf872d574b748427c26ba79b8711ec502.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{b6e95546cdd247e50d9c916dd3bef5216f96c32a267e54b51b23cc22631be0c4.json → 288d6573b09f0e2b0277e1f301bcb57a194c01f3983e3c1e03c8b2ea72653194.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2c04900a020b813e2e99b15748c3c3ef5a1627c33d5668e45bc6a798f0d28dae.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2cd0fd50d8f213cdd94daffe7d0f997991072b11936ead7c48be2af3fdbd1fda.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2e057c12322da07a537a576a3917d512ac6cb291be5aa29ce23d2679a4fd16b1.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{abd0662d21fbe39e483fbc4d37faa9e24d93889b5b40d42e7e20773c66ee3894.json → 327c21db6124a5209f41996d0d3359b462d5baff3974296f5acfddfc532434e6.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/33294bb0080595100e22c960929a6f3086f5ea632a4bcd9216069f95347a63a9.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3361869e45eddd7d48ff7995e1a12ac454c9eb92d4c87f49ce80c1e9482c1e91.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/375d2f6a31e01c5a82fd0e18f42198f9fbb7117491f3e92d70cf36055f159a6e.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3808217efee76345ba19af3ffdba045888e0908b0dc7fc38e54655cdc3504c60.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/39db740a99454006312dec9e4845f850c51e043458ca94eba8bb256521fabcd4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3d93bd9a74a1ab0cec85af40f9baa5f6a8e7384b9e18c409b95a81a7b45bb7e2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3e737bcdbcbc407ccd65b90e199ef0c3214b261e8e41dbf14d921384a717d9ee.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3e87c7d4f1e5c93603eed3e861945e44dd1e664061a89aaef1aa6435f4f4d7d0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3ecf70018028c8cf6cdc2d24d2b88f2707bd5c23a336fd3d82bd6a1af0db7ded.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/43314d1e9fed30ed6cf5cab3f5033da067e58be29e36448e3c0a8127403a9388.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/442467c09440131f7c25ddcdeb356d2a87783ad4e32d89f410a16cb6e7d83b22.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/487524f2b3494bfcfbd8c12918092a52ff2ce3eefe9bf0a557389ec1c74d3e67.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/4de4b0282a3d1ae02bec0bfe7d6658f039141406e8bfdbe86bf1dc5b115a2524.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/4ec72faab00e4cbffefdf43b987ae3d15beb60e282b9ca86dad37f4d0fc3f2bd.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/51403f1b70af0f4577d4594cbfcf9d9759997e5c49097e7a07219000d1be4ff1.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5282ee05e064b3a80bc991e9003ddef6a4958471d8f4fc65589dc64553365cdd.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/566a0829bfeab41e40bbdca55ad056067e172508af4b333403d4fd334a8c8742.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5689d9aee417a0834fed66720cf3b48c34cc26364cd9ab7e3d809997bb9faec9.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5bedd27475bda204eafccdc636a56ba5765353391049a0b947234faaab3d021a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{94daea23b698bbb26bbbab69bbca8ad521c79fcbd6b495c84c740e4006a2ced2.json → 61014d40df4486972fb6d5909dff45f24bec48573af99ca8bcd79835385c7da0.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/6139c80ec46d77469e9a89924de41d93050f19e9ed541e358f09cbf20ccd7c86.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/63ead4dee6a4f4ae47aed6918a2ab3e172739ecdffaa85e063f9a2c9165ff93c.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6bf8c25e0f2051d994990bf73fdcb3e08963e11589842895593f199eab13ba9a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6d42f63cd673d1c60e534a174cd851e9aefd2d5d45a4aa6128d794457b64de53.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/7044e626a91582077b8cbad09bcf0cc118e92e11ebfa2ebc17622baf98aa56bf.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/71ec408030881aad69854815b8681185d0174cc0cf67f20fb2c3cd13c74fce07.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/7280614d5bddce524182024cc288953eb89d46c1dbe470ed5eb5ecab5de28385.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/7293ad8ba7b5fc6ed791aed44a766a396516c782f5d0e564b9ef0997645ec1dd.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{65ca3ba225b8c8dac907210545b51f2fcdb2591f0feeb7195f1c037f2bc956a0.json → 77d4d795f078408fa2dd49da26d1ba1543d51b63cc253e736f4bef2e6014e888.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/79be1e0dd6b1c3cbb3f08b349454f4791edaac451fa4d1f10eaf433e57ecf70f.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/7c0571c03aa8c90eb9452ba23133aed9b3b2a049910d4d8276588b438a4caaba.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/81ed094096cd9dc36f3ddebe61818766f43d3338c171f2269958f47265e60f24.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/83beb31daa7169fb0057453d4f86411f1effd3e3f7af97472cbd22accbfc65bb.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/86355e55059ddb15f71c0c651a2e622cee6f3141da3a018775ca00c74dd37dc2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{d1af6db565bae36218251c01a817c080ef764172dd0694e38d27b525a3ffd1d2.json → 8710fe63bcc6b95502287c36a7bd881b74ee2926982e120e1e8070a2c8a668fc.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8779104679d8f85017b551d1d108ea1ac701e184ad7bcc8a367526353a6c5175.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/881c573e6aa9954e7bd5e3bc5a6ef62c0db9b93815030080f677f6834e431434.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/8d24c51a0905b919436aac2bad441eb1651c46c4e7aa17c99eb63c7760ce6615.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/93bf5cc8cbe3f0b10f291800e1896f03506a8933cd490e07ee0ff94498f93bce.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9401db0316ac34790aa5b972e9e1c50de58ef313b50840a37e08f0936a7197b6.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/98afeafdfc285a744d116fb5f189a16ad2b977adbd4fc0757f7ade1b29b8ad31.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9a4e624d1ce66832fb213ead02745d84661d9bfcc21b62b4c37c680c3c3f5cbb.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9a7b26f85224d33d431354ac8d7849388b7525fc014801824e705561ab2ac7a7.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9dcb04ac6cb341233a2e98f2fb417d059c2ea6a56d2ff6f30bb27dae9bd6c756.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9ebede8a4bccef016eef418a668b3212962779ea6d2531edb23d3dca81163496.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a0efc8db4289116bdb312014df91fc781f66fe171d63027bbd5aae25cd54c325.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a212defc32ca338ba673722c72815d30974275f1a82b67405a898f826fc8d782.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a2685acab57fd6d874bf6069a587e3770b55c72cacc69cb167bb3dbd16a551c5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a3b7d6233e50dc3832421793a5752c1db99f3a214c9896c97bbd395d007f09b1.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a3d0c810a255108613be0a175d53d673c4b6843c2a87dd0f157b4d3731af2092.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a6633774053545c60721e345820e21cf3b089df219f7ee3fcceaf27af3a9e84b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a6bb917e4869d7d6ddf50b75932cad64e94b9e33db2aa40c4a489a045819bb36.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a816031fafa564dc4af27383612e51ac29af51354f3bba750a70ac0c03b6bd30.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/af6349a1e9761cb98af4b76904440fb7f8d54288ee6ba37116f670226796e689.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/afce63eaad32a9968590e4500e123c81b385ea3b6046b2af1ec7ea8a49ba657b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/aff24b61e5d55147d0a36ef1896b9bd35c995c357f44eeee1209f23db2118636.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b01676c5ca97e3409a1b7bac91b6a797be3719a8b7ec72ad06c9beb296c67bb7.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b0c5e967d1af90d545f1d34c9893a841296b0d1dd50de65eeaf19054995d2a94.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b561d429cea6143e1bf7e6e7e690f9e6ce1dce4adfcacb57d7c5578195d1d190.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b70187bb5aecf3bd7afbe8469b49e2a0a94a0c62727530d0dc2f84ee4577bcfc.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/bd21f6039e23775fb4631bb56f2eef1d132c03a60cc6fe4530569ecfeef456a3.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/be09b5508d0ca5ac0300144a682d4cde2d5b4b96ecb9fc690c1d5e7ee7411b3e.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/be8c9e83f0dd4af2e9bcf6844dd8c4445fe634b6c71da6debfa7acabb7a875c0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c0d1317dfae0c5ddf5a3ba9aef6bd2204f2daf9754f3270c4cab5c4632f78000.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c1e3afdaae5649274f7d34910015b88bc02ba6a00b935e6597f9c670fedc05c0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c2124cfe036b26befcbd386d1d17743b1a58d0b7a041a17bb67f9924400d63c3.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c29ec02243dd370616a489f7de67e4e479d2f7f12504ba7f77304cffe60befbc.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c2a4d298149e6c66713eed4f56f4bbbfa4022a193891029b84e429baf59cc246.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c3d2fc03602f7604a65e631e8595ce4cfabd8887343489b34a65e3a73c5546b3.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c41078c8692e0635fb52d01bc5157528c7308ae5140c134aa07c1fcda4f7a5e5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c4b5f1e444ddd41f8cd30e618c185b16235e313ea34d944959628001a91e38a5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c7ed9bc3125498e475f3170b8126c93368e9cbfd6a5e73ee63437d90e39b69e5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c996b3dc884130f034a37551845201bc5661f2dcd282aed737329f8d4dd387b5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c9fef6e7f0a532c2d1cc25dffd496ea8355dd14ce0105a169b391bfeb9277e4f.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/cc8f5a2bbe4da9852ccdf64150115271baa2d282d74d7fab854dc5ca641dd519.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/ce45adea497443bfc1b6baabd0aa3d85888dd10b1b7fd009edf608e390b2a844.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/ce4b82a3855d18ba09e922f6e2cc1b8c20f0e5261b27303c52d4e1ba5a09a078.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/cf16614311e144768bdc064da754efad77597cac5efe6852be996b9eaaed695a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d074bfe592a195f339acbcd8743f8b64cfd09b45ca1013598269227fc092f2db.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d2a95455cc492d4fbf2839a21eeaef00e7fad2aac93825d2443a38127ad02007.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d4e6e712ebbbf0f30745093e2b6d235c13fb43d37b586a0109e87c19eafdf35d.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d88a02264125b07881eecff752d9c8d718edcf2d87e5431b13e54809dc7bf4f2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d907925fb28912f2e98cccfe758bce680aa4f894cc9d2079d73d7e2d85481d47.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/daf050ec3a864b9831dcb32cee1fb2739dafb68b369e9108469ca1e6fd166867.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/de9645d55ce8744856862eae4a3d3a1266e9df9d575aa3e2f62a75a5d97444f7.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/e04199bdfb87226d6aeae387ef677eae06483f9f135b5a3f1360ec1a243c86cd.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/e97d1f31f54263bb90b7c3e71be0e19973d76d945fb5d526bf93fb449708bbf0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/e9f87f5c370a731ee42098ae6ff38ca6ad256396158c03f84c5e770c6b76a43d.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f2ad375dbc8779f54eb9c377fd951cd442f3766d5eb70d40613b952b811643da.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f35df9d5a0e0341bcc0f39a462e46988c330cdb905cc690b08de4a9cf5771f28.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f433e33369483f75d31fe937b8a597ef2d7cdfed339931643ff966a33dbc6158.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f4c164c89cfbcb1d81bc0b60e3e7c8715e07c7a23118acf4e3e16715beac09c5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f545d937cfb9d974f4aaaa9dc1c12adfed0d4f608de7d0a7247452d9bbbb55a4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/{3cc5ec39e76e1768ffb070a8ae18ee61b68f3ed3593178134d3edda5ed378c6c.json → f8d2c4372093d0ff3a2f78260e004e6c4e2b8ab4f5be9713ebc16c50e9c2ab4b.json} +1 -1
- xinference/web/ui/node_modules/.cache/babel-loader/fa41c6c8ffa1047b7f2f52b6532ea4d9f5754e5bbc11d1340bae7f75ae5ed84e.json +1 -0
- xinference/web/ui/node_modules/.package-lock.json +45 -45
- xinference/web/ui/node_modules/@babel/runtime/package.json +64 -37
- xinference/web/ui/node_modules/@mui/private-theming/package.json +7 -6
- xinference/web/ui/node_modules/@mui/styled-engine/package.json +6 -5
- xinference/web/ui/node_modules/@mui/system/node_modules/clsx/package.json +22 -10
- xinference/web/ui/node_modules/@mui/system/package.json +13 -12
- xinference/web/ui/node_modules/@mui/types/package.json +3 -2
- xinference/web/ui/node_modules/@mui/utils/ClassNameGenerator/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/HTMLElementType/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/capitalize/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/chainPropTypes/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/clamp/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/composeClasses/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/createChainedFunction/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/debounce/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/deepmerge/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/deprecatedPropType/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/elementAcceptingRef/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/elementTypeAcceptingRef/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/exactProp/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/formatMuiErrorMessage/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/generateUtilityClass/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/generateUtilityClasses/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/getDisplayName/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/getScrollbarSize/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/getValidReactChildren/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/integerPropType/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/isMuiElement/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/ownerDocument/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/ownerWindow/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/package.json +8 -7
- xinference/web/ui/node_modules/@mui/utils/ponyfillGlobal/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/refType/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/requirePropFactory/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/resolveProps/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/scrollLeft/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/setRef/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/unsupportedProp/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/useControlled/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/useEnhancedEffect/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/useEventCallback/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/useForkRef/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/useId/package.json +2 -2
- xinference/web/ui/node_modules/@mui/utils/useIsFocusVisible/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/useLazyRef/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/useOnMount/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/usePreviousProps/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/useTimeout/package.json +6 -0
- xinference/web/ui/node_modules/@mui/utils/visuallyHidden/package.json +6 -0
- xinference/web/ui/node_modules/@types/prop-types/package.json +2 -2
- xinference/web/ui/node_modules/csstype/package.json +3 -3
- xinference/web/ui/package-lock.json +47 -45
- xinference/web/ui/package.json +2 -0
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/METADATA +6 -3
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/RECORD +227 -167
- xinference/web/ui/build/static/js/main.476e35cc.js +0 -3
- xinference/web/ui/build/static/js/main.476e35cc.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/02f54fcadc6fe9b1be8451435f9a097c82b3d665bae2d2df03ba0b36cebeca0c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/051391807ffd255b652b63dc2ff12e5ce80113e1b712c81b6c1986a11cd85d3c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/05710e94caaf5a2da790d67aa572bf6bc19bae0237668c8d97f4da62ab52fe5c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/08a3470840a55d359a967d0763cd1ae5c1f15f3ca31118e29b37b4fbbdb248c7.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/0e68b0e268559a563dde6fa4c654922d98c74f5140854437f3e5a01bf23ba41f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/10dc7661741dfc88df5538bbf835870ae47b1a18f36c2f7b9650651e7304ce72.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/18b3d28a2692ab4f2d05254221f53b3c13259435bd98cb90ff5d7250d93f11e0.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1b612ab687e3a4e14db156bd92a75b8a3e96ff04bfbf8f3351c7e801bc61cf90.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1bb839ffeb39ed12367c179fbf3b784e20f6f98fb87c597717bc11ebe3201c59.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1d12e0b0e4e87372b18fef72fcd6e264fa40b0cffdbeddcef004becc4e32cf27.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1d5b806c08ffb55539ee26b5fa9746a373f602354d6e55a0d4379d7e2f903868.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1ecb7ce2bc103bec0d1a9f0cb07132e5ec7731d974998c465798c0e15cafb924.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/20cfc57ae2b8ba23571f386a5f2bf194bd02e8a3913113881bb9804ee822ad58.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/222a437b6773707bbead06ba5db1ed8869e44d9f051a7f6b1a745aeb654679d0.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/249709fb20c1254cecc9ba6666e6bcf37b21e47e7a020d5a7f0513680b49473f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/257ad4979294ee3a7ef400feab3b29ebcd259c47b9410a3011a66f4b33a97904.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2779bdc8ed8372f4015d07a45e4b09756bd953250944c3e3efe6b65bf8eaecd8.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/2bee7b8bd3d52976a45d6068e1333df88b943e0e679403c809e45382e3818037.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/31c71a85b2d0bbdcdc027e7950a9d1f778288f98888d8595fad5e4fdda5bb31f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/371214b6649e323e7281885b1412c5a515ccc2274f4e1a42921e45777694009c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/3eced030d2b3da645f4cbe3dc4ff49744312316e4306ce170991e802e9bfcf8e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/452ae8e7cff99efc35d134014d32610d13217b031b817d3663bb689b3778ebd2.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/48e3f5d01ccedde86348a29392bc9b6e301a51b3f7e2476ae0a95a31eb6bf18d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4a311b5bd98f16588caf60b8de4c8d91d038198e6bfd496f880f60d4c1ea076d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4ccd71d3f73490a18a5a4de4ad82d63cf019caff6f8d881fd1434755a033bfc5.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4ee8343d4254c95e685d49601f1649e8222d7423c2a822e1d01c8fc4cd3582a2.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/523a712748fbb7abf0c5423df62e65c4659b7e450182c890e847cd78ace7cac5.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/5777049bbacf7322891761a5b959e62eec22b0f96a70dbf97e58d530c6258a55.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/5905957ce95f7dee64f0739359e990b8b518cff088c6958487641a3d21737d1e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/5ac79df79d2dff64da97b02d5c90b36bc0d44a4a4229f6efed2993f93ee1d7a1.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/64d3ef38fd394979b09061e67fc47f04b7295401677825c64c72ea2f44cf910c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/68a5d8e66687770e05aebcae9a8047189dc577d6150fbf0e62d2b2c11c4335c5.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/69d5f27e40d5e7040c8e8e303ccaee019b54092345acc3838d6eb943c474ce39.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/6a07b8d00482c07a4b7c73f6bebb79fad54bbea35ba358681ede6ff299a09f6b.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/70b0307a43b9f8c876bf2a1f7dea4cc56cc0ea33743e863c0b3983bc48109f2d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/710c39a26816820c2cfd00b19cd0112851d64b8ac6b201b18727b43b5a69d92c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/722f4c03da79795d1fb738323f3eb6794ab18711e20f141c0b678c5d4cb3dce9.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8237bdfff695d71496ee2ff83ba0392d753f8e1dff0d002a1b2c9e249f03083c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8342e3800fed63e8e805850810aee4fd9b0558aca10c8b6b770fe5bff1bed266.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/847a71f54f7a059efc71f70c297b6b4182a633130715c80f817eb533de108c12.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8731a959d9b7278ba7a1c044bb4253bfff63079da69b21ff80221ae5e037dbbe.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/87b4e94b045df561c8f4bd253c84447c96e0dededbcb6646c0cd180119960990.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/894a334446bac96d74385c23c9d6f2d117ee29511897700430cd0e578cb32527.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8c5ba88b620eeedbb99db18a610138353a5a657170fdb8bd6969585f81b34f74.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9004bc083cf179941e64130390a27afcf7593b21dd64a87d03e1e6489032aa13.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9b84631723b52988d3748d80b994e43d1944ca55098a5d908c9061eeb4c84f90.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9ee1f84bde10cd78ca23a4681c7372195748bacd5e41c3b1df8e39d960294d81.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a127f13651a7398f5fc378456a52cfa0c6260f6109611d3fb012aa7c7a4ee17a.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a5e2e9f707eb7039bea096ca117d996b8f9cbc2a5613fd8e0c5b0094444ce23c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a6131b7fb1b30fd63d798845dab508a22b21c616b361e6214bf711915c5fef3d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a7b8ccb199158c897ed7d7835942eb37569221be4101eecfa7a7ce62e0c76f1f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/acaf6dbddd57b63a874e9062803850ce4911c8dc63a362eacdc4d2d0f48f8c16.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/ade3cd82af85d2d28138bd942228b01e27559a5a4072ee049dcb47612ee9a506.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/aea82c71088dc9afd6f4ba71434286af5c6ab5e9b87088b0e84f351146d06489.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/afbd547078b20bb14596f20e165cb40413147e3de501b126c97bb417f8b9a53e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/afc597494ebc62d22e4d3ac2a839bd5f30d5e47ce1d0576e0f62407ef6c78652.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/affbbac58777e26ba8b6dcda8cea72c76975bd0207f0a510bfde5983d3081f74.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b0aa2ece62a1f5fa015f9e6b59d20b79be727fb5a3f4fc747200163097f320ad.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b10391d3ae53452c8ec97d230f064e03a8377aab2be4b1b3e30cb3e054b2341a.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b4bab0c147360f3e335251166d3d25602e2e0e160fb3734ac019a5b42499179c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b57dcff363e045fd11ea2bcbc58cce470f1bc22d3ac14c8acbf63a36637050ff.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b80db1012318b97c329c4e3e72454f7512fb107e57c444b437dbe4ba1a3faa5a.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/b8de42f7f5dc1df9e802898a0ebb35adb57d269d7af21e6c66a0fde0ff226a08.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/be696cadea3bf577c0defc8f8d100232369763dde754b5ba9399f45f42aed215.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/c5a30d7c6cb484268e9126dd6d078229a1dcaa07fb064077b87d15224c61a3aa.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/c67e2077e70c4751e9e1dd98f378d979abd9c8a39fbf6c69f02fb4e5b04eef87.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/c81c1cad35be60a4fad090374edf50a884540e306d464b803120554df61e817e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/d1054fd4d09666318a00ca0aea5ff42a2fdb17b3a42b5f77b93433d7408eb2f4.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/d1ec524ce17a48816fc55fe665572c1ef4982a4bd1ecb01badd0fdffc465242c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/d4d61a537c45c4506a6b7e3478206b71dc96e0c6c6410cef9b5d2f47018bc578.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e2e563b606cac9d51661cf68ba1729eb5df7861af521adccedc1b163439b657d.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e3890e804dfaeb19b79f52e1b20198b587da61a9a3a1f55417d2cc5ce4ad7dae.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e8c3fadbd12f0e2c7b70d84acbcabd0a5c96b05380a7b3167b00e8739d829d24.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/ebb5ae1a82b33b94e2b0cfec599bec7500aff0a1701f91736a6f3a4f77617560.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f30f0396f4e54f0355112d5eba4b16c3a56f47e456eb117a9dc7fa6218ce21fe.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f318ac15e999a553c00832029245730fe25c2916860b0ff55eee1f0ab926d84e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f55f4e657cc2d797b7e73a64ce40352f9a5dde31763a3e89c14d3b983307f30e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f8a68931d652a5e3be4e1ae06210a223de1239f3884ad858cecf9fe8d11c2ffe.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f95a8bd358eeb55fa2f49f1224cc2f4f36006359856744ff09ae4bb295f59ec1.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/fb6fbd693a53d3c542d9adf83e0bb458918d39bf101eaf6d6662a2fbc35c1adc.json +0 -1
- /xinference/web/ui/build/static/js/{main.476e35cc.js.LICENSE.txt → main.87d39ffb.js.LICENSE.txt} +0 -0
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/LICENSE +0 -0
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/WHEEL +0 -0
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/entry_points.txt +0 -0
- {xinference-0.8.4.dist-info → xinference-0.9.0.dist-info}/top_level.txt +0 -0
xinference/__init__.py
CHANGED
xinference/_compat.py
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2022-2024 XProbe Inc.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
from pydantic.version import VERSION as PYDANTIC_VERSION
|
|
15
|
+
|
|
16
|
+
PYDANTIC_V2 = PYDANTIC_VERSION.startswith("2.")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
if PYDANTIC_V2:
|
|
20
|
+
from pydantic.v1 import ( # noqa: F401
|
|
21
|
+
BaseModel,
|
|
22
|
+
Field,
|
|
23
|
+
Protocol,
|
|
24
|
+
ValidationError,
|
|
25
|
+
create_model,
|
|
26
|
+
create_model_from_namedtuple,
|
|
27
|
+
create_model_from_typeddict,
|
|
28
|
+
parse_file_as,
|
|
29
|
+
validate_arguments,
|
|
30
|
+
validator,
|
|
31
|
+
)
|
|
32
|
+
from pydantic.v1.error_wrappers import ErrorWrapper # noqa: F401
|
|
33
|
+
from pydantic.v1.parse import load_str_bytes # noqa: F401
|
|
34
|
+
from pydantic.v1.types import StrBytes # noqa: F401
|
|
35
|
+
from pydantic.v1.utils import ROOT_KEY # noqa: F401
|
|
36
|
+
else:
|
|
37
|
+
from pydantic import ( # noqa: F401
|
|
38
|
+
BaseModel,
|
|
39
|
+
Field,
|
|
40
|
+
Protocol,
|
|
41
|
+
ValidationError,
|
|
42
|
+
create_model,
|
|
43
|
+
create_model_from_namedtuple,
|
|
44
|
+
create_model_from_typeddict,
|
|
45
|
+
parse_file_as,
|
|
46
|
+
validate_arguments,
|
|
47
|
+
validator,
|
|
48
|
+
)
|
|
49
|
+
from pydantic.error_wrappers import ErrorWrapper # noqa: F401
|
|
50
|
+
from pydantic.parse import load_str_bytes # noqa: F401
|
|
51
|
+
from pydantic.types import StrBytes # noqa: F401
|
|
52
|
+
from pydantic.utils import ROOT_KEY # noqa: F401
|
xinference/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-02-
|
|
11
|
+
"date": "2024-02-22T15:40:53+0800",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "0.
|
|
14
|
+
"full-revisionid": "c653c975847f9f6a81382033a9c8f5bd81bf70f2",
|
|
15
|
+
"version": "0.9.0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -14,13 +14,12 @@
|
|
|
14
14
|
from datetime import timedelta
|
|
15
15
|
from typing import List, Optional
|
|
16
16
|
|
|
17
|
-
import pydantic
|
|
18
17
|
from fastapi import Depends, HTTPException, status
|
|
19
18
|
from fastapi.security import OAuth2PasswordBearer, SecurityScopes
|
|
20
19
|
from jose import JWTError, jwt
|
|
21
|
-
from pydantic import BaseModel, ValidationError
|
|
22
20
|
from typing_extensions import Annotated
|
|
23
21
|
|
|
22
|
+
from ..._compat import BaseModel, ValidationError, parse_file_as
|
|
24
23
|
from .types import AuthStartupConfig, User
|
|
25
24
|
from .utils import create_access_token, get_password_hash, verify_password
|
|
26
25
|
|
|
@@ -43,7 +42,7 @@ class AuthService:
|
|
|
43
42
|
|
|
44
43
|
def init_auth_config(self):
|
|
45
44
|
if self._auth_config_file:
|
|
46
|
-
config: AuthStartupConfig =
|
|
45
|
+
config: AuthStartupConfig = parse_file_as(
|
|
47
46
|
path=self._auth_config_file, type_=AuthStartupConfig
|
|
48
47
|
)
|
|
49
48
|
for user in config.user_config:
|
xinference/api/oauth2/types.py
CHANGED
xinference/api/restful_api.py
CHANGED
|
@@ -44,13 +44,14 @@ from fastapi.middleware.cors import CORSMiddleware
|
|
|
44
44
|
from fastapi.responses import JSONResponse
|
|
45
45
|
from fastapi.staticfiles import StaticFiles
|
|
46
46
|
from PIL import Image
|
|
47
|
-
from pydantic import BaseModel, Field
|
|
48
47
|
from sse_starlette.sse import EventSourceResponse
|
|
49
48
|
from starlette.responses import JSONResponse as StarletteJSONResponse
|
|
50
49
|
from starlette.responses import RedirectResponse
|
|
51
50
|
from uvicorn import Config, Server
|
|
52
51
|
from xoscar.utils import get_next_port
|
|
53
52
|
|
|
53
|
+
from .._compat import BaseModel, Field
|
|
54
|
+
from .._version import get_versions
|
|
54
55
|
from ..constants import XINFERENCE_DEFAULT_ENDPOINT_PORT
|
|
55
56
|
from ..core.event import Event, EventCollectorActor, EventType
|
|
56
57
|
from ..core.supervisor import SupervisorActor
|
|
@@ -190,7 +191,8 @@ class RESTfulAPI:
|
|
|
190
191
|
"Report error event failed, model: %s, content: %s", model_uid, content
|
|
191
192
|
)
|
|
192
193
|
|
|
193
|
-
async def login_for_access_token(self,
|
|
194
|
+
async def login_for_access_token(self, request: Request) -> JSONResponse:
|
|
195
|
+
form_data = LoginUserForm.parse_obj(await request.json())
|
|
194
196
|
result = self._auth_service.generate_token_for_user(
|
|
195
197
|
form_data.username, form_data.password
|
|
196
198
|
)
|
|
@@ -220,6 +222,9 @@ class RESTfulAPI:
|
|
|
220
222
|
self._router.add_api_route(
|
|
221
223
|
"/v1/cluster/info", self.get_cluster_device_info, methods=["GET"]
|
|
222
224
|
)
|
|
225
|
+
self._router.add_api_route(
|
|
226
|
+
"/v1/cluster/version", self.get_cluster_version, methods=["GET"]
|
|
227
|
+
)
|
|
223
228
|
self._router.add_api_route(
|
|
224
229
|
"/v1/cluster/devices", self._get_devices_count, methods=["GET"]
|
|
225
230
|
)
|
|
@@ -230,9 +235,11 @@ class RESTfulAPI:
|
|
|
230
235
|
"/v1/ui/{model_uid}",
|
|
231
236
|
self.build_gradio_interface,
|
|
232
237
|
methods=["POST"],
|
|
233
|
-
dependencies=
|
|
234
|
-
|
|
235
|
-
|
|
238
|
+
dependencies=(
|
|
239
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
240
|
+
if self.is_authenticated()
|
|
241
|
+
else None
|
|
242
|
+
),
|
|
236
243
|
)
|
|
237
244
|
self._router.add_api_route(
|
|
238
245
|
"/token", self.login_for_access_token, methods=["POST"]
|
|
@@ -245,142 +252,176 @@ class RESTfulAPI:
|
|
|
245
252
|
"/v1/models/instances",
|
|
246
253
|
self.get_instance_info,
|
|
247
254
|
methods=["GET"],
|
|
248
|
-
dependencies=
|
|
249
|
-
|
|
250
|
-
|
|
255
|
+
dependencies=(
|
|
256
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
257
|
+
if self.is_authenticated()
|
|
258
|
+
else None
|
|
259
|
+
),
|
|
251
260
|
)
|
|
252
261
|
self._router.add_api_route(
|
|
253
262
|
"/v1/models/{model_type}/{model_name}/versions",
|
|
254
263
|
self.get_model_versions,
|
|
255
264
|
methods=["GET"],
|
|
256
|
-
dependencies=
|
|
257
|
-
|
|
258
|
-
|
|
265
|
+
dependencies=(
|
|
266
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
267
|
+
if self.is_authenticated()
|
|
268
|
+
else None
|
|
269
|
+
),
|
|
259
270
|
)
|
|
260
271
|
self._router.add_api_route(
|
|
261
272
|
"/v1/models",
|
|
262
273
|
self.list_models,
|
|
263
274
|
methods=["GET"],
|
|
264
|
-
dependencies=
|
|
265
|
-
|
|
266
|
-
|
|
275
|
+
dependencies=(
|
|
276
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
277
|
+
if self.is_authenticated()
|
|
278
|
+
else None
|
|
279
|
+
),
|
|
267
280
|
)
|
|
268
281
|
|
|
269
282
|
self._router.add_api_route(
|
|
270
283
|
"/v1/models/{model_uid}",
|
|
271
284
|
self.describe_model,
|
|
272
285
|
methods=["GET"],
|
|
273
|
-
dependencies=
|
|
274
|
-
|
|
275
|
-
|
|
286
|
+
dependencies=(
|
|
287
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
288
|
+
if self.is_authenticated()
|
|
289
|
+
else None
|
|
290
|
+
),
|
|
276
291
|
)
|
|
277
292
|
self._router.add_api_route(
|
|
278
293
|
"/v1/models/{model_uid}/events",
|
|
279
294
|
self.get_model_events,
|
|
280
295
|
methods=["GET"],
|
|
281
|
-
dependencies=
|
|
282
|
-
|
|
283
|
-
|
|
296
|
+
dependencies=(
|
|
297
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
298
|
+
if self.is_authenticated()
|
|
299
|
+
else None
|
|
300
|
+
),
|
|
284
301
|
)
|
|
285
302
|
self._router.add_api_route(
|
|
286
303
|
"/v1/models/instance",
|
|
287
304
|
self.launch_model_by_version,
|
|
288
305
|
methods=["POST"],
|
|
289
|
-
dependencies=
|
|
290
|
-
|
|
291
|
-
|
|
306
|
+
dependencies=(
|
|
307
|
+
[Security(self._auth_service, scopes=["models:start"])]
|
|
308
|
+
if self.is_authenticated()
|
|
309
|
+
else None
|
|
310
|
+
),
|
|
292
311
|
)
|
|
293
312
|
self._router.add_api_route(
|
|
294
313
|
"/v1/models",
|
|
295
314
|
self.launch_model,
|
|
296
315
|
methods=["POST"],
|
|
297
|
-
dependencies=
|
|
298
|
-
|
|
299
|
-
|
|
316
|
+
dependencies=(
|
|
317
|
+
[Security(self._auth_service, scopes=["models:start"])]
|
|
318
|
+
if self.is_authenticated()
|
|
319
|
+
else None
|
|
320
|
+
),
|
|
300
321
|
)
|
|
301
322
|
self._router.add_api_route(
|
|
302
323
|
"/experimental/speculative_llms",
|
|
303
324
|
self.launch_speculative_llm,
|
|
304
325
|
methods=["POST"],
|
|
305
|
-
dependencies=
|
|
306
|
-
|
|
307
|
-
|
|
326
|
+
dependencies=(
|
|
327
|
+
[Security(self._auth_service, scopes=["models:start"])]
|
|
328
|
+
if self.is_authenticated()
|
|
329
|
+
else None
|
|
330
|
+
),
|
|
308
331
|
)
|
|
309
332
|
self._router.add_api_route(
|
|
310
333
|
"/v1/models/{model_uid}",
|
|
311
334
|
self.terminate_model,
|
|
312
335
|
methods=["DELETE"],
|
|
313
|
-
dependencies=
|
|
314
|
-
|
|
315
|
-
|
|
336
|
+
dependencies=(
|
|
337
|
+
[Security(self._auth_service, scopes=["models:stop"])]
|
|
338
|
+
if self.is_authenticated()
|
|
339
|
+
else None
|
|
340
|
+
),
|
|
316
341
|
)
|
|
317
342
|
self._router.add_api_route(
|
|
318
343
|
"/v1/completions",
|
|
319
344
|
self.create_completion,
|
|
320
345
|
methods=["POST"],
|
|
321
346
|
response_model=Completion,
|
|
322
|
-
dependencies=
|
|
323
|
-
|
|
324
|
-
|
|
347
|
+
dependencies=(
|
|
348
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
349
|
+
if self.is_authenticated()
|
|
350
|
+
else None
|
|
351
|
+
),
|
|
325
352
|
)
|
|
326
353
|
self._router.add_api_route(
|
|
327
354
|
"/v1/embeddings",
|
|
328
355
|
self.create_embedding,
|
|
329
356
|
methods=["POST"],
|
|
330
|
-
dependencies=
|
|
331
|
-
|
|
332
|
-
|
|
357
|
+
dependencies=(
|
|
358
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
359
|
+
if self.is_authenticated()
|
|
360
|
+
else None
|
|
361
|
+
),
|
|
333
362
|
)
|
|
334
363
|
self._router.add_api_route(
|
|
335
364
|
"/v1/rerank",
|
|
336
365
|
self.rerank,
|
|
337
366
|
methods=["POST"],
|
|
338
|
-
dependencies=
|
|
339
|
-
|
|
340
|
-
|
|
367
|
+
dependencies=(
|
|
368
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
369
|
+
if self.is_authenticated()
|
|
370
|
+
else None
|
|
371
|
+
),
|
|
341
372
|
)
|
|
342
373
|
self._router.add_api_route(
|
|
343
374
|
"/v1/audio/transcriptions",
|
|
344
375
|
self.create_transcriptions,
|
|
345
376
|
methods=["POST"],
|
|
346
|
-
dependencies=
|
|
347
|
-
|
|
348
|
-
|
|
377
|
+
dependencies=(
|
|
378
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
379
|
+
if self.is_authenticated()
|
|
380
|
+
else None
|
|
381
|
+
),
|
|
349
382
|
)
|
|
350
383
|
self._router.add_api_route(
|
|
351
384
|
"/v1/audio/translations",
|
|
352
385
|
self.create_translations,
|
|
353
386
|
methods=["POST"],
|
|
354
|
-
dependencies=
|
|
355
|
-
|
|
356
|
-
|
|
387
|
+
dependencies=(
|
|
388
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
389
|
+
if self.is_authenticated()
|
|
390
|
+
else None
|
|
391
|
+
),
|
|
357
392
|
)
|
|
358
393
|
self._router.add_api_route(
|
|
359
394
|
"/v1/images/generations",
|
|
360
395
|
self.create_images,
|
|
361
396
|
methods=["POST"],
|
|
362
397
|
response_model=ImageList,
|
|
363
|
-
dependencies=
|
|
364
|
-
|
|
365
|
-
|
|
398
|
+
dependencies=(
|
|
399
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
400
|
+
if self.is_authenticated()
|
|
401
|
+
else None
|
|
402
|
+
),
|
|
366
403
|
)
|
|
367
404
|
self._router.add_api_route(
|
|
368
405
|
"/v1/images/variations",
|
|
369
406
|
self.create_variations,
|
|
370
407
|
methods=["POST"],
|
|
371
408
|
response_model=ImageList,
|
|
372
|
-
dependencies=
|
|
373
|
-
|
|
374
|
-
|
|
409
|
+
dependencies=(
|
|
410
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
411
|
+
if self.is_authenticated()
|
|
412
|
+
else None
|
|
413
|
+
),
|
|
375
414
|
)
|
|
376
415
|
self._router.add_api_route(
|
|
377
416
|
"/v1/chat/completions",
|
|
378
417
|
self.create_chat_completion,
|
|
379
418
|
methods=["POST"],
|
|
380
419
|
response_model=ChatCompletion,
|
|
381
|
-
dependencies=
|
|
382
|
-
|
|
383
|
-
|
|
420
|
+
dependencies=(
|
|
421
|
+
[Security(self._auth_service, scopes=["models:read"])]
|
|
422
|
+
if self.is_authenticated()
|
|
423
|
+
else None
|
|
424
|
+
),
|
|
384
425
|
)
|
|
385
426
|
|
|
386
427
|
# for custom models
|
|
@@ -388,33 +429,41 @@ class RESTfulAPI:
|
|
|
388
429
|
"/v1/model_registrations/{model_type}",
|
|
389
430
|
self.register_model,
|
|
390
431
|
methods=["POST"],
|
|
391
|
-
dependencies=
|
|
392
|
-
|
|
393
|
-
|
|
432
|
+
dependencies=(
|
|
433
|
+
[Security(self._auth_service, scopes=["models:register"])]
|
|
434
|
+
if self.is_authenticated()
|
|
435
|
+
else None
|
|
436
|
+
),
|
|
394
437
|
)
|
|
395
438
|
self._router.add_api_route(
|
|
396
439
|
"/v1/model_registrations/{model_type}/{model_name}",
|
|
397
440
|
self.unregister_model,
|
|
398
441
|
methods=["DELETE"],
|
|
399
|
-
dependencies=
|
|
400
|
-
|
|
401
|
-
|
|
442
|
+
dependencies=(
|
|
443
|
+
[Security(self._auth_service, scopes=["models:unregister"])]
|
|
444
|
+
if self.is_authenticated()
|
|
445
|
+
else None
|
|
446
|
+
),
|
|
402
447
|
)
|
|
403
448
|
self._router.add_api_route(
|
|
404
449
|
"/v1/model_registrations/{model_type}",
|
|
405
450
|
self.list_model_registrations,
|
|
406
451
|
methods=["GET"],
|
|
407
|
-
dependencies=
|
|
408
|
-
|
|
409
|
-
|
|
452
|
+
dependencies=(
|
|
453
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
454
|
+
if self.is_authenticated()
|
|
455
|
+
else None
|
|
456
|
+
),
|
|
410
457
|
)
|
|
411
458
|
self._router.add_api_route(
|
|
412
459
|
"/v1/model_registrations/{model_type}/{model_name}",
|
|
413
460
|
self.get_model_registrations,
|
|
414
461
|
methods=["GET"],
|
|
415
|
-
dependencies=
|
|
416
|
-
|
|
417
|
-
|
|
462
|
+
dependencies=(
|
|
463
|
+
[Security(self._auth_service, scopes=["models:list"])]
|
|
464
|
+
if self.is_authenticated()
|
|
465
|
+
else None
|
|
466
|
+
),
|
|
418
467
|
)
|
|
419
468
|
|
|
420
469
|
# Clear the global Registry for the MetricsMiddleware, or
|
|
@@ -705,13 +754,15 @@ class RESTfulAPI:
|
|
|
705
754
|
raise HTTPException(status_code=500, detail=str(e))
|
|
706
755
|
|
|
707
756
|
async def build_gradio_interface(
|
|
708
|
-
self, model_uid: str,
|
|
757
|
+
self, model_uid: str, request: Request
|
|
709
758
|
) -> JSONResponse:
|
|
710
759
|
"""
|
|
711
760
|
Separate build_interface with launch_model
|
|
712
761
|
build_interface requires RESTful Client for API calls
|
|
713
762
|
but calling API in async function does not return
|
|
714
763
|
"""
|
|
764
|
+
payload = await request.json()
|
|
765
|
+
body = BuildGradioInterfaceRequest.parse_obj(payload)
|
|
715
766
|
assert self._app is not None
|
|
716
767
|
assert body.model_type == "LLM"
|
|
717
768
|
|
|
@@ -781,9 +832,8 @@ class RESTfulAPI:
|
|
|
781
832
|
async def get_address(self) -> JSONResponse:
|
|
782
833
|
return JSONResponse(content=self._supervisor_address)
|
|
783
834
|
|
|
784
|
-
async def create_completion(
|
|
785
|
-
|
|
786
|
-
) -> Response:
|
|
835
|
+
async def create_completion(self, request: Request) -> Response:
|
|
836
|
+
body = CreateCompletionRequest.parse_obj(await request.json())
|
|
787
837
|
exclude = {
|
|
788
838
|
"prompt",
|
|
789
839
|
"model",
|
|
@@ -843,8 +893,9 @@ class RESTfulAPI:
|
|
|
843
893
|
self.handle_request_limit_error(e)
|
|
844
894
|
raise HTTPException(status_code=500, detail=str(e))
|
|
845
895
|
|
|
846
|
-
async def create_embedding(self, request:
|
|
847
|
-
|
|
896
|
+
async def create_embedding(self, request: Request) -> Response:
|
|
897
|
+
body = CreateEmbeddingRequest.parse_obj(await request.json())
|
|
898
|
+
model_uid = body.model
|
|
848
899
|
|
|
849
900
|
try:
|
|
850
901
|
model = await (await self._get_supervisor_ref()).get_model(model_uid)
|
|
@@ -858,7 +909,7 @@ class RESTfulAPI:
|
|
|
858
909
|
raise HTTPException(status_code=500, detail=str(e))
|
|
859
910
|
|
|
860
911
|
try:
|
|
861
|
-
embedding = await model.create_embedding(
|
|
912
|
+
embedding = await model.create_embedding(body.input)
|
|
862
913
|
return Response(embedding, media_type="application/json")
|
|
863
914
|
except RuntimeError as re:
|
|
864
915
|
logger.error(re, exc_info=True)
|
|
@@ -870,8 +921,9 @@ class RESTfulAPI:
|
|
|
870
921
|
await self._report_error_event(model_uid, str(e))
|
|
871
922
|
raise HTTPException(status_code=500, detail=str(e))
|
|
872
923
|
|
|
873
|
-
async def rerank(self, request:
|
|
874
|
-
|
|
924
|
+
async def rerank(self, request: Request) -> Response:
|
|
925
|
+
body = RerankRequest.parse_obj(await request.json())
|
|
926
|
+
model_uid = body.model
|
|
875
927
|
try:
|
|
876
928
|
model = await (await self._get_supervisor_ref()).get_model(model_uid)
|
|
877
929
|
except ValueError as ve:
|
|
@@ -885,11 +937,11 @@ class RESTfulAPI:
|
|
|
885
937
|
|
|
886
938
|
try:
|
|
887
939
|
scores = await model.rerank(
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
top_n=
|
|
891
|
-
max_chunks_per_doc=
|
|
892
|
-
return_documents=
|
|
940
|
+
body.documents,
|
|
941
|
+
body.query,
|
|
942
|
+
top_n=body.top_n,
|
|
943
|
+
max_chunks_per_doc=body.max_chunks_per_doc,
|
|
944
|
+
return_documents=body.return_documents,
|
|
893
945
|
)
|
|
894
946
|
return Response(scores, media_type="application/json")
|
|
895
947
|
except RuntimeError as re:
|
|
@@ -990,8 +1042,9 @@ class RESTfulAPI:
|
|
|
990
1042
|
await self._report_error_event(model_uid, str(e))
|
|
991
1043
|
raise HTTPException(status_code=500, detail=str(e))
|
|
992
1044
|
|
|
993
|
-
async def create_images(self, request:
|
|
994
|
-
|
|
1045
|
+
async def create_images(self, request: Request) -> Response:
|
|
1046
|
+
body = TextToImageRequest.parse_obj(await request.json())
|
|
1047
|
+
model_uid = body.model
|
|
995
1048
|
try:
|
|
996
1049
|
model = await (await self._get_supervisor_ref()).get_model(model_uid)
|
|
997
1050
|
except ValueError as ve:
|
|
@@ -1004,12 +1057,12 @@ class RESTfulAPI:
|
|
|
1004
1057
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1005
1058
|
|
|
1006
1059
|
try:
|
|
1007
|
-
kwargs = json.loads(
|
|
1060
|
+
kwargs = json.loads(body.kwargs) if body.kwargs else {}
|
|
1008
1061
|
image_list = await model.text_to_image(
|
|
1009
|
-
prompt=
|
|
1010
|
-
n=
|
|
1011
|
-
size=
|
|
1012
|
-
response_format=
|
|
1062
|
+
prompt=body.prompt,
|
|
1063
|
+
n=body.n,
|
|
1064
|
+
size=body.size,
|
|
1065
|
+
response_format=body.response_format,
|
|
1013
1066
|
**kwargs,
|
|
1014
1067
|
)
|
|
1015
1068
|
return Response(content=image_list, media_type="application/json")
|
|
@@ -1070,11 +1123,8 @@ class RESTfulAPI:
|
|
|
1070
1123
|
await self._report_error_event(model_uid, str(e))
|
|
1071
1124
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1072
1125
|
|
|
1073
|
-
async def create_chat_completion(
|
|
1074
|
-
|
|
1075
|
-
request: Request,
|
|
1076
|
-
body: CreateChatCompletion,
|
|
1077
|
-
) -> Response:
|
|
1126
|
+
async def create_chat_completion(self, request: Request) -> Response:
|
|
1127
|
+
body = CreateChatCompletion.parse_obj(await request.json())
|
|
1078
1128
|
exclude = {
|
|
1079
1129
|
"prompt",
|
|
1080
1130
|
"model",
|
|
@@ -1092,10 +1142,12 @@ class RESTfulAPI:
|
|
|
1092
1142
|
if body.logit_bias is not None:
|
|
1093
1143
|
raise HTTPException(status_code=501, detail="Not implemented")
|
|
1094
1144
|
|
|
1145
|
+
messages = body.messages and list(body.messages) or None
|
|
1146
|
+
|
|
1095
1147
|
if (
|
|
1096
|
-
not
|
|
1097
|
-
or
|
|
1098
|
-
or not
|
|
1148
|
+
not messages
|
|
1149
|
+
or messages[-1].get("role") not in ["user", "system", "tool"]
|
|
1150
|
+
or not messages[-1].get("content")
|
|
1099
1151
|
):
|
|
1100
1152
|
raise HTTPException(
|
|
1101
1153
|
status_code=400, detail="Invalid input. Please specify the prompt."
|
|
@@ -1103,7 +1155,7 @@ class RESTfulAPI:
|
|
|
1103
1155
|
|
|
1104
1156
|
system_messages = []
|
|
1105
1157
|
non_system_messages = []
|
|
1106
|
-
for msg in
|
|
1158
|
+
for msg in messages:
|
|
1107
1159
|
assert (
|
|
1108
1160
|
msg.get("content") != SPECIAL_TOOL_PROMPT
|
|
1109
1161
|
), f"Invalid message content {SPECIAL_TOOL_PROMPT}"
|
|
@@ -1116,13 +1168,13 @@ class RESTfulAPI:
|
|
|
1116
1168
|
raise HTTPException(
|
|
1117
1169
|
status_code=400, detail="Multiple system messages are not supported."
|
|
1118
1170
|
)
|
|
1119
|
-
if len(system_messages) == 1 and
|
|
1171
|
+
if len(system_messages) == 1 and messages[0]["role"] != "system":
|
|
1120
1172
|
raise HTTPException(
|
|
1121
1173
|
status_code=400, detail="System message should be the first one."
|
|
1122
1174
|
)
|
|
1123
1175
|
assert non_system_messages
|
|
1124
1176
|
|
|
1125
|
-
has_tool_message =
|
|
1177
|
+
has_tool_message = messages[-1].get("role") == "tool"
|
|
1126
1178
|
if has_tool_message:
|
|
1127
1179
|
prompt = SPECIAL_TOOL_PROMPT
|
|
1128
1180
|
system_prompt = system_messages[0]["content"] if system_messages else None
|
|
@@ -1157,7 +1209,12 @@ class RESTfulAPI:
|
|
|
1157
1209
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1158
1210
|
|
|
1159
1211
|
model_family = desc.get("model_family", "")
|
|
1160
|
-
function_call_models = [
|
|
1212
|
+
function_call_models = [
|
|
1213
|
+
"chatglm3",
|
|
1214
|
+
"gorilla-openfunctions-v1",
|
|
1215
|
+
"qwen-chat",
|
|
1216
|
+
"qwen1.5-chat",
|
|
1217
|
+
]
|
|
1161
1218
|
|
|
1162
1219
|
is_qwen = desc.get("model_format") == "ggmlv3" and "qwen-chat" == model_family
|
|
1163
1220
|
|
|
@@ -1219,11 +1276,10 @@ class RESTfulAPI:
|
|
|
1219
1276
|
self.handle_request_limit_error(e)
|
|
1220
1277
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1221
1278
|
|
|
1222
|
-
async def register_model(
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
persist = request.persist
|
|
1279
|
+
async def register_model(self, model_type: str, request: Request) -> JSONResponse:
|
|
1280
|
+
body = RegisterModelRequest.parse_obj(await request.json())
|
|
1281
|
+
model = body.model
|
|
1282
|
+
persist = body.persist
|
|
1227
1283
|
|
|
1228
1284
|
try:
|
|
1229
1285
|
await (await self._get_supervisor_ref()).register_model(
|
|
@@ -1292,9 +1348,21 @@ class RESTfulAPI:
|
|
|
1292
1348
|
logger.error(e, exc_info=True)
|
|
1293
1349
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1294
1350
|
|
|
1295
|
-
async def get_cluster_device_info(
|
|
1351
|
+
async def get_cluster_device_info(
|
|
1352
|
+
self, detailed: bool = Query(False)
|
|
1353
|
+
) -> JSONResponse:
|
|
1354
|
+
try:
|
|
1355
|
+
data = await (await self._get_supervisor_ref()).get_cluster_device_info(
|
|
1356
|
+
detailed=detailed
|
|
1357
|
+
)
|
|
1358
|
+
return JSONResponse(content=data)
|
|
1359
|
+
except Exception as e:
|
|
1360
|
+
logger.error(e, exc_info=True)
|
|
1361
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
1362
|
+
|
|
1363
|
+
async def get_cluster_version(self) -> JSONResponse:
|
|
1296
1364
|
try:
|
|
1297
|
-
data =
|
|
1365
|
+
data = get_versions()
|
|
1298
1366
|
return JSONResponse(content=data)
|
|
1299
1367
|
except Exception as e:
|
|
1300
1368
|
logger.error(e, exc_info=True)
|