MeUtils 2025.3.23.13.35.22__py3-none-any.whl → 2025.3.31.19.40.39__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.
Files changed (34) hide show
  1. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.dist-info}/METADATA +263 -263
  2. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.dist-info}/RECORD +34 -31
  3. examples/_openaisdk/openai_google.py +114 -0
  4. meutils/apis/common.py +12 -10
  5. meutils/apis/dashscope/__init__.py +11 -0
  6. meutils/apis/dashscope/audio.py +37 -0
  7. meutils/apis/images/recraft.py +11 -6
  8. meutils/apis/jina/common.py +3 -2
  9. meutils/apis/siliconflow/videos.py +40 -21
  10. meutils/apis/textin_apis/common.py +5 -3
  11. meutils/caches/common.py +1 -2
  12. meutils/data/VERSION +1 -1
  13. meutils/data/oneapi/NOTICE.html +4 -1
  14. meutils/io/files_utils.py +4 -2
  15. meutils/io/openai_files.py +4 -4
  16. meutils/io/x.py +12 -58
  17. meutils/llm/check_utils.py +2 -2
  18. meutils/llm/clients.py +1 -4
  19. meutils/llm/completions/chat_gemini.py +2 -2
  20. meutils/llm/completions/chat_plus.py +24 -11
  21. meutils/llm/completions/chat_spark.py +4 -2
  22. meutils/llm/completions/deep2x.py +16 -6
  23. meutils/llm/completions/qwenllm.py +37 -35
  24. meutils/llm/completions/yuanbao.py +12 -6
  25. meutils/notice/feishu.py +3 -0
  26. meutils/request_utils/crawler.py +3 -2
  27. meutils/schemas/image_types.py +1 -5
  28. meutils/schemas/oneapi/common.py +49 -8
  29. meutils/schemas/siliconflow_types.py +24 -2
  30. meutils/serving/fastapi/exceptions/http_error.py +29 -9
  31. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.dist-info}/LICENSE +0 -0
  32. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.dist-info}/WHEEL +0 -0
  33. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.dist-info}/entry_points.txt +0 -0
  34. {MeUtils-2025.3.23.13.35.22.dist-info → MeUtils-2025.3.31.19.40.39.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=YAIwIy6huoPAzzCUlPbFhaHpy2HsOeeoXvisxPkUd7g,3129
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
@@ -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=SkoYmZb6KcC12W3AcJCMO5GTY4d38YkS2OUMaJrusQk,3681
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
@@ -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=FHf0jvTRBXlHZrzrrS0MQumqnjtdlu62A2L1a193s6g,70537
386
+ meutils/apis/images/recraft.py,sha256=WHvnzw_qBBBR89KaZsOEHnnukhHlsEa8b5xGJdIeyGQ,70649
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=Eerewy0_3AxSoO5-Zv2wcWbjAlzmnvwK5vnEfQPts-M,1024
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=sYBxrrI5zMr_4_VXDFpjjiISlJNH4o6eIuZgaDnxvB4,3488
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
@@ -464,7 +467,7 @@ meutils/apis/textcard/__init__.py,sha256=akc6silym0NIl0vX7uF8vhHQnt5RhSx50MFw-2o
464
467
  meutils/apis/textcard/demo.py,sha256=-kfVmAjWsbEyUn2a4MljATPtJurrPKKDG3nrZhIhYS0,552
465
468
  meutils/apis/textcard/hanyuxinjie.py,sha256=4-VP7ZfEPPVonqisJO-PkzcJwQFQtNYAA_tz1BE7kqA,2044
466
469
  meutils/apis/textin_apis/__init__.py,sha256=jtxgw3_tTRZCTMbYWP9QMoUo_sgtmWyo9PWC1tHxlKU,297
467
- meutils/apis/textin_apis/common.py,sha256=9i_BQz3vKvuzQ9lZnjtB3yPZLNSxxByEhmBbtxbKA2w,2084
470
+ meutils/apis/textin_apis/common.py,sha256=63uG2AtiDxqz5SpLAt1LpCAA1TRs6LyHjlRqfrwLjHw,2145
468
471
  meutils/apis/textin_apis/utils.py,sha256=sq-qYbuNWJxUGlYPrrcY3xc1gs5jGp0bdbFaHNv3KPY,1065
469
472
  meutils/apis/textin_apis/watermark_remove.py,sha256=VRMi_GQUfZon4X-ehme_3HfSyNj9Qp3TBuF5pO6Gto8,1966
470
473
  meutils/apis/to_image/__init__.py,sha256=-QJwCKB2KsSHAbNhYwv8DKe-gdZoILnufC7SDFdiwIo,271
@@ -507,7 +510,7 @@ meutils/async_utils/common.py,sha256=bfZkUlQz21WHAh2W7SDxFtrvUYNBnRfVxIUgMmT7o1Q
507
510
  meutils/async_utils/test.py,sha256=lkZdgSzzgVg8hYVcaBNEJ3KBvFTEfjbXZVvtknQZsRQ,1155
508
511
  meutils/caches/__init__.py,sha256=hIUEqNnmhukkbKK2F39bXe-MGDwzeUoTOf_sYly53xo,291
509
512
  meutils/caches/acache.py,sha256=ajuQkQUt4ojGEMUNO0IGpJTZKL3tWK0F4pBZU2uxl6g,3198
510
- meutils/caches/common.py,sha256=_Idd2zZA6tDtiHrfmrsB4QwLPQc9Ikiut_3cxkxP5d4,1788
513
+ meutils/caches/common.py,sha256=FSNRgzOZT1N57ZajSzFxfQRjvN0bLMnN4v1TIj0P5p4,1744
511
514
  meutils/caches/redis_cache.py,sha256=oXGk_CZhjp9P_z1TG_zhmma4iGepK-iIWY_ZYQWSkFg,1395
512
515
  meutils/caches/redis_mulit.py,sha256=WQrNmH98S0D9mG5eixqPtrYvOPi62T4w2ZvNETB4eU4,597
513
516
  meutils/clis/__init__.py,sha256=2Fhn43X8kFP6FpAnnAMiPcdnjUwQaukiIr2uGB6mGAY,279
@@ -535,14 +538,14 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
535
538
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
536
539
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
537
540
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
538
- meutils/data/VERSION,sha256=ik_OSVDrYk-NVT78cwGX3Vk7-fBkkdsScFUfL0a61-U,19
541
+ meutils/data/VERSION,sha256=3HFjcC3wTVaH9uu-sYM5MmOOteKI5fB4BvvJN1tWGHE,19
539
542
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
540
543
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
541
544
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
542
545
  meutils/data/coordinate.py,sha256=VbFtcdho0XG4j-rZD0DgqcIf2_LR2LlbLtfhLXbxiDY,600
543
546
  meutils/data/cowboy-hat-face.webp,sha256=AHi2t-WclDVKWgGEe-oZzI4xKACNlgGWUgd622y0K-E,24814
544
547
  meutils/data/oneapi/FOOTER.md,sha256=f_uTlAXtYBZFcVZkPpPxL2m9lvomaYD0NUPT0Yy91Y4,516
545
- meutils/data/oneapi/NOTICE.html,sha256=b0zJ3Hn7GIJ5Zb937syTRpZQQ1iJfDy5LV6OXq2m9xI,361
548
+ meutils/data/oneapi/NOTICE.html,sha256=Sy-b_1z_dE1IWtptORuwqH2yUn3qx5qm7ispEnDkVbE,481
546
549
  meutils/data/oneapi/__init__.py,sha256=qs1T3oB5I_2KYDHYLBQr4qfSgudeIeg1tu5OvjnETFQ,400
547
550
  meutils/data/oneapi/index.html,sha256=SLxEEgxQgN5P2AgOTJf6LrTXY-6_KCxST7-aMh4TEho,9974
548
551
  meutils/db/__init__.py,sha256=HR99rqxoFTWXUHDhLVl33tzIn8M86gigHLmEzOKH1Ec,7637
@@ -582,12 +585,12 @@ meutils/init/evn.py,sha256=GPw9Un8YbgYJmjwd-uYWQ8JeVr6pRxwyYbDv3W8fb1s,1588
582
585
  meutils/init/oo.py,sha256=jXWaCWWFYVPGgTIas47Z3J7sIq-CD7DyK6fKDBsq8GA,12884
583
586
  meutils/io/__init__.py,sha256=uW43ZfdWu7adRvwvcTzUGtn4CseRmbzEJdlZV-oqHEA,2107
584
587
  meutils/io/_openai_files.py,sha256=UIiu6Zg7iSFIn1xIcpLznFlnfCxAJFGuvuPtxvTNHfI,1005
585
- meutils/io/files_utils.py,sha256=WrLVGR0zFueyQKJs8dkPk6h4FoNvU0UfPs-2ujUFXGc,8030
588
+ meutils/io/files_utils.py,sha256=S2d1eYdAHrxE3fgyAyqEV4hb-iCWEHrYDbPaNbJmmyg,8032
586
589
  meutils/io/image.py,sha256=BJmYzx7o66X7C32gOfVmfr5tBRXOi0IYQY7BpGLsGrg,6926
587
590
  meutils/io/minio_utils.py,sha256=i1YuxwDJzLse0smMXuPqnD1wirBBb8psmB_kd1oPoVU,1274
588
- meutils/io/openai_files.py,sha256=wJ-N03Ip4QCyh10uwWEQuqnbvZEys9hEP4ABLybR_DI,5474
591
+ meutils/io/openai_files.py,sha256=3o6uE44Z9DYKvE5ctxMH4y7FUR3eMKVWkJyKG01R1ZA,5703
589
592
  meutils/io/tf_io.py,sha256=vEZZS4pCf4Dt3A-FtIVMfhC3FJUUpQCK2OoEvXrBWos,8605
590
- meutils/io/x.py,sha256=NyDhVhZ9poPPxaK-W5G8qWAnxjZ5NEz-kv32tK8qNvA,2665
593
+ meutils/io/x.py,sha256=jfDFNgZpCa8cDzrfgTZcxw9cm01l7LyFXUUhamSZo0I,702
591
594
  meutils/io/parsers/__init__.py,sha256=h3fRoVBxA5zFx6f-GD7L4UikOVyo0IDEluXL_dQXf4k,244
592
595
  meutils/io/parsers/fileparser/PDF抽取.py,sha256=Xd7VLNB7c3U64bE8A9Fi_LBgaEfsysFniDtFF3rVOMc,1975
593
596
  meutils/io/parsers/fileparser/__init__.py,sha256=BFHAwQAkwuLI1_vy_5g-Kc1xnx1MPmN7D6S83Frmvwo,284
@@ -617,31 +620,31 @@ meutils/jwt_utils/__init__.py,sha256=hU1CYBK90Q9QKVrf1s6VFKZwWjHioHa6bO2AuDn7_eo
617
620
  meutils/jwt_utils/common.py,sha256=MlWDLtxiF-WeRl3oyK94KIa6BKFIXVeJtaQUnpa9ayo,814
618
621
  meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
619
622
  meutils/llm/check_api.py,sha256=Cu60Rvp7zLmmazuLXxpK4z-FCab4NrO4nH5LzfYjjoM,3591
620
- meutils/llm/check_utils.py,sha256=OMRrUrPaIVuXODi-3TCaW5C-XFyq8sE0FDiLvCVpvcM,4917
621
- meutils/llm/clients.py,sha256=FcrMz4B9krbcfc_3kerT6DSL34-8JzjbxF8agOht4oA,2526
623
+ meutils/llm/check_utils.py,sha256=2Z1yY72YtdWk8R9Zjledlx1SBmXUffNOY9R-ozAk6LI,4917
624
+ meutils/llm/clients.py,sha256=1lH1Dc4-GTYXnYrz70XoueSAcMJWVoDH4Y3K04Vb_WI,2271
622
625
  meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
623
626
  meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
624
627
  meutils/llm/utils.py,sha256=4u3b8VO3wX3xKny1AdV4579qXux1YA4k5gI-CYPtx0o,4279
625
628
  meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
626
629
  meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
627
- meutils/llm/completions/chat_gemini.py,sha256=-mvHM6Or1gSnRFk1BgyU0cHxQb8Q1xg0e8BSXmBeR5U,4303
628
- meutils/llm/completions/chat_plus.py,sha256=GOqIhDg6DqgIFDfY5AySUMOIt8O6S9IUasuTYtTCBUQ,7162
629
- meutils/llm/completions/chat_spark.py,sha256=WKXRSCj4Uive95pgPDXcJpQT0tTL0TgFIRY6AQZbYl0,9529
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
630
633
  meutils/llm/completions/chat_videos.py,sha256=P3Yz34dkNlxCxzOuKHJ9pHIA4UXK3Y5RXPzVnQjb9rc,2915
631
634
  meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
632
- meutils/llm/completions/deep2x.py,sha256=e2CXIbwBNI9ck4cLMq-9n9YGOmPQahblaA7vZsS97QE,3333
635
+ meutils/llm/completions/deep2x.py,sha256=Fo5cC1jXOFFXOZeRGk9IpCZVCQc8vgOizuYFuPaWujA,3746
633
636
  meutils/llm/completions/delilegal.py,sha256=mr53ps7I33SC8Fjy4rma-xoNF-mLgwdZfHgdSOyLtQY,5131
634
637
  meutils/llm/completions/dify.py,sha256=dqL_8uxAp2d8M00pkyh2I30tflwi4pUyX-V6pwe3_BA,3048
635
638
  meutils/llm/completions/kimi.py,sha256=TSkLObebIAb_oivOMq3aKx9qoXcMy611_g2yIKex9eo,1541
636
639
  meutils/llm/completions/modelscope.py,sha256=umPlJuHSL2RR0oNdTIAqts8iqEmGp_MR6Vh49g-UZuc,271
637
- meutils/llm/completions/qwenllm.py,sha256=9fTIqtdS4ahPcNqi61YQspVnV2AZlfNU9wiq65QaMpo,10421
640
+ meutils/llm/completions/qwenllm.py,sha256=ii1oucy2YXhCuLoWSsuZa7cPFRc0fanYdfQsdeZGDpk,10441
638
641
  meutils/llm/completions/rag.py,sha256=cpQ1aZX2QI1QDfFpODTxWHPYglK6_3qrlUM_KHLBNhc,1112
639
642
  meutils/llm/completions/reasoner.py,sha256=rPIxW1iuvLuGhcOa6PkfcJmrTKtJV-8wRKfA09X09tg,6169
640
643
  meutils/llm/completions/tryblend.py,sha256=NfVRktn1QiE2k60PzEI-LmKuxZCc7mtL_KlsrVcZg4k,8957
641
644
  meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb_E,10138
642
645
  meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,630
643
646
  meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M,1646
644
- meutils/llm/completions/yuanbao.py,sha256=1LAZJ5SnrEomoPS3vD6o6VedrSVscKoJOi_lUzBcEPk,7203
647
+ meutils/llm/completions/yuanbao.py,sha256=8jU0_KRLqaUb3xXabIclSo3-z0f0qSJ1Gx3_LoMIoh8,7577
645
648
  meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
646
649
  meutils/llm/completions/agents/search.py,sha256=GKsk0NRy6jsbSu8E9mdBWObJzroGE-L7Iuo5W2MK_u0,5057
647
650
  meutils/llm/completions/assistants/__init__.py,sha256=1QWMIG5dA2wH7550ZdNpW00NPU9q8C-eXybjTsm1aSU,271
@@ -665,7 +668,7 @@ meutils/logging/log_utils.py,sha256=Sa5-Y4fWNTKQw2fIb1dbPgOypl6S6m7EOrbciSqEt5A,
665
668
  meutils/logging/logger.py,sha256=-J_tWYfAvPhSTshVWIiN-6zTZnjkFuwDfMtxUtuNkuY,6183
666
669
  meutils/notice/__init__.py,sha256=BVbcBx4ks-BH_63gEcjMxL67oX1_aWdaM8r3TDo8Ogg,248
667
670
  meutils/notice/emails.py,sha256=TvC1xv3MpFC2HU0lTQW5SmNuj7UMlgjpsUImMp9jKOw,2403
668
- meutils/notice/feishu.py,sha256=2SbEH5OC9fnqbmmCUyg6UtfWwRa4NNvLcEv0gyMGhys,3714
671
+ meutils/notice/feishu.py,sha256=1ANhOfuhabSXduqeO0zNe4ai5kizDAYYWLCXKhcHihQ,3911
669
672
  meutils/notice/file_post.py,sha256=KQ8iQUM30vF7T6ZZPahdLps4dLXK2s3nzdFYbty6M5E,953
670
673
  meutils/notice/load_emailfile - 副本.py,sha256=f-Kq3UKZut_P0bmumV1y4PXuPtatjl-5SLUH5LShBUY,7331
671
674
  meutils/notice/wechat.py,sha256=-HU5oSvpZrVnjjU76ky7_j0yg5ivn5mIlJ7JJVtlrnY,4082
@@ -734,7 +737,7 @@ meutils/queues/uniform_queue.py,sha256=fKZw-xc9RBY0VoN6uRwQWEds8o5U0nxBz7SQhAVzq
734
737
  meutils/request_utils/__init__.py,sha256=wqP3vkDJ2wFMawvx4XyT-5pNf-Jr81PYTQ14FCcG-Pw,4053
735
738
  meutils/request_utils/ark.py,sha256=n7U89XlESpVJ-gErJIi1fvslkULLJEjAQQoEORGusr4,1012
736
739
  meutils/request_utils/a爬虫.py,sha256=PTsl0RuNB7IByErMpGZj5WwSZeHBRR53YqRNx1J0_EU,1894
737
- meutils/request_utils/crawler.py,sha256=GBcwoW0FHajpslF0suziAlfGcj-DsIkkKBLquFvDGe4,2342
740
+ meutils/request_utils/crawler.py,sha256=7asGv3cDg2JVN8-cI_T078Hif-RSEBFjEE7HC38ED7I,2419
738
741
  meutils/request_utils/download.py,sha256=qFGt79Jp1f8n681x0kHWN3S70E-l46PlM2xqSdUDNm8,1767
739
742
  meutils/request_utils/results.py,sha256=i422B66FHc7fzAyyORpQEkO0QO_dk38d1K0i8XYuixk,1334
740
743
  meutils/request_utils/tiangong.py,sha256=l5t4pAWxxYvFxvyo-jJ-R6efKWMHjYPiPjrPUGMZLiU,3057
@@ -756,7 +759,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
756
759
  meutils/schemas/hailuo_types.py,sha256=lZ3Q07QNgxJvrX8JJvalxUsro4gGLOMQDusSEwV4EO0,7429
757
760
  meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
758
761
  meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
759
- meutils/schemas/image_types.py,sha256=Ev7Oe1FgUEjxeLJ4tFnovSqqeS0nh_0wLpBNZW_yImw,13063
762
+ meutils/schemas/image_types.py,sha256=QYXYRqYNiF-9gKvTOg8eLaNd2rLsvsqT83Zf1JEQyTU,12950
760
763
  meutils/schemas/jimeng_types.py,sha256=_fROFicbaqP8Bbg6V1vhIOXfrzp9WrxWHbCDCNzYCHU,977
761
764
  meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
762
765
  meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
@@ -776,7 +779,7 @@ meutils/schemas/prodia_types.py,sha256=knh_lzAxMfWMoqAPmvyMweay9PmQmsoQ1X6Mj17oh
776
779
  meutils/schemas/replicate_types.py,sha256=Todfo-y2Gq1MW8IyEmzz_ZlTxuQ3PvIfiF0KkrmJaYw,3160
777
780
  meutils/schemas/request_types.py,sha256=GP2radX2Ixjbu8NDKihUsrSOft6WgcFYd7LXxM4mPY0,407
778
781
  meutils/schemas/runwayml_types.py,sha256=q6g00kg1PYCDjpw-notgbcUGwRAlIa8kAmU52ZuXyLQ,6128
779
- meutils/schemas/siliconflow_types.py,sha256=a8SOf-bh5ZBddqsCqJNPFfw9olxk-bD_ySqTr8d0aZw,8597
782
+ meutils/schemas/siliconflow_types.py,sha256=KClkwA2huq8YKuUCYIJZ4RF94ALhy3BsOMF1FcqRO1A,9266
780
783
  meutils/schemas/step_types.py,sha256=nGTPXZ7RwOF2RTsPBQguLLcIaBxHs4bsZkYa_LalcJ0,648
781
784
  meutils/schemas/suno_types.py,sha256=CxEXHGnLGZ7xvmoIYpz7IYPL73aLjtpHezJRIjWryKs,14965
782
785
  meutils/schemas/task_types.py,sha256=Zjbn6AiopkPA3px2ZiMouU9QrL43p9O8bJB5OTI-O_4,4638
@@ -792,7 +795,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
792
795
  meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
793
796
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
794
797
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
795
- meutils/schemas/oneapi/common.py,sha256=fSOp_iW6-Ahhrp7wdzPZNj-TOfxNmp8a5wX8FDCX87s,31533
798
+ meutils/schemas/oneapi/common.py,sha256=RU2gzPNjnYVTiV_rQuluVTA_lz2dbsHy9h7q9XR2j8E,32388
796
799
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
797
800
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
798
801
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -820,7 +823,7 @@ meutils/serving/fastapi/dependencies/__init__.py,sha256=shI1EgfH4gFuajmHGlzt_Ard
820
823
  meutils/serving/fastapi/dependencies/auth.py,sha256=4L2wa1X6tftJdIJsgGvebKL8IPGuL_4U6-7gY2uXxL0,1872
821
824
  meutils/serving/fastapi/dependencies/headers.py,sha256=QHsWn8w_9f4_WoYTAOJzzb38FVQdRgbNATLdChWaVGg,916
822
825
  meutils/serving/fastapi/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
823
- meutils/serving/fastapi/exceptions/http_error.py,sha256=N_sgX9uEA77nmTfLYZU7o-vUZwrDK8Uvjyqf7FSxr2I,2065
826
+ meutils/serving/fastapi/exceptions/http_error.py,sha256=b3aG6mJCSefWPA1K6AX49pkAs31MRhuDIZkq9DLiTW0,2573
824
827
  meutils/serving/fastapi/exceptions/validation_error.py,sha256=Q71wYfzGsVjLA-SQ3R5a8iT0kDG01mwriVUXHhvsTv0,1234
825
828
  meutils/serving/fastapi/routers/__init__.py,sha256=F473oGpbMmCFMbnfuk9MKyO30ke-YvP7AR5jhsnxjNg,270
826
829
  meutils/serving/fastapi/routers/_test.py,sha256=FgymiRBXz_EEerTc4V7aY9iTUZ1u0qZSTqhdQMg2Or4,546
@@ -921,9 +924,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
921
924
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
922
925
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
923
926
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
924
- MeUtils-2025.3.23.13.35.22.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
925
- MeUtils-2025.3.23.13.35.22.dist-info/METADATA,sha256=PlmVhJUlpUf95RM-Ow332Wv5kNkU-cNPPMAzvmIMP60,32834
926
- MeUtils-2025.3.23.13.35.22.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
927
- MeUtils-2025.3.23.13.35.22.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
928
- MeUtils-2025.3.23.13.35.22.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
929
- MeUtils-2025.3.23.13.35.22.dist-info/RECORD,,
927
+ MeUtils-2025.3.31.19.40.39.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
928
+ MeUtils-2025.3.31.19.40.39.dist-info/METADATA,sha256=eNCBztDEs7jzsV3eoR8EzLbR9MC0XSGxwolESlTzJLk,32834
929
+ MeUtils-2025.3.31.19.40.39.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
930
+ MeUtils-2025.3.31.19.40.39.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
931
+ MeUtils-2025.3.31.19.40.39.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
932
+ MeUtils-2025.3.31.19.40.39.dist-info/RECORD,,
@@ -0,0 +1,114 @@
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
+ from meutils.schemas.openai_types import ChatCompletionRequest
16
+ from meutils.llm.openai_utils import to_openai_completion_params
17
+
18
+
19
+ client = OpenAI(
20
+ api_key=os.getenv("GOOGLE_API_KEY"),
21
+ base_url=os.getenv("GOOGLE_BASE_URL"),
22
+ )
23
+
24
+ print(client.models.list().model_dump_json(indent=4))
25
+
26
+ # {
27
+ # "gemini-2.0-pro-exp": "models/gemini-2.0-pro-exp",
28
+ # "gemini-2.0-pro-exp-02-05": "models/gemini-2.0-pro-exp-02-05",
29
+ # "gemini-2.5-pro-exp-03-25": "models/gemini-2.5-pro-exp-03-25",
30
+ # "gemini-2.0-flash-thinking-exp": "models/gemini-2.0-flash-thinking-exp",
31
+ # "gemini-2.0-flash": "models/gemini-2.0-flash"
32
+ #
33
+ # }
34
+
35
+
36
+ if __name__ == '__main__':
37
+
38
+
39
+ data = {
40
+ "model": "models/gemini-2.0-flash",
41
+ "messages": [
42
+ {
43
+ "role": "user",
44
+ "content": "hi"
45
+ }
46
+ ],
47
+ "stream": False,
48
+ "stream_options": None,
49
+ "top_p": 0.7,
50
+ "temperature": 0.7,
51
+ "n": 1,
52
+ "max_tokens": 10,
53
+ "stop": None,
54
+ "presence_penalty": 0.0,
55
+ "frequency_penalty": None,
56
+ "user": None,
57
+ "response_format": None,
58
+ "function_call": None,
59
+ "functions": None,
60
+ "tools": None,
61
+ "tool_choice": None,
62
+ "parallel_tool_calls": None,
63
+ "system_messages": [],
64
+ "last_content": "hi",
65
+ "urls": [],
66
+ "system_fingerprint": "🔥"
67
+ }
68
+
69
+ request = ChatCompletionRequest(**data)
70
+
71
+ data = to_openai_completion_params(request)
72
+ if 'gemini' in request.model:
73
+ data.pop("extra_body", None)
74
+
75
+ print(bjson(data))
76
+
77
+ try:
78
+ completion = client.chat.completions.create(**data)
79
+ # completion = client.chat.completions.create(
80
+ # # model="models/gemini-2.5-pro-exp-03-25",
81
+ # model="models/gemini-2.0-flash-thinking-exp",
82
+ # # model="models/gemini-2.0-flash-exp-image-generation",
83
+ # messages=[
84
+ # {"role": "user", "content": "hi"}
85
+ #
86
+ # # {
87
+ # # "role": "user", "content": [
88
+ # # {
89
+ # # "type": "text",
90
+ # # "text": "9.8 9.11哪个大"
91
+ # # }
92
+ # # ]
93
+ # # }
94
+ #
95
+ # ],
96
+ # # top_p=0.7,
97
+ # top_p=None,
98
+ # temperature=None,
99
+ # # stream=True,
100
+ # stream=False,
101
+ #
102
+ # max_tokens=None,
103
+ # )
104
+ except APIStatusError as e:
105
+ print(e.status_code)
106
+
107
+ print(e.response)
108
+ print(e.message)
109
+ print(e.code)
110
+ print(completion)
111
+ for chunk in completion: # 剔除extra body
112
+ print(chunk)
113
+ if chunk.choices:
114
+ 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
- # "https://api.isoyu.com/qr/?m=1&e=L&p=8&url={}",
104
- # "https://my.tv.sohu.com/user/a/wvideo/getQRCode.do?text={}",
105
- # "https://api.qrserver.com/v1/create-qr-code/?data={}",
106
- "https://api.qrserver.com/v1/create-qr-code/?size=500×500&data={}",
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,11 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : __init__.py
5
+ # @Time : 2025/3/23 16:07
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
@@ -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
@@ -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/prompt_to_image", params=params, json=payload)
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"]
@@ -150,11 +155,11 @@ if __name__ == '__main__':
150
155
  **data
151
156
  )
152
157
  # token = None
153
- with timer():
154
- arun(generate(request, token=token))
158
+ # with timer():
159
+ # arun(generate(request, token=token))
155
160
 
156
161
  # tokens = [token]
157
162
  #
158
- # tokens = list(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0]) | xfilter_
159
- # #
160
- # r = arun(check_token(tokens))
163
+ tokens = list(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0]) | xfilter_
164
+ #
165
+ r = arun(check_token(tokens))
@@ -16,11 +16,11 @@ from meutils.caches import cache, rcache
16
16
 
17
17
 
18
18
  @retrying()
19
- @rcache(ttl=300)
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.redis_cache import cache
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
- @cache(ttl=7 * 24 * 3600)
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
- if payload["model"] in {"genmo/mochi-1-preview", "Lightricks/LTX-Video"}: # 中文不友好
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
- video["url"] = await to_url_fal(video.get("url")) # 异步执行
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="Lightricks/LTX-Video",
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
- # tokens = config_manager.text.split()
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("5ea22f57-45f0-425c-9d1e-bf3dae7e1e81", token))
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))
@@ -22,6 +22,8 @@ class Textin(object):
22
22
  # https://www.textin.com/console/dashboard/setting
23
23
  app_id, secret_code = (api_key or os.getenv("TEXTIN_API_KEY")).split("|")
24
24
 
25
+ logger.debug(f"{app_id, secret_code}")
26
+
25
27
  self.base_url = BASE_URL
26
28
  self.headers = {
27
29
  'x-ti-app-id': app_id,
@@ -29,7 +31,7 @@ class Textin(object):
29
31
  'Content-Type': "text/plain"
30
32
  }
31
33
 
32
- @rcache(ttl=24 * 3600, serializer="pickle")
34
+ @rcache(noself=True, ttl=24 * 3600, serializer="pickle")
33
35
  async def image_watermark_remove(self, request: WatermarkRemove):
34
36
  s = time.perf_counter()
35
37
 
@@ -54,8 +56,8 @@ class Textin(object):
54
56
  if __name__ == '__main__':
55
57
  # image = "doc_watermark.jpg"
56
58
 
57
- image = "https://oss.ffire.cc/files/nsfw.jpg"
58
- # image = "https://oss.ffire.cc/files/kling_watermark.png" # 无水印
59
+ # image = "https://oss.ffire.cc/files/nsfw.jpg"
60
+ image = "https://oss.ffire.cc/files/kling_watermark.png" # 无水印
59
61
 
60
62
  request = WatermarkRemove(
61
63
  image=image,
meutils/caches/common.py CHANGED
@@ -16,7 +16,7 @@ from aiocache import cached, Cache, RedisCache, caches
16
16
  cache = memory_cache = cached
17
17
 
18
18
 
19
- def rcache(noself: bool = True, **kwargs):
19
+ def rcache(**kwargs):
20
20
  """serializer="pickle"
21
21
  :param endpoint: str with the endpoint to connect to. Default is "127.0.0.1".
22
22
  :param port: int with the port to connect to. Default is 6379.
@@ -42,7 +42,6 @@ def rcache(noself: bool = True, **kwargs):
42
42
  cache=RedisCache,
43
43
  **connection_kwargs,
44
44
 
45
- noself=noself,
46
45
  **kwargs
47
46
  )
48
47
 
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.03.23.13.35.22
1
+ 2025.03.31.19.40.39