MeUtils 2025.6.18.16.30.56__py3-none-any.whl → 2025.6.20.18.7.13__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.
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/METADATA +262 -262
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/RECORD +29 -25
- examples/_openaisdk/openai_doubao.py +7 -7
- examples/_openaisdk/openai_modelscope.py +1 -0
- examples/_openaisdk/openai_ppinfra.py +7 -2
- meutils/apis/hailuoai/videos.py +9 -1
- meutils/apis/oneapi/channel.py +57 -6
- meutils/apis/ppio/__init__.py +11 -0
- meutils/apis/ppio/videos.py +142 -0
- meutils/apis/proxy/kdlapi.py +18 -14
- meutils/apis/transparent_transmission/__init__.py +10 -0
- meutils/apis/transparent_transmission/tasks.py +28 -0
- meutils/apis/utils.py +4 -4
- meutils/apis/videos/veo.py +68 -0
- meutils/apis/volcengine_apis/videos.py +5 -2
- meutils/config_utils/lark_utils/common.py +19 -3
- meutils/data/VERSION +1 -1
- meutils/llm/check_utils.py +2 -1
- meutils/llm/models_mapping.py +76 -0
- meutils/schemas/hailuo_types.py +13 -4
- meutils/schemas/oneapi/_types.py +19 -7
- meutils/schemas/oneapi/common.py +13 -6
- meutils/serving/fastapi/dependencies/auth.py +2 -1
- meutils/str_utils/__init__.py +21 -0
- meutils/str_utils/regular_expression.py +8 -1
- examples/pyinstxtractor.py +0 -340
- meutils/apis/kuaidi.py +0 -32
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/LICENSE +0 -0
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/WHEEL +0 -0
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.6.18.16.30.56.dist-info → MeUtils-2025.6.20.18.7.13.dist-info}/top_level.txt +0 -0
@@ -37,7 +37,6 @@ examples/parse_cmd.py,sha256=VgCWQmajhkZ_x7AIYTxfoHJZHJy7tWpL1ODf3ls0ClQ,1988
|
|
37
37
|
examples/parse_cmd_re.py,sha256=0xgl8k8tdIZcH8stbvyT6Fjdi3HjO5Aq6fOp9iCEv1s,1346
|
38
38
|
examples/partialmethod_demo.py,sha256=otLq0-3C2q24eKWPTlDTDMXnJgIxLm7wqzTS3E4tjjU,598
|
39
39
|
examples/pydantic_demo.py,sha256=3i2RxkqDVtS4CVEmfYDKzXera2NqgFPt7HmGZWzevhI,742
|
40
|
-
examples/pyinstxtractor.py,sha256=zLNoIMtTFJuDs_RCnb47BofuvoMxoPXm0KNvHiNZXmY,12667
|
41
40
|
examples/qps.py,sha256=2LUlb-3jyEPXc-9H14rEnz1K2H539lLL6Yh7APqp8yI,1045
|
42
41
|
examples/redis队列.py,sha256=A1djOzk_k_iEN-o5h_i3xdVJSCGnuDcokO_ExlC3nMI,507
|
43
42
|
examples/redis队列_add.py,sha256=-SKdAaBHfa4QvNjqI50ExBwvf7OktjETtvjC9Xjonr8,647
|
@@ -109,7 +108,7 @@ examples/_openaisdk/openai_chatfire_usa.py,sha256=kS7QlZYTUAJ0lfgTnh3wK-NIW9lfC8
|
|
109
108
|
examples/_openaisdk/openai_dashscope.py,sha256=m9SjQpaNgYwr4Qd3XusWbJBGp5ZTtpuB40QopejxPKQ,1029
|
110
109
|
examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
|
111
110
|
examples/_openaisdk/openai_deepseek.py,sha256=0IbHh2F6eVDs-i8gP8x8wj6s9R6CzOGN7QrCp1EuB5k,2086
|
112
|
-
examples/_openaisdk/openai_doubao.py,sha256=
|
111
|
+
examples/_openaisdk/openai_doubao.py,sha256=5L7NaDyedxEhvUTWsScX8edL3_WErNxxUIAW_FuLDHs,1754
|
113
112
|
examples/_openaisdk/openai_embeddings.py,sha256=IRMAWSQxgnWiOON5YXb9AFraZgI-5tsplOXQrw6Lgx4,1232
|
114
113
|
examples/_openaisdk/openai_ep.py,sha256=cAaeyC8Lstk1MB36c4h7X9n7EnEnY7rr2Tugo_diT3M,726
|
115
114
|
examples/_openaisdk/openai_ffire.py,sha256=R9fEznBvsz3KtPiwKXC3qol7lZ46T_7jzn7wGkXM2to,720
|
@@ -125,11 +124,11 @@ examples/_openaisdk/openai_kimi.py,sha256=Y0ohLt2GVBrUzR286mDTJL7kPdLWVKjw36XSBE
|
|
125
124
|
examples/_openaisdk/openai_lingyi.py,sha256=l2GcNxhwfLv7MfMF-cdRWGGvX-dRaZyb8IRlXLPACMw,1834
|
126
125
|
examples/_openaisdk/openai_local.py,sha256=w-MedYgmRiO5eoMfbTQsB5J8ILFPfla0m6vP7qbQAxY,1889
|
127
126
|
examples/_openaisdk/openai_luchentech.py,sha256=Jy0JxpL1u3pXcmslViPvrbwSysVBV-Dz8wSKqv6QtxY,1960
|
128
|
-
examples/_openaisdk/openai_modelscope.py,sha256=
|
127
|
+
examples/_openaisdk/openai_modelscope.py,sha256=PCuhZi3G1_-7Dyad9a0BZQU-NKe-8EecveQ3EVJA-GE,3424
|
129
128
|
examples/_openaisdk/openai_moderations.py,sha256=WoIyXDEn4dfVPwqFc54HSz0-7wLPu7pd4ZisZcyLOWM,1369
|
130
129
|
examples/_openaisdk/openai_moon.py,sha256=7-gILGwZArZ1VHVb-jtIXEqWJMv65SaMmBSKJ90fx_w,1889
|
131
130
|
examples/_openaisdk/openai_oi.py,sha256=8KJ62QgpAZdGWAoYN6AC9M9TrD8JQf7ZO_NAgXZywTo,1414
|
132
|
-
examples/_openaisdk/openai_ppinfra.py,sha256=
|
131
|
+
examples/_openaisdk/openai_ppinfra.py,sha256=qLqr1YtVstMBUYzjf4rCXMv0ccE4y1KqVCn61525EsY,1756
|
133
132
|
examples/_openaisdk/openai_ppu.py,sha256=cpr__WVlOrm2w1WjRV7v0rux4oiJkaqBnUZImR6MaEs,1010
|
134
133
|
examples/_openaisdk/openai_qwen.py,sha256=KurTjBr_bN0aFZcMnWeGtEu0bbagYvOfhdYe-popsKE,2268
|
135
134
|
examples/_openaisdk/openai_search.py,sha256=HKRTU6y9j_nUfZgrJt2eZ84d7TVT39WN-dcA_BFkVb4,937
|
@@ -338,13 +337,12 @@ meutils/apis/ali_apis.py,sha256=da69FKwBiEEDIoxmWP4M09rpuOjggwt2NWepbX3H7bs,1905
|
|
338
337
|
meutils/apis/common.py,sha256=XALPn5LyqVhIWGa_utq6mDSiU6Pbl6xnffqHUekiLzw,4036
|
339
338
|
meutils/apis/firecrawl.py,sha256=Kibq6JevgM5o__x1UTjtBhYXmvKlYxEhzMi0Zz0fNeE,1152
|
340
339
|
meutils/apis/jina.py,sha256=hWSPrQIAlsKk1gHz_BAp5MFKu5XI84bUUCUYn9Sg7dI,4927
|
341
|
-
meutils/apis/kuaidi.py,sha256=4KrtOkbGlsLpyvbY80UMSo03iFqFiBHnE0CiqAWWQ4Y,998
|
342
340
|
meutils/apis/llm_qa.py,sha256=XM1VMkOTb4xKzgVk56dPC1e8lg7SbnfobBVgfLXiX9A,1207
|
343
341
|
meutils/apis/niutrans.py,sha256=tWUyGH5SReLBQyVuB7kZvoFB35dsN6gXN-anbiHc_B4,2298
|
344
342
|
meutils/apis/search_music.py,sha256=HBLtdterztrccnLAPZrWBlrYSx4WCRflCqz-V30fOA8,972
|
345
343
|
meutils/apis/textin.py,sha256=3L23RqYiR7bl6rymQ2YugDO-K1ItPX2sd0wyCrLST90,4897
|
346
344
|
meutils/apis/ts.py,sha256=Q13EOS9Q-Y2-KwOG_cFMVmGj9RUmDtxk5A3E27dxbN0,1511
|
347
|
-
meutils/apis/utils.py,sha256=
|
345
|
+
meutils/apis/utils.py,sha256=YOGDE4GnU4RNVaS-KuCzw7HnSKM_zzZkyuZhvi3BVx0,2064
|
348
346
|
meutils/apis/web_search.py,sha256=6gS3leIB2iyeLtqhB0IbpL_mKzDgArRTqnR7odTWT3E,1035
|
349
347
|
meutils/apis/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
350
348
|
meutils/apis/aitools/__init__.py,sha256=USdDfW2JZyUVY8ko54Dwpl801O766bvO_3F1lM4b8Gc,271
|
@@ -398,7 +396,7 @@ meutils/apis/hailuoai/hasha_new.py,sha256=1sD3fxmxYrEufmPaJZGAkYJoHKO85hfLXemnY-
|
|
398
396
|
meutils/apis/hailuoai/images.py,sha256=2SLRKnzz2jdHHVwDzLdJetXZpvn9Mkzjrr_1gJPTIFI,19848
|
399
397
|
meutils/apis/hailuoai/music.py,sha256=S_oi-ZDbocTfbRgREdXtGx50xzUc1PCZGuxmr917E7M,265
|
400
398
|
meutils/apis/hailuoai/upload.py,sha256=22S6W6hGQhUquVKqh7QCkXb6KHDl3iMKKi6Z0AJdFEI,6501
|
401
|
-
meutils/apis/hailuoai/videos.py,sha256
|
399
|
+
meutils/apis/hailuoai/videos.py,sha256=-uovg12L-3yVebNblzyjlRDTelekBUmxL-CUx4LKUWs,23987
|
402
400
|
meutils/apis/hailuoai/yy.py,sha256=uBwtpMhCE4lQyDqEsua4eupGAU0A2N0UJN20pE1tOUo,8962
|
403
401
|
meutils/apis/hf/__init__.py,sha256=ZZoRl8yNYekoMhE__67XXBKNSYJaLgjtaa0netjJKUU,271
|
404
402
|
meutils/apis/hf/got_ocr.py,sha256=pZURFpryDh_Ak6PNiARztOzYgkjVrfScJ5-0XzMBrzI,1776
|
@@ -472,7 +470,7 @@ meutils/apis/monica/llm.py,sha256=gYyBPOTvmoNFaa1KmW3OlSsRKeN7C97EyPUa264nJ08,26
|
|
472
470
|
meutils/apis/napkin/__init__.py,sha256=EWwpRJEbN46d6Dk9PHAZvsYmqD_EOK0jjKQL1kYtcKs,271
|
473
471
|
meutils/apis/napkin/icons.py,sha256=_L8EaSeQ6ChT5w7q3jnj_AcRhKvNiBg3-qUKo9JQ12o,2217
|
474
472
|
meutils/apis/oneapi/__init__.py,sha256=wg_kqNkFqOkP70vnOHvAeKREps57Rqliu5yKC0gsgLk,284
|
475
|
-
meutils/apis/oneapi/channel.py,sha256=
|
473
|
+
meutils/apis/oneapi/channel.py,sha256=ri682XvJUznZT2AeH7GTZOUI7wM2rt3mHNMXVr1s8Fs,13867
|
476
474
|
meutils/apis/oneapi/common.py,sha256=AIs8ro-1qui3FG42msBY6dL_zt9QJ0jS63qtp-XTlY4,3617
|
477
475
|
meutils/apis/oneapi/demo.py,sha256=i9iBK2OftTvOZdPcCo2nxu8zs0fSKIZbzD8DRKQNla8,1851
|
478
476
|
meutils/apis/oneapi/log.py,sha256=gNFFXXcG2Xp5ttO7Q7qR6n6GQUheuU8SOCjJPXZudLY,1447
|
@@ -483,10 +481,12 @@ meutils/apis/oneapi/user.py,sha256=YD-NZnDmlkDwwIz96NtLUD-ixAaXcbk184OVq8sd1lA,4
|
|
483
481
|
meutils/apis/oneapi/utils.py,sha256=kuXwRQee3lSgJH7ffGP3Is4BhaUVylKJviG8FVN0F-I,1660
|
484
482
|
meutils/apis/pixverse/__init__.py,sha256=WiboEUfJ_3Hs2WI3OymEspx8_ZSTgMglxTJd97Qk7qo,271
|
485
483
|
meutils/apis/pixverse/pixverse.py,sha256=dvnyYVUXCEY_cLnmX9lvq9TesvplCMCuJmmP7ShchQk,5534
|
484
|
+
meutils/apis/ppio/__init__.py,sha256=ZCz9kagqxmWkpvDqDS8pkjGYVPpuBonPLfkTF9GuBgI,271
|
485
|
+
meutils/apis/ppio/videos.py,sha256=liteWv6dZm_-JcOfBT84zTFg17XEpOaie-hRLIMlF-M,4574
|
486
486
|
meutils/apis/proxy/__init__.py,sha256=by7_6GT3xeDjAWLLqbw8uvGaZ3RdprEW-zJ2DFLOdwA,271
|
487
487
|
meutils/apis/proxy/demo.py,sha256=-huvtmltbKXa6cS77k61ts-Kjd5ccSAgXzNrotIvIKA,1642
|
488
488
|
meutils/apis/proxy/ips.py,sha256=3McLniROteSBqAtcMH8xKbUBfhVc4ZyGuRwMvgEryKg,5023
|
489
|
-
meutils/apis/proxy/kdlapi.py,sha256=
|
489
|
+
meutils/apis/proxy/kdlapi.py,sha256=VsLgOmgZJme1Xy7tMX1GW-LF5_PCAh3Jf6nOKi7DvfU,1907
|
490
490
|
meutils/apis/remini/__init__.py,sha256=8TbAnbI_bDfH8g0Y9EHXHBum7C0rZt9MzgAAz_MbAeI,271
|
491
491
|
meutils/apis/remini/remini.py,sha256=bJjvtqrCNlAu7No4gYGjoWAM0ch6dCsofYSy2jPZrXg,4239
|
492
492
|
meutils/apis/replicateai/__init__.py,sha256=PK7e7-xhn5aj5WOyGHLzpsHQvpeM5uTOiMylvj40ZmU,272
|
@@ -530,6 +530,8 @@ meutils/apis/together/__init__.py,sha256=OCJxyaTTrYFjcaM-ck2ZoQrB30LAWWjnTVT__ij
|
|
530
530
|
meutils/apis/together/images.py,sha256=rlVb7SyWf4cFQxukgq0Pw6QiF_6DHzCDvyfRzWybfpM,2662
|
531
531
|
meutils/apis/translator/__init__.py,sha256=Oa3pNJ160X0SJrntABBnt-Pxh2rM38KvT20KInt3pRM,244
|
532
532
|
meutils/apis/translator/deeplx.py,sha256=riTHXuuBtN0TUnr81GVJs-VPDo8vaDhxymYqsXR4fdM,2361
|
533
|
+
meutils/apis/transparent_transmission/__init__.py,sha256=u1WQdey1OhdsbK9_IMPWNmtRErUuWgetlsiqBJkscdE,263
|
534
|
+
meutils/apis/transparent_transmission/tasks.py,sha256=tSgjdESnLVn2gRuxDy1ltMMTebVUAvJeLIXFToI7AUU,631
|
533
535
|
meutils/apis/tripo3d/__init__.py,sha256=KkEX1hWjdWSfwbw_iNuon2G9U1LbKKlKWsKbnyWYO5I,272
|
534
536
|
meutils/apis/tripo3d/images.py,sha256=xThp3AXVBc6Qb7pcyqCsQWx-4gwTp9YkEA0GzFAv3yE,4943
|
535
537
|
meutils/apis/uptime_kuma/__init__.py,sha256=w_fYxFgQDOXOfCPe0JMsgSl6zrGuYx9w4thySfAsbAE,272
|
@@ -537,6 +539,7 @@ meutils/apis/uptime_kuma/common.py,sha256=ZJFSEeoxD_Eb5eFL9K2xxajVJgTnTwgm7rm4fc
|
|
537
539
|
meutils/apis/uptime_kuma/国产分组.py,sha256=OIiUUFfjWEEJHg5fr8Vf5xSBWkbXboQ4f3jUiaTtQSI,1681
|
538
540
|
meutils/apis/videos/__init__.py,sha256=OCykr_XRIOH18Xh5hfBq5yMxbk8e9Myk4KuAtrtgAWw,272
|
539
541
|
meutils/apis/videos/sora.py,sha256=G3wGlvTYl4YfG20L2HXPhmhZ4HwrlIFSU-KYM-TdALg,295
|
542
|
+
meutils/apis/videos/veo.py,sha256=DAjDVPCOq3uXADZmD_X0os8V8YNOiLIgmZbqp7NWN_g,1824
|
540
543
|
meutils/apis/vidu/__init__.py,sha256=8nQN-RiZGJlZaZGVFbtHgK57_Ml5g_vFCiOImWwBm0I,242
|
541
544
|
meutils/apis/vidu/vidu_video.py,sha256=rkt18PbQ26r_q82WT2ptE0eL2A0rX6tDsTPjmG-eQ9c,18266
|
542
545
|
meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
|
@@ -545,7 +548,7 @@ meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81o
|
|
545
548
|
meutils/apis/volcengine_apis/__init__.py,sha256=gtu5ZNCc3up8bzgrCi10uwhsC04HpuCEEPXR_iVCNJE,244
|
546
549
|
meutils/apis/volcengine_apis/images.py,sha256=F9LXXptesnASB_Al7rkEshb2S5r3PixZd8w0mif5468,5463
|
547
550
|
meutils/apis/volcengine_apis/tasks.py,sha256=da2wYs2bqjYte_P2aFbSdKkLBaghuAj6vVKIlgdMg5A,4495
|
548
|
-
meutils/apis/volcengine_apis/videos.py,sha256=
|
551
|
+
meutils/apis/volcengine_apis/videos.py,sha256=HYocA1TTflYt47aLpB7v9UZ3GNhvcomEdi_k9v4f_vQ,7065
|
549
552
|
meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
|
550
553
|
meutils/async_task/celery_config.py,sha256=BX1h3jY34aO6UmUFakdBUwOdsEiOxCGuUtYDUKFtafc,3461
|
551
554
|
meutils/async_task/common.py,sha256=ZJ4e0CsEJf1ppPmGSwPCwhZBAkUL5xsi_t1ny-bJuko,845
|
@@ -589,12 +592,12 @@ meutils/cmds/subprocess_demo.py,sha256=oTeTIx8k6XwtOT6hZpmy9XNcRErzilqWcdoxcrVcH
|
|
589
592
|
meutils/config_utils/__init__.py,sha256=GhgsStfGJDC8F_YgC6X5Jnj9HkgXJXxeYiJWTAkWKTo,271
|
590
593
|
meutils/config_utils/manager.py,sha256=du-8e9Zdgnrn9e0b4GPR6FGtuQY7DLWNJqgkoU0TZ48,3147
|
591
594
|
meutils/config_utils/lark_utils/__init__.py,sha256=Gf-5Y8uZiqY9jdbfiIboL92MQjOTOo0ZZ245PGxCbaY,297
|
592
|
-
meutils/config_utils/lark_utils/common.py,sha256=
|
595
|
+
meutils/config_utils/lark_utils/common.py,sha256=W2hRSn_hyXdxpUrs3tkTQZbItLdO0XSqqXD2-yOvhIA,15190
|
593
596
|
meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfHOno5NxNAio,293
|
594
597
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
595
598
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
596
599
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
597
|
-
meutils/data/VERSION,sha256=
|
600
|
+
meutils/data/VERSION,sha256=EFj2RFf64nUw3Ya3XD-ZQiAy6Vj7O2LfbwDL80wwZOY,19
|
598
601
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
599
602
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
600
603
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -676,11 +679,12 @@ meutils/jwt_utils/__init__.py,sha256=zs4pIDk4sQ82o7meMwt64_tv2WBMRTaXX9doe0ilvvs
|
|
676
679
|
meutils/jwt_utils/common.py,sha256=u2PPQJ9S-83y8f3Sb5L2OCRP7o-xV56EAmlzMZ8Je0Q,2352
|
677
680
|
meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
|
678
681
|
meutils/llm/check_api.py,sha256=Cu60Rvp7zLmmazuLXxpK4z-FCab4NrO4nH5LzfYjjoM,3591
|
679
|
-
meutils/llm/check_utils.py,sha256=
|
682
|
+
meutils/llm/check_utils.py,sha256=9ioKzj2NIZFMJiIS0zkUb_0eGNfKZf6ZXpyPt_6VTIo,8680
|
680
683
|
meutils/llm/clients.py,sha256=qZa9WC85Ah4tdEd-EI_P_038mnJLq_z-smaJdwJp-EM,2956
|
681
684
|
meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
|
682
685
|
meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
683
686
|
meutils/llm/models.py,sha256=dDdU_WzcQGdgaFOYtMJpDYmt5uKFKEz2pc0guqNVkSk,3175
|
687
|
+
meutils/llm/models_mapping.py,sha256=fWbIs7_R65nCicfgvwA1zw7d7BjnEDBZhoNA1TIxeIU,5523
|
684
688
|
meutils/llm/utils.py,sha256=GuM5uu08-iIeE7g6GeJdIz62_5CiLShmA10dIKFGLPI,4823
|
685
689
|
meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
|
686
690
|
meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
|
@@ -824,7 +828,7 @@ meutils/schemas/dreamfaceapp_types.py,sha256=Wm0HqvuD7suR9zbyI3xslb8gbqA4KvrIRXC
|
|
824
828
|
meutils/schemas/embedding.py,sha256=rJ-XQ6X8VmACOi53BOJtkjROrNcf1ZUhzxKkClM9J0M,867
|
825
829
|
meutils/schemas/fal_types.py,sha256=a6glb5xlo0MEuKZrWtT7B8kLjwnLEhIVPbpnDWpBsJc,360
|
826
830
|
meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU,270
|
827
|
-
meutils/schemas/hailuo_types.py,sha256=
|
831
|
+
meutils/schemas/hailuo_types.py,sha256=3nx2jgDmi2dpwEfJ6xRiZQ-9nhOOXQgTz1yyLz5d-ik,7722
|
828
832
|
meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
|
829
833
|
meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
|
830
834
|
meutils/schemas/image_types.py,sha256=9EIpJCSzGKGQG3r5J3JBxgduwmTuuw5VAsVJ-Ab1sdo,16433
|
@@ -862,8 +866,8 @@ meutils/schemas/yuanbao_types.py,sha256=bI_CF9ybaJ1ux8NgP5gEi33k_K_vHmlyD09fxzhY
|
|
862
866
|
meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
|
863
867
|
meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
|
864
868
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
865
|
-
meutils/schemas/oneapi/_types.py,sha256=
|
866
|
-
meutils/schemas/oneapi/common.py,sha256=
|
869
|
+
meutils/schemas/oneapi/_types.py,sha256=tht6Gn4TOrMwZs211_r_iWUUhTghJy76A4LHHgBR7c8,3400
|
870
|
+
meutils/schemas/oneapi/common.py,sha256=wwAYA9FqMtJu7SlgPZx1mvE1HZuvbb7Wc9U0vuyVlOM,42541
|
867
871
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
868
872
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
869
873
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -888,7 +892,7 @@ meutils/serving/fastapi/utils.py,sha256=H5lQSU7-IfJ2w9FWbaJ34LCbQSaNTFSU7z1pG5wZ
|
|
888
892
|
meutils/serving/fastapi/__demo/__init__.py,sha256=TxXjqy2ZxAkadPxqN92Xq3ixCUYkQ-4X6UxsReRpHhc,271
|
889
893
|
meutils/serving/fastapi/__demo/异步任务.py,sha256=60_ruA4ljlTLIP5zxcejmm9WJ0SDuqpsO49SZK9vA_s,1444
|
890
894
|
meutils/serving/fastapi/dependencies/__init__.py,sha256=TQcxvWqZdA2jZZX84NtAij-bhS7ihcMLx1-xsbSpV4g,384
|
891
|
-
meutils/serving/fastapi/dependencies/auth.py,sha256=
|
895
|
+
meutils/serving/fastapi/dependencies/auth.py,sha256=o6U-PB5laYhPGHWm_-AUVER2hV-K783K5DVfbfFWPm4,2538
|
892
896
|
meutils/serving/fastapi/dependencies/headers.py,sha256=ddifDCJyELqfPwuUX12x-lH0KNylu2iidc7Mupcvl6k,922
|
893
897
|
meutils/serving/fastapi/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
894
898
|
meutils/serving/fastapi/exceptions/http_error.py,sha256=-cBBWNJH3qp1GMSaa9AlojJ18lBLFEk0KHoGUnmV3u4,2601
|
@@ -916,9 +920,9 @@ meutils/settings/__init__.py,sha256=jZc0NXPA9zIMcTAYypSQDxJqvXakyJ0ztK9ZMND2Q7U,
|
|
916
920
|
meutils/settings/base.py,sha256=kb3QVS2eUFWyGgvegtSK4cqJFF76J1JctTSzCVqc1Mo,264
|
917
921
|
meutils/settings/demo.py,sha256=Ht3t6LREQsKa5W2owNrOZNAoZfS-zItIFNwGhhPj-4k,484
|
918
922
|
meutils/str_utils/Translator.py,sha256=tfvNQIeVCqmX9yW6jobeibDHG6X-XecSSAx9kJIFFyw,1258
|
919
|
-
meutils/str_utils/__init__.py,sha256=
|
923
|
+
meutils/str_utils/__init__.py,sha256=M7lv7K22ixxJkwUEWLzfpcUt3bfJUpaEONSnvq9nZ2g,10906
|
920
924
|
meutils/str_utils/json_utils.py,sha256=10QhpmzAWI0hERdQb5JDeNqphI5QWFTjeZJhiYkuI4c,2827
|
921
|
-
meutils/str_utils/regular_expression.py,sha256=
|
925
|
+
meutils/str_utils/regular_expression.py,sha256=sgD0Tgn7IFUT6hAQ4IJxB-YJpJL5df8LywvgBZQF88c,6393
|
922
926
|
meutils/str_utils/__translater/__init__.py,sha256=mtDbKL_Qdkeq5VPVO1M4ejf9H8PzKM5h7iepqkBG8N0,277
|
923
927
|
meutils/str_utils/__translater/tencent.py,sha256=1E_56l6-A49Yuz2ZrMKxt-QJfcf0xDYN2X0dg58Dytk,1408
|
924
928
|
meutils/str_utils/__translater/translater.py,sha256=A_9NLVvkjzPd9omIcJGhux21D-gcCxemyrZ7o6uGx_Q,1238
|
@@ -992,9 +996,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
992
996
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
993
997
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
994
998
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
995
|
-
MeUtils-2025.6.18.
|
996
|
-
MeUtils-2025.6.18.
|
997
|
-
MeUtils-2025.6.18.
|
998
|
-
MeUtils-2025.6.18.
|
999
|
-
MeUtils-2025.6.18.
|
1000
|
-
MeUtils-2025.6.18.
|
999
|
+
MeUtils-2025.6.20.18.7.13.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
1000
|
+
MeUtils-2025.6.20.18.7.13.dist-info/METADATA,sha256=7hDv13KWicpRtmzooXWjN_03s2qVNkqnGxyK8v5we3M,32833
|
1001
|
+
MeUtils-2025.6.20.18.7.13.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
1002
|
+
MeUtils-2025.6.20.18.7.13.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
1003
|
+
MeUtils-2025.6.20.18.7.13.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
1004
|
+
MeUtils-2025.6.20.18.7.13.dist-info/RECORD,,
|
@@ -19,8 +19,8 @@ client = OpenAI(
|
|
19
19
|
# api_key="sk-acnBrFLJo3E732FfHN0kf0tcHyjfAiCEomyjKr56AUtPIWso",
|
20
20
|
# api_key="31c64288-e87d-4020-9d24-0ae6f4abaa7a",
|
21
21
|
# base_url="https://ark.cn-beijing.volces.com/api/v3", # /chat/completions
|
22
|
-
base_url="
|
23
|
-
api_key="sk-
|
22
|
+
base_url="https://api.ffire.cc/v1",
|
23
|
+
api_key="sk-5lkoeVerPmupyCnCLi1PNpuhbZ31NreEfUMwoZbdyrPPDqcD"
|
24
24
|
|
25
25
|
# api_key=os.getenv("OPENAI_API_KEY") +'-3587'
|
26
26
|
|
@@ -48,11 +48,11 @@ try:
|
|
48
48
|
stream_options={"include_usage": True},
|
49
49
|
max_tokens=1,
|
50
50
|
|
51
|
-
extra_body={
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
51
|
+
# extra_body={
|
52
|
+
# "thinking": {
|
53
|
+
# "type": "disabled"
|
54
|
+
# }
|
55
|
+
# }
|
56
56
|
)
|
57
57
|
except APIStatusError as e:
|
58
58
|
print(e.status_code)
|
@@ -15,11 +15,16 @@ from openai import OpenAI, APIStatusError
|
|
15
15
|
|
16
16
|
|
17
17
|
client = OpenAI(
|
18
|
-
api_key="
|
18
|
+
api_key="sk_-k7BdwRII1GbBEy-1plcgH8aPRfzzXV56HaCBVe2Zqk",
|
19
19
|
|
20
20
|
base_url="https://api.ppinfra.com/v3/openai"
|
21
21
|
)
|
22
22
|
|
23
|
+
# print(client.models.list().data)
|
24
|
+
models = [m.id for m in client.models.list().data]
|
25
|
+
|
26
|
+
print(','.join(models))
|
27
|
+
|
23
28
|
|
24
29
|
try:
|
25
30
|
completion = client.chat.completions.create(
|
@@ -37,7 +42,7 @@ try:
|
|
37
42
|
temperature=None,
|
38
43
|
# stream=True,
|
39
44
|
max_tokens=10,
|
40
|
-
extra_body={"separate_reasoning": True}
|
45
|
+
# extra_body={"separate_reasoning": True}
|
41
46
|
)
|
42
47
|
except APIStatusError as e:
|
43
48
|
print(e.status_code)
|
meutils/apis/hailuoai/videos.py
CHANGED
@@ -28,6 +28,7 @@ from meutils.llm.check_utils import check_tokens
|
|
28
28
|
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
29
29
|
from meutils.decorators.retry import retrying
|
30
30
|
from meutils.notice.feishu import send_message as _send_message, VIDEOS
|
31
|
+
from meutils.apis.ppio import videos as ppio_videos
|
31
32
|
|
32
33
|
from meutils.apis.hailuoai.yy import get_yy
|
33
34
|
|
@@ -213,6 +214,9 @@ async def get_request_policy(token):
|
|
213
214
|
|
214
215
|
@retrying(predicate=lambda r: r.base_resp.status_code in {1000061, 1500009}) # 限流
|
215
216
|
async def create_task(request: VideoRequest, token: Optional[str] = None):
|
217
|
+
if request.model.lower() == "minimax-hailuo-02": # 走派欧
|
218
|
+
return await ppio_videos.create_task(request, token)
|
219
|
+
|
216
220
|
refresh_token = token or await get_next_token_for_polling(FEISHU_URL, from_redis=True, check_token=check_token)
|
217
221
|
# refresh_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDA0NzA4NzgsInVzZXIiOnsiaWQiOiIzMjg2MDg4ODkzNTA4MTU3NDQiLCJuYW1lIjoiUm9idXN0IEdlcnRydWRlIiwiYXZhdGFyIjoiaHR0cHM6Ly9jZG4uaGFpbHVvYWkudmlkZW8vbW9zcy9wcm9kLzIwMjQtMTItMjgtMTYvdXNlci91c2VyX2F2YXRhci8xNzM1Mzc1OTI0OTkyMTcxMDY3LWF2YXRhcl8zMjg2MDg4ODkzNTA4MTU3NDQiLCJkZXZpY2VJRCI6IjMwMjgzMzc1OTUxMjc2NDQxNyIsImlzQW5vbnltb3VzIjpmYWxzZX19.dLNBSHjqnKutGl3ralS2g8A-RodHjOdos11vdpbkPwc"
|
218
222
|
|
@@ -355,6 +359,9 @@ async def create_task(request: VideoRequest, token: Optional[str] = None):
|
|
355
359
|
|
356
360
|
# 307134660730421250
|
357
361
|
async def get_task(task_id: str, token: str):
|
362
|
+
if token.startswith("sk_"):
|
363
|
+
return await ppio_videos.get_task(task_id)
|
364
|
+
|
358
365
|
BASE_URL = get_base_url(token)
|
359
366
|
|
360
367
|
logger.debug(BASE_URL)
|
@@ -462,6 +469,7 @@ if __name__ == '__main__': # 304752356930580482
|
|
462
469
|
# arun(get_task(task_id="307177115102699528", token=token))
|
463
470
|
|
464
471
|
token = None
|
472
|
+
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTM2ODcxNjksInVzZXIiOnsiaWQiOiIzOTEzNTgxNTc5OTY5MjA4MzUiLCJuYW1lIjoienBiZSB4bnp3IiwiYXZhdGFyIjoiIiwiZGV2aWNlSUQiOiIzMDI4MzM3NTk1MTI3NjQ0MTciLCJpc0Fub255bW91cyI6ZmFsc2V9fQ.v6IcCd74UiMLepoqq_fpSTbABUAxXnb9seyCk9SAOec"
|
465
473
|
# token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDQ3MDMwNzIsInVzZXIiOnsiaWQiOiIzMDI4MzM4Njc3NzE5NDkwNTgiLCJuYW1lIjoibWUgYmV0dGVyIiwiYXZhdGFyIjoiIiwiZGV2aWNlSUQiOiIzMDI4MzM3NTk1MTI3NjQ0MTciLCJpc0Fub255bW91cyI6ZmFsc2V9fQ.Mjb64ZjkKyV9pj-_bXyLczU6kU729VLaKbYj9NmrK-4"
|
466
474
|
# token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDg3Mzg4MTQsInVzZXIiOnsiaWQiOiIyMjkwODQ3NTA2MDEzODgwMzciLCJuYW1lIjoi5bCP6J665bi9ODAzNyIsImF2YXRhciI6Imh0dHBzOi8vY2RuLmhhaWx1b2FpLmNvbS9wcm9kL3VzZXJfYXZhdGFyLzE3MDYyNjc3MTEyODI3NzA4NzItMTczMTk0NTcwNjY4OTY1ODk2b3ZlcnNpemUucG5nIiwiZGV2aWNlSUQiOiIyNDM3MTMyNTI1NDU5ODY1NjIiLCJpc0Fub255bW91cyI6ZmFsc2V9fQ.o0SoZMSTWkXNHxJjt3Ggby5MJWSfd-rnK_I95T_WMP8"
|
467
475
|
# token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTAxMjg4NTIsInVzZXIiOnsiaWQiOiIzNzQwMTM3NzUyNzg4ODY5MTciLCJuYW1lIjoiTmFodWVsIE1vbGluYSIsImF2YXRhciI6IiIsImRldmljZUlEIjoiMzEzMzc0MTIyMjEyMjc4MjczIiwiaXNBbm9ueW1vdXMiOmZhbHNlfX0.uxTtDTcPT07piVA-x3N2ms2VrRN3JwcU99g_HJLwqLE"
|
@@ -471,7 +479,7 @@ if __name__ == '__main__': # 304752356930580482
|
|
471
479
|
|
472
480
|
# prompt="smile", # 307145017365086216
|
473
481
|
prompt="动起来", # 307145017365086216
|
474
|
-
|
482
|
+
first_frame_image="https://oss.ffire.cc/files/kling_watermark.png" # 307173162217783304
|
475
483
|
)
|
476
484
|
|
477
485
|
r = arun(create_task(request, token=token))
|
meutils/apis/oneapi/channel.py
CHANGED
@@ -74,14 +74,63 @@ async def edit_channel(models, token: Optional[str] = None):
|
|
74
74
|
logger.debug(bjson(response.json()))
|
75
75
|
|
76
76
|
|
77
|
+
async def exist_channel(
|
78
|
+
request: ChannelInfo,
|
79
|
+
|
80
|
+
base_url: Optional[str] = None,
|
81
|
+
api_key: Optional[str] = None,
|
82
|
+
):
|
83
|
+
if request.id is None:
|
84
|
+
return False
|
85
|
+
base_url = base_url or "https://api.chatfire.cn"
|
86
|
+
api_key = api_key or os.getenv("CHATFIRE_ONEAPI_TOKEN")
|
87
|
+
|
88
|
+
headers = {
|
89
|
+
'authorization': f'Bearer {api_key}',
|
90
|
+
'new-api-user': '1',
|
91
|
+
'rix-api-user': '1',
|
92
|
+
}
|
93
|
+
async with httpx.AsyncClient(base_url=base_url, headers=headers, timeout=100) as client:
|
94
|
+
response = await client.get("/api/channel/", params={"channel_id": request.id})
|
95
|
+
response.raise_for_status()
|
96
|
+
logger.debug(response.json())
|
97
|
+
|
98
|
+
if items := response.json()['data']['items']:
|
99
|
+
return items[0]
|
100
|
+
else:
|
101
|
+
return False
|
102
|
+
|
103
|
+
|
77
104
|
async def create_or_update_channel(
|
78
105
|
request: ChannelInfo,
|
79
106
|
|
80
107
|
base_url: Optional[str] = None,
|
81
108
|
api_key: Optional[str] = None,
|
82
109
|
):
|
83
|
-
|
84
|
-
|
110
|
+
if request.id and isinstance(request.id, str): # 批量更新
|
111
|
+
ids = []
|
112
|
+
if "," in request.id:
|
113
|
+
ids = map(int, request.id.split(","))
|
114
|
+
elif ':' in request.id:
|
115
|
+
start, end = map(int, request.id.split(":"))
|
116
|
+
ids = range(start, end)
|
117
|
+
|
118
|
+
request_list = []
|
119
|
+
for i, k in zip(ids, request.key.split()): # api_key不为空
|
120
|
+
_request = request.copy()
|
121
|
+
_request.id = i
|
122
|
+
_request.key = k
|
123
|
+
request_list.append(_request)
|
124
|
+
|
125
|
+
tasks = [create_or_update_channel(r, base_url, api_key) for r in request_list]
|
126
|
+
return await asyncio.gather(*tasks)
|
127
|
+
|
128
|
+
base_url = base_url or "https://api.chatfire.cn"
|
129
|
+
|
130
|
+
method = "post"
|
131
|
+
if await exist_channel(request, base_url, api_key):
|
132
|
+
logger.debug(f"渠道已存在,跳过创建:{request.id}")
|
133
|
+
method = "put"
|
85
134
|
|
86
135
|
# 新创建的优先级低,保证旧key刷的时间更长
|
87
136
|
request.priority = request.priority or int(1000 - (time.time() - time.time() // 1000 * 1000))
|
@@ -93,7 +142,7 @@ async def create_or_update_channel(
|
|
93
142
|
'rix-api-user': '1',
|
94
143
|
}
|
95
144
|
payload = request.model_dump(exclude_none=True)
|
96
|
-
async with httpx.AsyncClient(base_url=base_url, headers=headers, timeout=
|
145
|
+
async with httpx.AsyncClient(base_url=base_url, headers=headers, timeout=100) as client:
|
97
146
|
response = await client.request(method, "/api/channel/", json=payload)
|
98
147
|
response.raise_for_status()
|
99
148
|
logger.debug(response.json())
|
@@ -187,11 +236,13 @@ if __name__ == '__main__':
|
|
187
236
|
# arun(create_or_update_channel(tokens, base_url))
|
188
237
|
# arun(create_or_update_channel(tokens))
|
189
238
|
# # arun(delete_channel(range(10000, 20000)))
|
190
|
-
key= "KEY"
|
239
|
+
key = "KEY"
|
191
240
|
request = ChannelInfo(name='', key=key)
|
192
|
-
request = ChannelInfo(key=key)
|
241
|
+
request = ChannelInfo(id=10010, key=key)
|
242
|
+
|
243
|
+
# arun(create_or_update_channel(request))
|
193
244
|
|
194
|
-
arun(
|
245
|
+
arun(exist_channel(request))
|
195
246
|
|
196
247
|
"""
|
197
248
|
API_KEY=6c255307-7b4d-4be8-984b-5440a3e867eb
|
@@ -0,0 +1,142 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : videos
|
5
|
+
# @Time : 2025/6/20 11:31
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.db.redis_db import redis_aclient
|
13
|
+
from meutils.apis.utils import make_request
|
14
|
+
from meutils.schemas.hailuo_types import VideoRequest, VideoResponse
|
15
|
+
|
16
|
+
from fastapi import APIRouter, File, UploadFile, Query, Form, Depends, Request, HTTPException, status, BackgroundTasks
|
17
|
+
|
18
|
+
base_url = "https://api.ppinfra.com/v3"
|
19
|
+
|
20
|
+
|
21
|
+
# minimax-hailuo-02-6s-768p minimax-hailuo-02-6s-768p minimax-hailuo-02-6s-1080p
|
22
|
+
async def create_task(request: VideoRequest, api_key: Optional[str] = None):
|
23
|
+
api_key = api_key or "sk_fh6OykfJHgO_Hx2TWBRe2SJMC6quHvCN7g--fO5FfcQ"
|
24
|
+
|
25
|
+
payload = {
|
26
|
+
|
27
|
+
"prompt": request.prompt,
|
28
|
+
"image_url": request.first_frame_image,
|
29
|
+
|
30
|
+
"duration": request.duration,
|
31
|
+
"resolution": request.resolution.upper(),
|
32
|
+
"enable_prompt_expansion": request.prompt_optimizer
|
33
|
+
}
|
34
|
+
response = await make_request(
|
35
|
+
base_url=base_url,
|
36
|
+
api_key=api_key,
|
37
|
+
|
38
|
+
path="/async/minimax-hailuo-02",
|
39
|
+
payload=payload,
|
40
|
+
)
|
41
|
+
|
42
|
+
# return response # {'task_id': 'f97d3f93-bb29-47d9-9327-77e70982bd43'}
|
43
|
+
|
44
|
+
video_response = VideoResponse(
|
45
|
+
task_id=response['task_id'],
|
46
|
+
base_resp={
|
47
|
+
"status_code": 0,
|
48
|
+
"status_msg": "Processing"
|
49
|
+
}
|
50
|
+
)
|
51
|
+
|
52
|
+
await redis_aclient.set(video_response.task_id, api_key, ex=7 * 24 * 3600) # todo 装饰器
|
53
|
+
return video_response
|
54
|
+
|
55
|
+
|
56
|
+
async def get_task(task_id: str):
|
57
|
+
token = await redis_aclient.get(task_id) # 绑定对应的 token
|
58
|
+
token = token and token.decode()
|
59
|
+
|
60
|
+
logger.debug(f"token: {token}")
|
61
|
+
if not token:
|
62
|
+
raise HTTPException(status_code=404, detail="TaskID not found")
|
63
|
+
|
64
|
+
response = await make_request(
|
65
|
+
base_url=base_url,
|
66
|
+
api_key=token,
|
67
|
+
|
68
|
+
path=f"/async/task-result?task_id={task_id}",
|
69
|
+
|
70
|
+
method='GET'
|
71
|
+
)
|
72
|
+
logger.debug(bjson(response))
|
73
|
+
"""
|
74
|
+
{
|
75
|
+
"audios": [],
|
76
|
+
"extra": {},
|
77
|
+
"images": [],
|
78
|
+
"task": {
|
79
|
+
"eta": 0,
|
80
|
+
"progress_percent": 0,
|
81
|
+
"reason": "",
|
82
|
+
"status": "TASK_STATUS_SUCCEED",
|
83
|
+
"task_id": "f97d3f93-bb29-47d9-9327-77e70982bd43",
|
84
|
+
"task_type": "MINIMAX_HAILUO_02_6S_768P"
|
85
|
+
},
|
86
|
+
"videos": [
|
87
|
+
{
|
88
|
+
"nsfw_detection_result": null,
|
89
|
+
"video_type": "mp4",
|
90
|
+
"video_url": "https://faas-minimax-video-1312767721.cos.ap-shanghai.myqcloud.com/prod/281961854701760-ceb3b321-0ed3-43a3-9bb8-ca579a8abd4f.mp4?q-sign-algorithm=sha1&q-ak=AKIDHOHvKVnrgHkyxhCTyOdeSjoiRxGPSJ0V&q-sign-time=1750392487%3B1750396087&q-key-time=1750392487%3B1750396087&q-header-list=host&q-url-param-list=&q-signature=202c563db2ab6385a7ebe3e4650ee01ed3376e06",
|
91
|
+
"video_url_ttl": "0"
|
92
|
+
}
|
93
|
+
]
|
94
|
+
}
|
95
|
+
"""
|
96
|
+
video_response = VideoResponse(
|
97
|
+
task_id=task_id,
|
98
|
+
status="Processing",
|
99
|
+
base_resp={
|
100
|
+
"status_code": 0,
|
101
|
+
"status_msg": "Processing"
|
102
|
+
}
|
103
|
+
)
|
104
|
+
if response['task']['status'] == 'TASK_STATUS_SUCCEED':
|
105
|
+
video_response.status = "Success"
|
106
|
+
video_response.base_resp.status_msg = "Success"
|
107
|
+
video_response.videos = response['videos']
|
108
|
+
|
109
|
+
|
110
|
+
elif any(i in response['task']['status'].lower() for i in {"fail", 'error'}):
|
111
|
+
video_response.status = "Failed"
|
112
|
+
video_response.base_resp.status_code = 1027
|
113
|
+
video_response.base_resp.status_msg = "Failed"
|
114
|
+
|
115
|
+
return video_response # {'task_id': 'f97d3f93-bb29-47d9-9327-77e70982bd43'}
|
116
|
+
|
117
|
+
|
118
|
+
if __name__ == '__main__':
|
119
|
+
api_key = os.getenv('PPIO_API_KEY')
|
120
|
+
|
121
|
+
payload = {
|
122
|
+
"image_url": "https://static.ppinfra.com/docs/assets/minimax-hailuo-video-02-input-image.jpg",
|
123
|
+
"prompt": "戴着太阳镜的毛茸茸的熊猫在日出时的雪山顶上跳舞,左移运镜",
|
124
|
+
"duration": 6,
|
125
|
+
"resolution": "768P",
|
126
|
+
"enable_prompt_expansion": True
|
127
|
+
}
|
128
|
+
|
129
|
+
request = VideoRequest(
|
130
|
+
prompt="戴着太阳镜的毛茸茸的熊猫在日出时的雪山顶上跳舞,左移运镜",
|
131
|
+
first_frame_image="https://static.ppinfra.com/docs/assets/minimax-hailuo-video-02-input-image.jpg",
|
132
|
+
duration=6,
|
133
|
+
resolution="768P",
|
134
|
+
)
|
135
|
+
|
136
|
+
# r = arun(create_task(request, api_key=api_key))
|
137
|
+
|
138
|
+
# arun(get_task("d8b048d0-5c54-42ef-a691-3feab31693fe"))
|
139
|
+
|
140
|
+
# print(request.model_dump_json(exclude_none=True))
|
141
|
+
|
142
|
+
arun(get_task("44d7dabc-68ef-49af-afce-f00c39edd2d9"))
|
meutils/apis/proxy/kdlapi.py
CHANGED
@@ -5,17 +5,17 @@ from meutils.pipe import *
|
|
5
5
|
from meutils.caches import rcache
|
6
6
|
from meutils.decorators.retry import retrying
|
7
7
|
|
8
|
-
username = "
|
8
|
+
username = "d1982743732" # 包月
|
9
9
|
password = "1h29rymg"
|
10
10
|
|
11
11
|
|
12
|
-
@rcache(ttl=
|
12
|
+
@rcache(ttl=120)
|
13
13
|
@retrying()
|
14
14
|
async def get_proxy_list():
|
15
|
-
secret_id = os.getenv("KDLAPI_SECRET_ID")
|
16
|
-
signature = os.getenv("KDLAPI_SIGNATURE")
|
15
|
+
secret_id = os.getenv("KDLAPI_SECRET_ID")
|
16
|
+
signature = os.getenv("KDLAPI_SIGNATURE")
|
17
17
|
url = f"https://dps.kdlapi.com/api/getdps/?secret_id={secret_id}&signature={signature}&num=1&pt=1&format=json&sep=1"
|
18
|
-
async with httpx.AsyncClient() as client:
|
18
|
+
async with httpx.AsyncClient(timeout=30) as client:
|
19
19
|
response = await client.get(url)
|
20
20
|
response.raise_for_status()
|
21
21
|
proxy_list = response.json().get('data').get('proxy_list')
|
@@ -32,25 +32,27 @@ if __name__ == '__main__':
|
|
32
32
|
# arun(get_proxy_list())
|
33
33
|
|
34
34
|
page_url = "https://icanhazip.com/" # 要访问的目标网页
|
35
|
-
# page_url = "https://httpbin.org/ip"
|
36
35
|
|
37
36
|
|
37
|
+
# page_url = "https://httpbin.org/ip"
|
38
|
+
|
38
39
|
async def fetch(url):
|
39
|
-
|
40
|
-
proxy = "http://154.9.253.9:38443"
|
41
|
-
# proxy="https://tinyproxy.chatfire.cn"
|
42
|
-
# proxy="https://pp.chatfire.cn"
|
43
|
-
proxy="http://110.42.51.201:38443"
|
44
|
-
proxy="http://110.42.51.223:38443"
|
45
|
-
proxy = "http://110.42.51.223:38443"
|
40
|
+
proxy = await get_one_proxy()
|
41
|
+
# proxy = "http://154.9.253.9:38443"
|
42
|
+
# # proxy="https://tinyproxy.chatfire.cn"
|
43
|
+
# # proxy="https://pp.chatfire.cn"
|
44
|
+
# proxy = "http://110.42.51.201:38443"
|
45
|
+
# proxy = "http://110.42.51.223:38443"
|
46
|
+
# proxy = "http://110.42.51.223:38443"
|
46
47
|
|
47
48
|
# proxy=None
|
48
|
-
proxy="https://npjdodcrxljt.ap-northeast-1.clawcloudrun.com"
|
49
|
+
# proxy = "https://npjdodcrxljt.ap-northeast-1.clawcloudrun.com"
|
49
50
|
|
50
51
|
async with httpx.AsyncClient(proxy=proxy, timeout=30) as client:
|
51
52
|
resp = await client.get(url)
|
52
53
|
logger.debug((f"status_code: {resp.status_code}, content: {resp.text}"))
|
53
54
|
|
55
|
+
|
54
56
|
def run():
|
55
57
|
loop = asyncio.get_event_loop()
|
56
58
|
# 异步发出5次请求
|
@@ -59,3 +61,5 @@ if __name__ == '__main__':
|
|
59
61
|
|
60
62
|
|
61
63
|
run()
|
64
|
+
|
65
|
+
# arun(get_one_proxy())
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : tasks
|
5
|
+
# @Time : 2025/6/18 16:51
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
|
12
|
+
from meutils.pipe import *
|
13
|
+
from meutils.llm.clients import AsyncOpenAI
|
14
|
+
|
15
|
+
|
16
|
+
# dynamic_router
|
17
|
+
# async def create_task(
|
18
|
+
# request: dict,
|
19
|
+
# api_key: Optional[str] = None
|
20
|
+
# ):
|
21
|
+
# payload = request
|
22
|
+
# client = AsyncOpenAI(base_url=base_url, api_key=api_key)
|
23
|
+
# response = client.post(
|
24
|
+
# ,
|
25
|
+
# body=payload,
|
26
|
+
# cast_to=dict,
|
27
|
+
# )
|
28
|
+
# return response
|