MeUtils 2025.3.21.17.22.17__py3-none-any.whl → 2025.3.26.18.50.26__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.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/METADATA +263 -263
- {MeUtils-2025.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/RECORD +36 -28
- examples/_openaisdk/openai_google.py +49 -0
- meutils/apis/common.py +12 -10
- meutils/apis/dashscope/__init__.py +11 -0
- meutils/apis/dashscope/audio.py +37 -0
- meutils/apis/images/recraft.py +6 -1
- meutils/apis/jina/common.py +3 -2
- meutils/apis/siliconflow/videos.py +40 -21
- meutils/apis/textin_apis/__init__.py +13 -0
- meutils/apis/textin_apis/common.py +66 -0
- meutils/apis/textin_apis/utils.py +42 -0
- meutils/apis/textin_apis/watermark_remove.py +58 -0
- meutils/apis/utils.py +1 -1
- meutils/caches/common.py +1 -0
- meutils/common.py +8 -0
- meutils/data/VERSION +1 -1
- meutils/data/oneapi/NOTICE.html +4 -1
- meutils/io/files_utils.py +4 -2
- meutils/io/openai_files.py +2 -5
- meutils/io/x.py +12 -58
- meutils/llm/completions/chat_gemini.py +2 -2
- meutils/llm/completions/chat_plus.py +24 -11
- meutils/llm/completions/chat_spark.py +4 -2
- meutils/llm/completions/yuanbao.py +12 -6
- meutils/notice/feishu.py +3 -0
- meutils/request_utils/crawler.py +3 -2
- meutils/schemas/image_types.py +1 -5
- meutils/schemas/oneapi/common.py +37 -5
- meutils/schemas/siliconflow_types.py +24 -2
- meutils/schemas/textin_types.py +64 -0
- meutils/serving/fastapi/exceptions/http_error.py +29 -9
- {MeUtils-2025.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/LICENSE +0 -0
- {MeUtils-2025.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/WHEEL +0 -0
- {MeUtils-2025.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.3.21.17.22.17.dist-info → MeUtils-2025.3.26.18.50.26.dist-info}/top_level.txt +0 -0
@@ -107,6 +107,7 @@ examples/_openaisdk/openai_ep.py,sha256=cAaeyC8Lstk1MB36c4h7X9n7EnEnY7rr2Tugo_di
|
|
107
107
|
examples/_openaisdk/openai_files.py,sha256=zcF4k4sQ2FnINhq6x1wCKw1WCu93g1h69Yul_rLdakE,2058
|
108
108
|
examples/_openaisdk/openai_gitee.py,sha256=UQEJMQMQDhgqYzo_aYetYXnBmVtqRwIweJDDK3NlSMw,1205
|
109
109
|
examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp797A,1056
|
110
|
+
examples/_openaisdk/openai_google.py,sha256=GSjiE09LEBTNcevFrAk34_N-iHMqLzogQvTwMss1UJI,1231
|
110
111
|
examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
|
111
112
|
examples/_openaisdk/openai_images.py,sha256=_ceVlEhg8sSpsBqyMpaURqnBNdmQt-L7-UDb1N0IHmk,5980
|
112
113
|
examples/_openaisdk/openai_jina.py,sha256=QeGRXMQmkJyg8Cz4Vfx4pP39a5TcO7pQQfPAPbBA8bs,1628
|
@@ -247,7 +248,7 @@ examples/文档智能/__init__.py,sha256=JKHlkF5vTvwFJnFLIT7raQxsvBoK12b8lvVz-c0
|
|
247
248
|
meutils/__init__.py,sha256=X_i77Bvnt4-c4XUwuzGZTvXP2doPtTBqQsHl9DE455E,348
|
248
249
|
meutils/_utils.py,sha256=5oL-s4vM0DZSyI9j1Qoo999PcJagMKNZ9ZPaXFo9tp4,1999
|
249
250
|
meutils/cache_utils.py,sha256=6vz3G8wZ5iOXH91J-dp7ciU_BuLDzjjQUi4Hl8rrzOY,8425
|
250
|
-
meutils/common.py,sha256=
|
251
|
+
meutils/common.py,sha256=a-i3RurMY9I5xnnA3esMcs08vHO5Dhk3uWrpce0ijm8,16785
|
251
252
|
meutils/date_utils.py,sha256=--rh58qfa2iagLjgA0eh1myyvaZ0hgxHiy-WCsrNsuk,2497
|
252
253
|
meutils/dist_utils.py,sha256=3U9VXuVf4_iWtXn6C5Dd5yDDDpzdZxZaokuQmuUcUwY,3640
|
253
254
|
meutils/hash_utils.py,sha256=u_rM8QvgSl5Num8MljXD8tqEuxhEvHInWawor8tgac8,2563
|
@@ -320,7 +321,7 @@ meutils/ann/milvus.py,sha256=Y2MWEChNmIQWG3ddUhjFnZUVHc4H_crEOySj_CNXYxI,238
|
|
320
321
|
meutils/ann/shake_demo.py,sha256=MuT4pSBcHlDV1a7aRmAL_AbmYtuieLFXfiEDLCjBLBE,1076
|
321
322
|
meutils/apis/__init__.py,sha256=7e1Lw5d7LoPGxrU9J2uh0y6Gg7RmDx_d40HljvbRvbY,345
|
322
323
|
meutils/apis/ali_apis.py,sha256=da69FKwBiEEDIoxmWP4M09rpuOjggwt2NWepbX3H7bs,1905
|
323
|
-
meutils/apis/common.py,sha256=
|
324
|
+
meutils/apis/common.py,sha256=XALPn5LyqVhIWGa_utq6mDSiU6Pbl6xnffqHUekiLzw,4036
|
324
325
|
meutils/apis/firecrawl.py,sha256=Kibq6JevgM5o__x1UTjtBhYXmvKlYxEhzMi0Zz0fNeE,1152
|
325
326
|
meutils/apis/jina.py,sha256=hWSPrQIAlsKk1gHz_BAp5MFKu5XI84bUUCUYn9Sg7dI,4927
|
326
327
|
meutils/apis/kuaidi.py,sha256=4KrtOkbGlsLpyvbY80UMSo03iFqFiBHnE0CiqAWWQ4Y,998
|
@@ -329,7 +330,7 @@ meutils/apis/niutrans.py,sha256=tWUyGH5SReLBQyVuB7kZvoFB35dsN6gXN-anbiHc_B4,2298
|
|
329
330
|
meutils/apis/search_music.py,sha256=HBLtdterztrccnLAPZrWBlrYSx4WCRflCqz-V30fOA8,972
|
330
331
|
meutils/apis/textin.py,sha256=Alodn8U5J1Pty_sv1in_-f3B_G5PDERQRaxOCtH7Xcc,4894
|
331
332
|
meutils/apis/ts.py,sha256=Q13EOS9Q-Y2-KwOG_cFMVmGj9RUmDtxk5A3E27dxbN0,1511
|
332
|
-
meutils/apis/utils.py,sha256=
|
333
|
+
meutils/apis/utils.py,sha256=XbwnwNBVtRaNP2zZI-PG18w12LpJU_V3HF-98tADppI,2057
|
333
334
|
meutils/apis/web_search.py,sha256=6gS3leIB2iyeLtqhB0IbpL_mKzDgArRTqnR7odTWT3E,1035
|
334
335
|
meutils/apis/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
335
336
|
meutils/apis/aitools/__init__.py,sha256=USdDfW2JZyUVY8ko54Dwpl801O766bvO_3F1lM4b8Gc,271
|
@@ -347,6 +348,8 @@ meutils/apis/chatglm/glm_video_api.py,sha256=fr4hizU-jEjCdXvd8VpYY0XthEJfLQCcyBY
|
|
347
348
|
meutils/apis/chatglm/images.py,sha256=k2EtOpksgAfJb2MD6kLOKKem713kamTIinRmgr8_3n0,1974
|
348
349
|
meutils/apis/chatglm/temp.py,sha256=zYe6JGUHVfb77T_TdNsdmpTs2D9OyqDTUEkblDAIoYY,17811
|
349
350
|
meutils/apis/chatglm/x.py,sha256=lI86Cd6SN4noCN5HM9gRugcVmjHDtxDTV4m-7Bj61N0,24312
|
351
|
+
meutils/apis/dashscope/__init__.py,sha256=UgwoOhkT55c9TBxb9_Xypg6dd_vD3cRxcNcNkArYAns,271
|
352
|
+
meutils/apis/dashscope/audio.py,sha256=v9nXCW1nF5ekzYasp0YxFcz3Vh9ebv6hMSK1W9HKJHY,986
|
350
353
|
meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
|
351
354
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
352
355
|
meutils/apis/fal/images.py,sha256=0diKFpsiO_ZZTL8LnNMN5wV2urfhIEIqIMe_HdrdiLs,8707
|
@@ -380,7 +383,7 @@ meutils/apis/images/deepinfra.py,sha256=lMqfU0LIXEzHiAS31dCcoTnPIE6tpoDJhq61H0TV
|
|
380
383
|
meutils/apis/images/demo.py,sha256=Cjk-EKMKbp44czykW_44qR0TzElX8nNCALqXBBw5sJA,4405
|
381
384
|
meutils/apis/images/edits.py,sha256=vyX5AEZcNvLHB4fXWo2PdviNv0jMMO34e1k-IbedjO0,9935
|
382
385
|
meutils/apis/images/eidt.py,sha256=s8IBbCjwwoogIUf-d2O7nkawUmly9n19nvLYPaLEeg4,1217
|
383
|
-
meutils/apis/images/recraft.py,sha256=
|
386
|
+
meutils/apis/images/recraft.py,sha256=Uk0InfY-epyuLGYs93EL6F9SJMsx8NX6JuEFCgMR48M,70651
|
384
387
|
meutils/apis/images/flux/__init__.py,sha256=W_PZabQm6EmtJYmzEiEpL_WCXTAW0AiJ-t_n5UTrE8c,271
|
385
388
|
meutils/apis/images/flux/fluxpro.py,sha256=NFl9t9C3R3jsNJpez4o9tOz3r-fjRXj-vKMxCSTRDTU,4022
|
386
389
|
meutils/apis/images/flux/mystic.py,sha256=cUkqaMAbd3dSBCvFEoNBBoEoWCGzvBJWPEkEq1Q8xzw,3616
|
@@ -401,7 +404,7 @@ meutils/apis/jimeng/files.py,sha256=E-pPmi6fIP_n6wgfiDbqeWsIfrXVZUe7LpA6Wds1xDI,
|
|
401
404
|
meutils/apis/jimeng/images.py,sha256=m0b9sFxWtSJPbLOFg9B8ECV17cMcCgHs9m5SCySeYNE,13259
|
402
405
|
meutils/apis/jimeng/videos.py,sha256=x-PDOYNBN-yTmNvMbyDbwm_E2LXZ6A4hcVzEahV_Hvc,10813
|
403
406
|
meutils/apis/jina/__init__.py,sha256=WnZ4LOv-bzC1brd5FZHOHmgq4c0UaFbnksEj2_LzXxQ,292
|
404
|
-
meutils/apis/jina/common.py,sha256=
|
407
|
+
meutils/apis/jina/common.py,sha256=dwSJboUcZtvBTKRcvAUcgMD933VfYCUBDdtxbw1ioiE,1099
|
405
408
|
meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
|
406
409
|
meutils/apis/kling/api.py,sha256=8NEWunWX3pVWhZzDnzw6rd07nPfOuY2T-XkgL86ZWYg,2328
|
407
410
|
meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
|
@@ -455,7 +458,7 @@ meutils/apis/siliconflow/images.py,sha256=xPWAp9SkWxd5Q7MUIy4kBFYcF_Wyl4fNthskjQ
|
|
455
458
|
meutils/apis/siliconflow/rerankers.py,sha256=GuKT33MmAiVULqNaAO9IIy1Zp570-kYJ6xP03eLCp5Y,1259
|
456
459
|
meutils/apis/siliconflow/text_to_image.py,sha256=rDxk6NIj4TjigcSPVDZknQR9nUpK5CTJBXc3KjI1Z8Y,4457
|
457
460
|
meutils/apis/siliconflow/utils.py,sha256=Awe0V7Mkceop1vWWrw9901cKQ6HHntIn8HbIG0fEo40,2091
|
458
|
-
meutils/apis/siliconflow/videos.py,sha256=
|
461
|
+
meutils/apis/siliconflow/videos.py,sha256=TyTtBX7Y8J605AGVmfbcUWEbSLcnsOqhQ0vDuNTkrE4,3760
|
459
462
|
meutils/apis/sunoai/__init__.py,sha256=O8J8jKTmvZGGovkF_jCRl3vbL68a4_dXVSxiKIYTkFo,244
|
460
463
|
meutils/apis/sunoai/haimian.py,sha256=CSISElYbbGFnVCxCgAbHM_YZ9ELUjhuFQ6jdYM0hh7E,5521
|
461
464
|
meutils/apis/sunoai/suno.py,sha256=I7UgqkBd7rd8BvOlZqzkf64n7Z2fjw678OnpP5DOKcM,17156
|
@@ -463,6 +466,10 @@ meutils/apis/sunoai/suno_api.py,sha256=9u25NRsXhUxHpQDkSUFRBBRjZu7bIux9UeIe1-bO_
|
|
463
466
|
meutils/apis/textcard/__init__.py,sha256=akc6silym0NIl0vX7uF8vhHQnt5RhSx50MFw-2ot9Sg,271
|
464
467
|
meutils/apis/textcard/demo.py,sha256=-kfVmAjWsbEyUn2a4MljATPtJurrPKKDG3nrZhIhYS0,552
|
465
468
|
meutils/apis/textcard/hanyuxinjie.py,sha256=4-VP7ZfEPPVonqisJO-PkzcJwQFQtNYAA_tz1BE7kqA,2044
|
469
|
+
meutils/apis/textin_apis/__init__.py,sha256=jtxgw3_tTRZCTMbYWP9QMoUo_sgtmWyo9PWC1tHxlKU,297
|
470
|
+
meutils/apis/textin_apis/common.py,sha256=63uG2AtiDxqz5SpLAt1LpCAA1TRs6LyHjlRqfrwLjHw,2145
|
471
|
+
meutils/apis/textin_apis/utils.py,sha256=sq-qYbuNWJxUGlYPrrcY3xc1gs5jGp0bdbFaHNv3KPY,1065
|
472
|
+
meutils/apis/textin_apis/watermark_remove.py,sha256=VRMi_GQUfZon4X-ehme_3HfSyNj9Qp3TBuF5pO6Gto8,1966
|
466
473
|
meutils/apis/to_image/__init__.py,sha256=-QJwCKB2KsSHAbNhYwv8DKe-gdZoILnufC7SDFdiwIo,271
|
467
474
|
meutils/apis/to_image/html2image.py,sha256=5GudnR14y3bVmCrtahj6ms_1dc3BttZRLnKSD2Saqps,886
|
468
475
|
meutils/apis/to_image/md.py,sha256=cjOU0a1OVsXDuwh4E-ct-YWZL56fEKNHeMP7VThI0xM,1393
|
@@ -503,7 +510,7 @@ meutils/async_utils/common.py,sha256=bfZkUlQz21WHAh2W7SDxFtrvUYNBnRfVxIUgMmT7o1Q
|
|
503
510
|
meutils/async_utils/test.py,sha256=lkZdgSzzgVg8hYVcaBNEJ3KBvFTEfjbXZVvtknQZsRQ,1155
|
504
511
|
meutils/caches/__init__.py,sha256=hIUEqNnmhukkbKK2F39bXe-MGDwzeUoTOf_sYly53xo,291
|
505
512
|
meutils/caches/acache.py,sha256=ajuQkQUt4ojGEMUNO0IGpJTZKL3tWK0F4pBZU2uxl6g,3198
|
506
|
-
meutils/caches/common.py,sha256=
|
513
|
+
meutils/caches/common.py,sha256=FSNRgzOZT1N57ZajSzFxfQRjvN0bLMnN4v1TIj0P5p4,1744
|
507
514
|
meutils/caches/redis_cache.py,sha256=oXGk_CZhjp9P_z1TG_zhmma4iGepK-iIWY_ZYQWSkFg,1395
|
508
515
|
meutils/caches/redis_mulit.py,sha256=WQrNmH98S0D9mG5eixqPtrYvOPi62T4w2ZvNETB4eU4,597
|
509
516
|
meutils/clis/__init__.py,sha256=2Fhn43X8kFP6FpAnnAMiPcdnjUwQaukiIr2uGB6mGAY,279
|
@@ -531,14 +538,14 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
531
538
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
532
539
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
533
540
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
534
|
-
meutils/data/VERSION,sha256=
|
541
|
+
meutils/data/VERSION,sha256=02E3mPoiMQpB96Dqf0ksn7yw35dzPObsRwWT0D8HtJ4,19
|
535
542
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
536
543
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
537
544
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
538
545
|
meutils/data/coordinate.py,sha256=VbFtcdho0XG4j-rZD0DgqcIf2_LR2LlbLtfhLXbxiDY,600
|
539
546
|
meutils/data/cowboy-hat-face.webp,sha256=AHi2t-WclDVKWgGEe-oZzI4xKACNlgGWUgd622y0K-E,24814
|
540
547
|
meutils/data/oneapi/FOOTER.md,sha256=f_uTlAXtYBZFcVZkPpPxL2m9lvomaYD0NUPT0Yy91Y4,516
|
541
|
-
meutils/data/oneapi/NOTICE.html,sha256=
|
548
|
+
meutils/data/oneapi/NOTICE.html,sha256=Sy-b_1z_dE1IWtptORuwqH2yUn3qx5qm7ispEnDkVbE,481
|
542
549
|
meutils/data/oneapi/__init__.py,sha256=qs1T3oB5I_2KYDHYLBQr4qfSgudeIeg1tu5OvjnETFQ,400
|
543
550
|
meutils/data/oneapi/index.html,sha256=SLxEEgxQgN5P2AgOTJf6LrTXY-6_KCxST7-aMh4TEho,9974
|
544
551
|
meutils/db/__init__.py,sha256=HR99rqxoFTWXUHDhLVl33tzIn8M86gigHLmEzOKH1Ec,7637
|
@@ -578,12 +585,12 @@ meutils/init/evn.py,sha256=GPw9Un8YbgYJmjwd-uYWQ8JeVr6pRxwyYbDv3W8fb1s,1588
|
|
578
585
|
meutils/init/oo.py,sha256=jXWaCWWFYVPGgTIas47Z3J7sIq-CD7DyK6fKDBsq8GA,12884
|
579
586
|
meutils/io/__init__.py,sha256=uW43ZfdWu7adRvwvcTzUGtn4CseRmbzEJdlZV-oqHEA,2107
|
580
587
|
meutils/io/_openai_files.py,sha256=UIiu6Zg7iSFIn1xIcpLznFlnfCxAJFGuvuPtxvTNHfI,1005
|
581
|
-
meutils/io/files_utils.py,sha256=
|
588
|
+
meutils/io/files_utils.py,sha256=S2d1eYdAHrxE3fgyAyqEV4hb-iCWEHrYDbPaNbJmmyg,8032
|
582
589
|
meutils/io/image.py,sha256=BJmYzx7o66X7C32gOfVmfr5tBRXOi0IYQY7BpGLsGrg,6926
|
583
590
|
meutils/io/minio_utils.py,sha256=i1YuxwDJzLse0smMXuPqnD1wirBBb8psmB_kd1oPoVU,1274
|
584
|
-
meutils/io/openai_files.py,sha256=
|
591
|
+
meutils/io/openai_files.py,sha256=sld1YLsx-jqLkHSx0W9TbPDlXq2txw2ieWi9zxlx58Y,5514
|
585
592
|
meutils/io/tf_io.py,sha256=vEZZS4pCf4Dt3A-FtIVMfhC3FJUUpQCK2OoEvXrBWos,8605
|
586
|
-
meutils/io/x.py,sha256=
|
593
|
+
meutils/io/x.py,sha256=jfDFNgZpCa8cDzrfgTZcxw9cm01l7LyFXUUhamSZo0I,702
|
587
594
|
meutils/io/parsers/__init__.py,sha256=h3fRoVBxA5zFx6f-GD7L4UikOVyo0IDEluXL_dQXf4k,244
|
588
595
|
meutils/io/parsers/fileparser/PDF抽取.py,sha256=Xd7VLNB7c3U64bE8A9Fi_LBgaEfsysFniDtFF3rVOMc,1975
|
589
596
|
meutils/io/parsers/fileparser/__init__.py,sha256=BFHAwQAkwuLI1_vy_5g-Kc1xnx1MPmN7D6S83Frmvwo,284
|
@@ -620,9 +627,9 @@ meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
|
620
627
|
meutils/llm/utils.py,sha256=4u3b8VO3wX3xKny1AdV4579qXux1YA4k5gI-CYPtx0o,4279
|
621
628
|
meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
|
622
629
|
meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
|
623
|
-
meutils/llm/completions/chat_gemini.py,sha256
|
624
|
-
meutils/llm/completions/chat_plus.py,sha256=
|
625
|
-
meutils/llm/completions/chat_spark.py,sha256=
|
630
|
+
meutils/llm/completions/chat_gemini.py,sha256=u72X_SdCNYL5IQ_ZpJjN4sNN9822t0cTnM9iYioGmQc,4307
|
631
|
+
meutils/llm/completions/chat_plus.py,sha256=RPYQqx4vc57gevcz0gUS7QPvGm0M12ktAspMKJtoeuk,7727
|
632
|
+
meutils/llm/completions/chat_spark.py,sha256=FoI8wvWBp2ckM1DFayKbUg7jkzF6HCbkJTrEYY6wlgc,9570
|
626
633
|
meutils/llm/completions/chat_videos.py,sha256=P3Yz34dkNlxCxzOuKHJ9pHIA4UXK3Y5RXPzVnQjb9rc,2915
|
627
634
|
meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
|
628
635
|
meutils/llm/completions/deep2x.py,sha256=e2CXIbwBNI9ck4cLMq-9n9YGOmPQahblaA7vZsS97QE,3333
|
@@ -637,7 +644,7 @@ meutils/llm/completions/tryblend.py,sha256=NfVRktn1QiE2k60PzEI-LmKuxZCc7mtL_Klsr
|
|
637
644
|
meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb_E,10138
|
638
645
|
meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,630
|
639
646
|
meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M,1646
|
640
|
-
meutils/llm/completions/yuanbao.py,sha256=
|
647
|
+
meutils/llm/completions/yuanbao.py,sha256=8jU0_KRLqaUb3xXabIclSo3-z0f0qSJ1Gx3_LoMIoh8,7577
|
641
648
|
meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
|
642
649
|
meutils/llm/completions/agents/search.py,sha256=GKsk0NRy6jsbSu8E9mdBWObJzroGE-L7Iuo5W2MK_u0,5057
|
643
650
|
meutils/llm/completions/assistants/__init__.py,sha256=1QWMIG5dA2wH7550ZdNpW00NPU9q8C-eXybjTsm1aSU,271
|
@@ -661,7 +668,7 @@ meutils/logging/log_utils.py,sha256=Sa5-Y4fWNTKQw2fIb1dbPgOypl6S6m7EOrbciSqEt5A,
|
|
661
668
|
meutils/logging/logger.py,sha256=-J_tWYfAvPhSTshVWIiN-6zTZnjkFuwDfMtxUtuNkuY,6183
|
662
669
|
meutils/notice/__init__.py,sha256=BVbcBx4ks-BH_63gEcjMxL67oX1_aWdaM8r3TDo8Ogg,248
|
663
670
|
meutils/notice/emails.py,sha256=TvC1xv3MpFC2HU0lTQW5SmNuj7UMlgjpsUImMp9jKOw,2403
|
664
|
-
meutils/notice/feishu.py,sha256=
|
671
|
+
meutils/notice/feishu.py,sha256=1ANhOfuhabSXduqeO0zNe4ai5kizDAYYWLCXKhcHihQ,3911
|
665
672
|
meutils/notice/file_post.py,sha256=KQ8iQUM30vF7T6ZZPahdLps4dLXK2s3nzdFYbty6M5E,953
|
666
673
|
meutils/notice/load_emailfile - 副本.py,sha256=f-Kq3UKZut_P0bmumV1y4PXuPtatjl-5SLUH5LShBUY,7331
|
667
674
|
meutils/notice/wechat.py,sha256=-HU5oSvpZrVnjjU76ky7_j0yg5ivn5mIlJ7JJVtlrnY,4082
|
@@ -730,7 +737,7 @@ meutils/queues/uniform_queue.py,sha256=fKZw-xc9RBY0VoN6uRwQWEds8o5U0nxBz7SQhAVzq
|
|
730
737
|
meutils/request_utils/__init__.py,sha256=wqP3vkDJ2wFMawvx4XyT-5pNf-Jr81PYTQ14FCcG-Pw,4053
|
731
738
|
meutils/request_utils/ark.py,sha256=n7U89XlESpVJ-gErJIi1fvslkULLJEjAQQoEORGusr4,1012
|
732
739
|
meutils/request_utils/a爬虫.py,sha256=PTsl0RuNB7IByErMpGZj5WwSZeHBRR53YqRNx1J0_EU,1894
|
733
|
-
meutils/request_utils/crawler.py,sha256=
|
740
|
+
meutils/request_utils/crawler.py,sha256=7asGv3cDg2JVN8-cI_T078Hif-RSEBFjEE7HC38ED7I,2419
|
734
741
|
meutils/request_utils/download.py,sha256=qFGt79Jp1f8n681x0kHWN3S70E-l46PlM2xqSdUDNm8,1767
|
735
742
|
meutils/request_utils/results.py,sha256=i422B66FHc7fzAyyORpQEkO0QO_dk38d1K0i8XYuixk,1334
|
736
743
|
meutils/request_utils/tiangong.py,sha256=l5t4pAWxxYvFxvyo-jJ-R6efKWMHjYPiPjrPUGMZLiU,3057
|
@@ -752,7 +759,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
|
|
752
759
|
meutils/schemas/hailuo_types.py,sha256=lZ3Q07QNgxJvrX8JJvalxUsro4gGLOMQDusSEwV4EO0,7429
|
753
760
|
meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
|
754
761
|
meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
|
755
|
-
meutils/schemas/image_types.py,sha256=
|
762
|
+
meutils/schemas/image_types.py,sha256=QYXYRqYNiF-9gKvTOg8eLaNd2rLsvsqT83Zf1JEQyTU,12950
|
756
763
|
meutils/schemas/jimeng_types.py,sha256=_fROFicbaqP8Bbg6V1vhIOXfrzp9WrxWHbCDCNzYCHU,977
|
757
764
|
meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
|
758
765
|
meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
|
@@ -772,10 +779,11 @@ meutils/schemas/prodia_types.py,sha256=knh_lzAxMfWMoqAPmvyMweay9PmQmsoQ1X6Mj17oh
|
|
772
779
|
meutils/schemas/replicate_types.py,sha256=Todfo-y2Gq1MW8IyEmzz_ZlTxuQ3PvIfiF0KkrmJaYw,3160
|
773
780
|
meutils/schemas/request_types.py,sha256=GP2radX2Ixjbu8NDKihUsrSOft6WgcFYd7LXxM4mPY0,407
|
774
781
|
meutils/schemas/runwayml_types.py,sha256=q6g00kg1PYCDjpw-notgbcUGwRAlIa8kAmU52ZuXyLQ,6128
|
775
|
-
meutils/schemas/siliconflow_types.py,sha256=
|
782
|
+
meutils/schemas/siliconflow_types.py,sha256=KClkwA2huq8YKuUCYIJZ4RF94ALhy3BsOMF1FcqRO1A,9266
|
776
783
|
meutils/schemas/step_types.py,sha256=nGTPXZ7RwOF2RTsPBQguLLcIaBxHs4bsZkYa_LalcJ0,648
|
777
784
|
meutils/schemas/suno_types.py,sha256=CxEXHGnLGZ7xvmoIYpz7IYPL73aLjtpHezJRIjWryKs,14965
|
778
785
|
meutils/schemas/task_types.py,sha256=Zjbn6AiopkPA3px2ZiMouU9QrL43p9O8bJB5OTI-O_4,4638
|
786
|
+
meutils/schemas/textin_types.py,sha256=IBYbSG7n5rAcS7Z5bXPBnL1a91gx8IBpUlFTGULKj9k,1429
|
779
787
|
meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrPUu1xzI,627
|
780
788
|
meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
|
781
789
|
meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
|
@@ -787,7 +795,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
|
|
787
795
|
meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
|
788
796
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
789
797
|
meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
|
790
|
-
meutils/schemas/oneapi/common.py,sha256=
|
798
|
+
meutils/schemas/oneapi/common.py,sha256=MjIy2-GH-g08Vz14kSq1nU9k3T2JHDneoNpLF9iEGvY,32114
|
791
799
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
792
800
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
793
801
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -815,7 +823,7 @@ meutils/serving/fastapi/dependencies/__init__.py,sha256=shI1EgfH4gFuajmHGlzt_Ard
|
|
815
823
|
meutils/serving/fastapi/dependencies/auth.py,sha256=4L2wa1X6tftJdIJsgGvebKL8IPGuL_4U6-7gY2uXxL0,1872
|
816
824
|
meutils/serving/fastapi/dependencies/headers.py,sha256=QHsWn8w_9f4_WoYTAOJzzb38FVQdRgbNATLdChWaVGg,916
|
817
825
|
meutils/serving/fastapi/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
818
|
-
meutils/serving/fastapi/exceptions/http_error.py,sha256=
|
826
|
+
meutils/serving/fastapi/exceptions/http_error.py,sha256=b3aG6mJCSefWPA1K6AX49pkAs31MRhuDIZkq9DLiTW0,2573
|
819
827
|
meutils/serving/fastapi/exceptions/validation_error.py,sha256=Q71wYfzGsVjLA-SQ3R5a8iT0kDG01mwriVUXHhvsTv0,1234
|
820
828
|
meutils/serving/fastapi/routers/__init__.py,sha256=F473oGpbMmCFMbnfuk9MKyO30ke-YvP7AR5jhsnxjNg,270
|
821
829
|
meutils/serving/fastapi/routers/_test.py,sha256=FgymiRBXz_EEerTc4V7aY9iTUZ1u0qZSTqhdQMg2Or4,546
|
@@ -916,9 +924,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
916
924
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
917
925
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
918
926
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
919
|
-
MeUtils-2025.3.
|
920
|
-
MeUtils-2025.3.
|
921
|
-
MeUtils-2025.3.
|
922
|
-
MeUtils-2025.3.
|
923
|
-
MeUtils-2025.3.
|
924
|
-
MeUtils-2025.3.
|
927
|
+
MeUtils-2025.3.26.18.50.26.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
928
|
+
MeUtils-2025.3.26.18.50.26.dist-info/METADATA,sha256=ZumPkFItKQhXqJyGjloY63QHyjzGeUvd7Yi-jlugpGM,32834
|
929
|
+
MeUtils-2025.3.26.18.50.26.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
930
|
+
MeUtils-2025.3.26.18.50.26.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
931
|
+
MeUtils-2025.3.26.18.50.26.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
932
|
+
MeUtils-2025.3.26.18.50.26.dist-info/RECORD,,
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : openai_siliconflow
|
5
|
+
# @Time : 2024/6/26 10:42
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
import os
|
11
|
+
|
12
|
+
from meutils.pipe import *
|
13
|
+
from openai import OpenAI
|
14
|
+
from openai import OpenAI, APIStatusError
|
15
|
+
|
16
|
+
client = OpenAI(
|
17
|
+
api_key=os.getenv("GOOGLE_API_KEY"),
|
18
|
+
base_url=os.getenv("GOOGLE_BASE_URL"),
|
19
|
+
)
|
20
|
+
|
21
|
+
print(client.models.list().model_dump_json(indent=4))
|
22
|
+
# models/gemini-2.5-pro-exp-03-25
|
23
|
+
# models/gemini-2.0-flash-exp-image-generation
|
24
|
+
#
|
25
|
+
try:
|
26
|
+
completion = client.chat.completions.create(
|
27
|
+
# model="models/gemini-2.5-pro-exp-03-25",
|
28
|
+
model="models/gemini-2.0-flash-thinking-exp",
|
29
|
+
messages=[
|
30
|
+
{"role": "user", "content": "画条狗"}
|
31
|
+
],
|
32
|
+
# top_p=0.7,
|
33
|
+
top_p=None,
|
34
|
+
temperature=None,
|
35
|
+
stream=True,
|
36
|
+
max_tokens=4000,
|
37
|
+
extra_body={"A": 1}
|
38
|
+
)
|
39
|
+
except APIStatusError as e:
|
40
|
+
print(e.status_code)
|
41
|
+
|
42
|
+
print(e.response)
|
43
|
+
print(e.message)
|
44
|
+
print(e.code)
|
45
|
+
|
46
|
+
for chunk in completion: # 剔除extra body
|
47
|
+
print(chunk)
|
48
|
+
if chunk.choices:
|
49
|
+
print(chunk.choices[0].delta.content)
|
meutils/apis/common.py
CHANGED
@@ -90,28 +90,30 @@ if __name__ == '__main__':
|
|
90
90
|
|
91
91
|
"https://nextchat.chatfire.cn/#/?settings={\"key\":\"{key}\"}"
|
92
92
|
url = """https://ichat.chatllm.vip/#/?settings={"key":"sk-"}"""
|
93
|
-
url = "http://111.173.117.175:40000/rag/"
|
93
|
+
# url = "http://111.173.117.175:40000/rag/"
|
94
|
+
url = "http://oss.cloudbellai.com/file/%E5%8A%9F%E8%83%BD%E7%82%B9%E5%9B%BE%E7%89%87/MES%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/%E3%80%90%E6%8E%A8%E8%8D%90%E3%80%91MES%E7%B3%BB%E7%BB%9F%E8%A7%84%E5%88%92%E4%B8%8E%E5%AE%9E%E6%96%BD/MES%E7%B3%BB%E7%BB%9F%E8%BE%B9%E7%95%8C%E4%B8%8E%E9%9B%86%E6%88%90.png"
|
94
95
|
# print(shorten_url(url, 'w3'))
|
95
96
|
# print(shorten_url(url, 'dagd'))
|
96
97
|
# print(shorten_url(url, 'clckru'))
|
97
98
|
# print(shorten_url(url, 'tinyurl'))
|
98
99
|
# print(shorten_url(url, 'ft'))
|
100
|
+
print(shorten_url(url))
|
99
101
|
|
100
102
|
from meutils.io.image import image_to_base64
|
101
103
|
|
102
|
-
apis = [
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
]
|
108
|
-
|
109
|
-
for api in apis:
|
104
|
+
# apis = [
|
105
|
+
# # "https://api.isoyu.com/qr/?m=1&e=L&p=8&url={}",
|
106
|
+
# # "https://my.tv.sohu.com/user/a/wvideo/getQRCode.do?text={}",
|
107
|
+
# # "https://api.qrserver.com/v1/create-qr-code/?data={}",
|
108
|
+
# "https://api.qrserver.com/v1/create-qr-code/?size=500×500&data={}",
|
109
|
+
# ]
|
110
|
+
#
|
111
|
+
# for api in apis:
|
110
112
|
# print(data2qrcodeurl('知盒欢迎你', api, shortened=True))
|
111
113
|
# print(data2qrcodeurl("http://www.zhihechat.com/#home", api, shortened=True))
|
112
114
|
# print(data2qrcodeurl("https://www.baidu.com", api, shortened=True))
|
113
115
|
|
114
|
-
print(data2qrcodeurl(image_to_base64('qr.png'), api, shortened=True))
|
116
|
+
# print(data2qrcodeurl(image_to_base64('qr.png'), api, shortened=True))
|
115
117
|
|
116
118
|
# break
|
117
119
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : audio
|
5
|
+
# @Time : 2025/3/23 16:07
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
import os
|
11
|
+
|
12
|
+
from meutils.pipe import *
|
13
|
+
from dashscope.audio.asr import Transcription
|
14
|
+
|
15
|
+
file_urls = [
|
16
|
+
"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_female2.wav",
|
17
|
+
"https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/paraformer/hello_world_male2.wav",
|
18
|
+
]
|
19
|
+
language_hints = ["zh", "en"]
|
20
|
+
|
21
|
+
data = {
|
22
|
+
"model": "paraformer-v2",
|
23
|
+
"input": {"file_urls": file_urls},
|
24
|
+
"parameters": {
|
25
|
+
"channel_id": [0],
|
26
|
+
"language_hints": language_hints,
|
27
|
+
"vocabulary_id": "vocab-Xxxx",
|
28
|
+
},
|
29
|
+
}
|
30
|
+
|
31
|
+
task_response = Transcription().async_call(
|
32
|
+
model="paraformer-v2",
|
33
|
+
file_urls=file_urls,
|
34
|
+
language_hints=language_hints,
|
35
|
+
)
|
36
|
+
|
37
|
+
response = Transcription().wait(task_response) # .output.results
|
meutils/apis/images/recraft.py
CHANGED
@@ -54,8 +54,13 @@ async def generate(request: RecraftImageRequest, token: Optional[str] = None):
|
|
54
54
|
payload = request.model_dump(exclude_none=True)
|
55
55
|
logger.debug(payload)
|
56
56
|
|
57
|
+
# image_to_image
|
58
|
+
model_type = "prompt_to_image"
|
59
|
+
if request.image:
|
60
|
+
model_type = "image_to_image"
|
61
|
+
|
57
62
|
async with httpx.AsyncClient(base_url=BASE_URL, headers=headers, timeout=60) as client:
|
58
|
-
response = await client.post(f"/queue_recraft/
|
63
|
+
response = await client.post(f"/queue_recraft/{model_type}", params=params, json=payload)
|
59
64
|
response.raise_for_status()
|
60
65
|
params = {
|
61
66
|
"operation_id": response.json()["operationId"]
|
meutils/apis/jina/common.py
CHANGED
@@ -16,11 +16,11 @@ from meutils.caches import cache, rcache
|
|
16
16
|
|
17
17
|
|
18
18
|
@retrying()
|
19
|
-
@rcache(ttl=
|
19
|
+
@rcache(ttl=600)
|
20
20
|
async def _url_reader(url: str):
|
21
21
|
"""markdown"""
|
22
22
|
|
23
|
-
async with AsyncClient(base_url="https://r.jina.ai", headers={}) as client:
|
23
|
+
async with AsyncClient(base_url="https://r.jina.ai", headers={}, timeout=300) as client:
|
24
24
|
response = await client.get(f"/{url}")
|
25
25
|
response.raise_for_status()
|
26
26
|
|
@@ -37,6 +37,7 @@ async def url_reader(urls: Union[str, List[str]]):
|
|
37
37
|
|
38
38
|
if __name__ == '__main__':
|
39
39
|
url = "https://top.baidu.com/board?tab=realtime"
|
40
|
+
url = "https://mp.weixin.qq.com/s/qvR1KbYVOq7XQO1tmEMVJA"
|
40
41
|
|
41
42
|
# print(arun(url_reader(url)))
|
42
43
|
|
@@ -7,21 +7,17 @@
|
|
7
7
|
# @WeChat : meutils
|
8
8
|
# @Software : PyCharm
|
9
9
|
# @Description :
|
10
|
-
import asyncio
|
11
10
|
|
12
11
|
from meutils.pipe import *
|
13
|
-
from meutils.caches
|
14
|
-
from meutils.io.files_utils import to_url, to_url_fal
|
12
|
+
from meutils.caches import rcache
|
13
|
+
from meutils.io.files_utils import to_url, to_url_fal, to_base64
|
15
14
|
from meutils.llm.check_utils import check_token_for_siliconflow
|
16
15
|
from meutils.schemas.task_types import TaskResponse
|
17
|
-
from meutils.schemas.siliconflow_types import BASE_URL, VideoRequest
|
16
|
+
from meutils.schemas.siliconflow_types import FEISHU_URL, FEISHU_URL_FREE, BASE_URL, VideoRequest
|
18
17
|
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
19
|
-
from meutils.apis.translator import deeplx
|
20
18
|
|
21
19
|
from openai import OpenAI, AsyncOpenAI
|
22
20
|
|
23
|
-
FEISHU_URL_FREE = "https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=ICzCsC"
|
24
|
-
|
25
21
|
check_token = partial(check_token_for_siliconflow, threshold=0.01)
|
26
22
|
|
27
23
|
MODELS_MAP = {
|
@@ -30,18 +26,39 @@ MODELS_MAP = {
|
|
30
26
|
"mochi-1-preview": "genmo/mochi-1-preview",
|
31
27
|
"ltx-video": "Lightricks/LTX-Video",
|
32
28
|
}
|
29
|
+
"""
|
30
|
+
Wan-AI/Wan2.1-T2V-14B
|
31
|
+
Wan-AI/Wan2.1-T2V-14B-Turbo
|
32
|
+
|
33
|
+
Wan-AI/Wan2.1-I2V-14B-720P
|
34
|
+
Wan-AI/Wan2.1-I2V-14B-720P-Turbo
|
35
|
+
|
36
|
+
16:9 👉 1280×720
|
37
|
+
9:16 👉 720×1280
|
38
|
+
1:1 👉 960×960
|
39
|
+
|
40
|
+
"""
|
33
41
|
|
34
42
|
|
35
|
-
@
|
43
|
+
# @rcache(ttl=0.5 * 24 * 3600, serializer="pickle")
|
36
44
|
async def create_task(request: VideoRequest, token: Optional[str] = None):
|
37
45
|
token = token or await get_next_token_for_polling(FEISHU_URL_FREE, check_token=check_token, from_redis=True)
|
38
46
|
|
47
|
+
if request.image:
|
48
|
+
request.image = await to_base64(request.image)
|
49
|
+
|
50
|
+
if request.model == "Wan-AI/Wan2.1-T2V-14B":
|
51
|
+
request.model = "Wan-AI/Wan2.1-T2V-14B-Turbo"
|
52
|
+
|
53
|
+
elif request.model == "Wan-AI/Wan2.1-I2V-14B-720P":
|
54
|
+
request.model = "Wan-AI/Wan2.1-I2V-14B-720P-Turbo"
|
55
|
+
|
56
|
+
else:
|
57
|
+
request.model = "Wan-AI/Wan2.1-I2V-14B-720P-Turbo" if request.image else "Wan-AI/Wan2.1-T2V-14B-Turbo"
|
58
|
+
|
39
59
|
payload = request.model_dump(exclude_none=True)
|
40
|
-
payload["model"] = MODELS_MAP.get(request.model, "Lightricks/LTX-Video")
|
41
60
|
|
42
|
-
|
43
|
-
payload['prompt'] = (
|
44
|
-
await deeplx.translate(deeplx.DeeplxRequest(text=request.prompt, target_lang="EN"))).get("data")
|
61
|
+
logger.debug(payload)
|
45
62
|
|
46
63
|
client = AsyncOpenAI(
|
47
64
|
base_url=BASE_URL,
|
@@ -49,9 +66,8 @@ async def create_task(request: VideoRequest, token: Optional[str] = None):
|
|
49
66
|
)
|
50
67
|
|
51
68
|
response = await client.post("/video/submit", body=payload, cast_to=object)
|
52
|
-
logger.debug(response)
|
53
|
-
|
54
69
|
task_id = response.get('requestId')
|
70
|
+
|
55
71
|
return TaskResponse(task_id=task_id, system_fingerprint=token)
|
56
72
|
|
57
73
|
|
@@ -66,8 +82,8 @@ async def get_task(task_id, token: str):
|
|
66
82
|
|
67
83
|
data = response.get("results") or {}
|
68
84
|
|
69
|
-
for video in data.get("videos", []):
|
70
|
-
|
85
|
+
# for video in data.get("videos", []):
|
86
|
+
# video["url"] = await to_url_fal(video.get("url"), content_type="video/mp4") # 异步执行
|
71
87
|
|
72
88
|
return TaskResponse(
|
73
89
|
task_id=task_id,
|
@@ -82,11 +98,12 @@ if __name__ == '__main__':
|
|
82
98
|
token = "sk-raapiguffsnsxgkfiwfusjmbpcyqoxhcohhxaybflrnvpqjw"
|
83
99
|
|
84
100
|
request = VideoRequest(
|
85
|
-
model="
|
86
|
-
prompt="这个女人笑起来",
|
101
|
+
model="x",
|
102
|
+
prompt="这个女人笑起来 ",
|
87
103
|
image='https://oss.ffire.cc/files/kling_watermark.png' # 1148f2e4-0a62-4208-84de-0bf2c88f740d
|
88
104
|
)
|
89
|
-
|
105
|
+
|
106
|
+
r = arun(create_task(request))
|
90
107
|
|
91
108
|
# tokens_ = arun(check_token_for_siliconflow(tokens, threshold=0.01))
|
92
109
|
|
@@ -94,9 +111,11 @@ if __name__ == '__main__':
|
|
94
111
|
|
95
112
|
# arun(get_task("fa248aac-00ec-4b00-a2f8-3d6bf1cea6d3", token))
|
96
113
|
# arun(get_task("c716a328-438e-4612-aff2-a669034499cb", token))
|
97
|
-
arun(get_task("1148f2e4-0a62-4208-84de-0bf2c88f740d", token))
|
114
|
+
# arun(get_task("1148f2e4-0a62-4208-84de-0bf2c88f740d", token))
|
98
115
|
|
99
116
|
# token = "sk-oeptckzkhfzeidbtsqvbrvyrfdtyaaehubfwsxjytszbgohd"
|
100
|
-
# arun(get_task(
|
117
|
+
# arun(get_task(r.task_id, r.system_fingerprint))
|
118
|
+
|
119
|
+
# arun(get_task("c6zxjtpsyywj", "sk-lavdsoaybczrfygqdbbqmdgmdktvdztfvwnfmwnbusewjkwb"))
|
101
120
|
|
102
121
|
# arun(create_task(VideoRequest(model="tencent/HunyuanVideo", prompt="a dog in the forest."), token=token))
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : __init__.py
|
5
|
+
# @Time : 2025/3/23 11:06
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.apis.textin_apis.common import Textin
|
12
|
+
|
13
|
+
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : common
|
5
|
+
# @Time : 2025/3/23 11:46
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.io.files_utils import to_bytes, to_url
|
13
|
+
from meutils.caches import rcache
|
14
|
+
|
15
|
+
from meutils.schemas.textin_types import WatermarkRemove, BASE_URL
|
16
|
+
|
17
|
+
from httpx import AsyncClient
|
18
|
+
|
19
|
+
|
20
|
+
class Textin(object):
|
21
|
+
def __init__(self, api_key: Optional[str] = None):
|
22
|
+
# https://www.textin.com/console/dashboard/setting
|
23
|
+
app_id, secret_code = (api_key or os.getenv("TEXTIN_API_KEY")).split("|")
|
24
|
+
|
25
|
+
logger.debug(f"{app_id, secret_code}")
|
26
|
+
|
27
|
+
self.base_url = BASE_URL
|
28
|
+
self.headers = {
|
29
|
+
'x-ti-app-id': app_id,
|
30
|
+
'x-ti-secret-code': secret_code,
|
31
|
+
'Content-Type': "text/plain"
|
32
|
+
}
|
33
|
+
|
34
|
+
@rcache(noself=True, ttl=24 * 3600, serializer="pickle")
|
35
|
+
async def image_watermark_remove(self, request: WatermarkRemove):
|
36
|
+
s = time.perf_counter()
|
37
|
+
|
38
|
+
if not request.image.startswith("http"):
|
39
|
+
request.image = await to_bytes(request.image)
|
40
|
+
# content_type = "application/octet-stream"
|
41
|
+
# logger.info(f"image: {type(request.image)}")
|
42
|
+
|
43
|
+
async with AsyncClient(base_url=self.base_url, headers=self.headers, timeout=100) as cilent:
|
44
|
+
response = await cilent.post("/image/watermark_remove", content=request.image)
|
45
|
+
response.raise_for_status()
|
46
|
+
|
47
|
+
data = response.json()
|
48
|
+
data['timings'] = {'inference': time.perf_counter() - s}
|
49
|
+
|
50
|
+
if request.response_format == "url" and data.get("code") == 200:
|
51
|
+
data["result"]["image"] = await to_url(data["result"]["image"])
|
52
|
+
|
53
|
+
return data
|
54
|
+
|
55
|
+
|
56
|
+
if __name__ == '__main__':
|
57
|
+
# image = "doc_watermark.jpg"
|
58
|
+
|
59
|
+
# image = "https://oss.ffire.cc/files/nsfw.jpg"
|
60
|
+
image = "https://oss.ffire.cc/files/kling_watermark.png" # 无水印
|
61
|
+
|
62
|
+
request = WatermarkRemove(
|
63
|
+
image=image,
|
64
|
+
response_format="url"
|
65
|
+
)
|
66
|
+
arun(Textin().image_watermark_remove(request))
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : utils
|
5
|
+
# @Time : 2025/3/23 11:06
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
|
13
|
+
from openai import AsyncClient
|
14
|
+
|
15
|
+
|
16
|
+
class BaseTextin(object):
|
17
|
+
def __init__(self, api_key: Optional[str]):
|
18
|
+
# https://www.textin.com/console/dashboard/setting
|
19
|
+
app_id, secret_code = api_key or os.getenv("TEXTIN_API_KEY").split("|")
|
20
|
+
|
21
|
+
self.base_url="https://api.textin.com/ai/service/v1"
|
22
|
+
self.headers = {
|
23
|
+
'x-ti-app-id': app_id,
|
24
|
+
'x-ti-secret-code': secret_code
|
25
|
+
}
|
26
|
+
# self.client = AsyncClient(
|
27
|
+
# base_url="https://api.textin.com/ai/service/v1", # /image/watermark_remove
|
28
|
+
# default_headers=headers
|
29
|
+
# )
|
30
|
+
|
31
|
+
|
32
|
+
def image_watermark_remove(self, image):
|
33
|
+
"""
|
34
|
+
|
35
|
+
:param image: text/plain or application/octet-stream
|
36
|
+
:return:
|
37
|
+
"""
|
38
|
+
pass
|
39
|
+
|
40
|
+
|
41
|
+
if __name__ == "__main__":
|
42
|
+
pass
|