MeUtils 2025.2.14.14.14.57__py3-none-any.whl → 2025.2.20.17.30.7__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 (35) hide show
  1. MeUtils-2025.2.20.17.30.7.dist-info/METADATA +707 -0
  2. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/RECORD +34 -29
  3. examples/_openaisdk/_openai_chatfire.py +42 -0
  4. examples/_openaisdk/openai_chatfire.py +8 -3
  5. examples/_openaisdk/openai_gitee.py +7 -4
  6. examples/_openaisdk/openai_images.py +5 -2
  7. meutils/apis/fal/images.py +83 -19
  8. meutils/apis/fal/pd.py +13 -0
  9. meutils/apis/fal/videos.py +31 -12
  10. meutils/apis/images/edits.py +4 -2
  11. meutils/apis/images/recraft.py +9 -6
  12. meutils/apis/jimeng/common.py +14 -3
  13. meutils/apis/jimeng/images.py +16 -6
  14. meutils/apis/kling/api.py +7 -5
  15. meutils/apis/search/zhipu.py +80 -0
  16. meutils/apis/siliconflow/images.py +17 -15
  17. meutils/apis/vidu/vidu_video.py +2 -1
  18. meutils/caches/acache.py +1 -1
  19. meutils/data/VERSION +1 -1
  20. meutils/decorators/contextmanagers.py +47 -4
  21. meutils/io/files_utils.py +1 -1
  22. meutils/llm/check_utils.py +4 -2
  23. meutils/llm/completions/agents/search.py +1 -0
  24. meutils/llm/completions/gemini.py +69 -0
  25. meutils/llm/prompts/search_prompts.py +18 -0
  26. meutils/schemas/image_types.py +4 -1
  27. meutils/schemas/oneapi/common.py +14 -11
  28. meutils/schemas/vidu_types.py +16 -2
  29. meutils/str_utils/json_utils.py +1 -0
  30. meutils/str_utils/regular_expression.py +7 -2
  31. MeUtils-2025.2.14.14.14.57.dist-info/METADATA +0 -203
  32. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/LICENSE +0 -0
  33. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/WHEEL +0 -0
  34. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/entry_points.txt +0 -0
  35. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/top_level.txt +0 -0
@@ -72,6 +72,7 @@ examples/Time-Extractor/setup.py,sha256=ENYhj1_uJ7z_F3jrz8FR8w5u2SEXrZpl5GXEELUy
72
72
  examples/Time-Extractor/resource/__init__.py,sha256=0HHkZVghckIg5LkGMziooZ8TUqfSQFA6j62BN9KyFp0,91
73
73
  examples/_openaisdk/4v.py,sha256=UduqYzSfxzoiGQkX803DmNEzC7THOjIO0F9L9F_OzF0,3489
74
74
  examples/_openaisdk/__init__.py,sha256=5TNibGR-ETncXVWoevqYJ0m2yo1GOxRx3hSu2qWAQNo,271
75
+ examples/_openaisdk/_openai_chatfire.py,sha256=i7nei_-1eq3W8eUxGK6_BsR_1flw3-wJuc-uHkFCwDo,907
75
76
  examples/_openaisdk/baichuan.py,sha256=xmNFc64T02r9wE0VSOG0B21wJJmlrecKVVCelhs2Dt4,890
76
77
  examples/_openaisdk/bpo.py,sha256=7Jw16TiKFEQvYbt4g-h7QimLBw7xY49w1MthT5OwcTM,5267
77
78
  examples/_openaisdk/chat_latex.py,sha256=FzVSvmG988GRItUg1Uga-L3dZseZW76LCvngHqRedD8,2939
@@ -94,7 +95,7 @@ examples/_openaisdk/openai_audio.py,sha256=ZyYslH9RfdJBpNUpjKn_5x0d94_H291Qt31u_
94
95
  examples/_openaisdk/openai_baichuan.py,sha256=-xhHovkFmWOTX25CJjIon0my-ocmwfAZJu1C0eS80Xs,1614
95
96
  examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_46IabY,1969
96
97
  examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
97
- examples/_openaisdk/openai_chatfire.py,sha256=Zxp3J3fq24CvNB44b76Es6Ylb-lAyilCmw2Rcgh-Wo0,18824
98
+ examples/_openaisdk/openai_chatfire.py,sha256=XzjwZszk2w-HUaWFRgpfOI184MhF7U-mvQsX8Gp0cSc,18905
98
99
  examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
99
100
  examples/_openaisdk/openai_dashscope.py,sha256=m9SjQpaNgYwr4Qd3XusWbJBGp5ZTtpuB40QopejxPKQ,1029
100
101
  examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
@@ -103,10 +104,10 @@ examples/_openaisdk/openai_doubao.py,sha256=IKM929LKgYm2fXbCIvuX4ZPpUkm2igcdhJuj
103
104
  examples/_openaisdk/openai_embeddings.py,sha256=2hV3o9PbelIW5mCDh_PYvntaeI-hyuaFRgnzC6sWJo4,869
104
105
  examples/_openaisdk/openai_ep.py,sha256=cAaeyC8Lstk1MB36c4h7X9n7EnEnY7rr2Tugo_diT3M,726
105
106
  examples/_openaisdk/openai_files.py,sha256=gfUbKGZg5P7c3kSMfwalIThi_SEs8O-JTqx49bYFtyM,1505
106
- examples/_openaisdk/openai_gitee.py,sha256=8paPl2nz4ER_2lWlqAbAcvtcV-Vuu88p5ALckyvSFec,1140
107
+ examples/_openaisdk/openai_gitee.py,sha256=UQEJMQMQDhgqYzo_aYetYXnBmVtqRwIweJDDK3NlSMw,1205
107
108
  examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp797A,1056
108
109
  examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
109
- examples/_openaisdk/openai_images.py,sha256=mJQGbue_ka9kjsNx1TRfIRab9HgC0h5i0O_6U7kxb_c,5676
110
+ examples/_openaisdk/openai_images.py,sha256=yDkbKVl_4PYhV1D2idMP8HQ69ZGQ_2Zu4kA0TCHw72s,5740
110
111
  examples/_openaisdk/openai_json.py,sha256=M4tq_IkzYbmtgbFilGQHmRdJhH0OltiwGk7cK7uc-sQ,1850
111
112
  examples/_openaisdk/openai_kindo.py,sha256=dRQd8BOUDlWo4xp2l1s3BeP7qv19i7CUjx14NRv1fxM,741
112
113
  examples/_openaisdk/openai_lingyi.py,sha256=l2GcNxhwfLv7MfMF-cdRWGGvX-dRaZyb8IRlXLPACMw,1834
@@ -346,9 +347,10 @@ meutils/apis/chatglm/temp.py,sha256=zYe6JGUHVfb77T_TdNsdmpTs2D9OyqDTUEkblDAIoYY,
346
347
  meutils/apis/chatglm/x.py,sha256=lI86Cd6SN4noCN5HM9gRugcVmjHDtxDTV4m-7Bj61N0,24312
347
348
  meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
348
349
  meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
349
- meutils/apis/fal/images.py,sha256=o4kgiLyzhRTBidnkcaEKXjAwd2KdPMTkfCfILnkF_bY,1819
350
+ meutils/apis/fal/images.py,sha256=7Ov8ihUxk3z1g1hRtTbpoCYQq1L6fz5KyVgbHswqeIo,7079
350
351
  meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
351
- meutils/apis/fal/videos.py,sha256=MKv7BCprGpEiydFhBq3uHrKqNC7AS_xv9daBEoNTogs,2422
352
+ meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
353
+ meutils/apis/fal/videos.py,sha256=GzMyS-nBMGAXHaCLKxgCdzowB3jpJDXLb6-y1v0zKNo,3387
352
354
  meutils/apis/gitee/__init__.py,sha256=rmAktsUvEtk7_F28P5C65wuu00nmrbu5bOw6PiCRTS0,271
353
355
  meutils/apis/gitee/色情图片识别.py,sha256=liCftD7sL6Fw4Aq6r1PY-qxsxm5XkgVdDvlDR39lrEU,757
354
356
  meutils/apis/gitee/images/__init__.py,sha256=zvS8e0ogQLqajZTAype1e0TDLJenlfbRQ16FjSYpxbY,243
@@ -374,9 +376,9 @@ meutils/apis/hunyuan/image_tools.py,sha256=jJ652uKakJaFjqBN8oy---GEI_u5ttAob55rm
374
376
  meutils/apis/images/__init__.py,sha256=hs7HUJZvw_3DAtoapPnbZsEb4ng1p0a6fJGFFWwUcUk,272
375
377
  meutils/apis/images/deepinfra.py,sha256=lMqfU0LIXEzHiAS31dCcoTnPIE6tpoDJhq61H0TVJPg,3219
376
378
  meutils/apis/images/demo.py,sha256=Cjk-EKMKbp44czykW_44qR0TzElX8nNCALqXBBw5sJA,4405
377
- meutils/apis/images/edits.py,sha256=sZ_Foem2gubgdJdLe1uSMhl6sYnNICXLGL70aYMX_Mo,9773
379
+ meutils/apis/images/edits.py,sha256=dY5kjUxMzRLeUTLdwxBLtGDTn_cdgeJo3UFahE7536Q,9798
378
380
  meutils/apis/images/eidt.py,sha256=42dCdGPSLvr0zh8OZtwQxi-5B6Ln_o_FsL1gt2Ura_k,750
379
- meutils/apis/images/recraft.py,sha256=ZdlDPFTmQBma9ToeBN44mNPISOP0-hXsmSgM6DyP1Ko,59625
381
+ meutils/apis/images/recraft.py,sha256=bD1THR_X4CRl39P8hKzfmoLjTcDTC15niJxto-Ves_4,59474
380
382
  meutils/apis/images/flux/__init__.py,sha256=W_PZabQm6EmtJYmzEiEpL_WCXTAW0AiJ-t_n5UTrE8c,271
381
383
  meutils/apis/images/flux/fluxpro.py,sha256=NFl9t9C3R3jsNJpez4o9tOz3r-fjRXj-vKMxCSTRDTU,4022
382
384
  meutils/apis/images/flux/mystic.py,sha256=cUkqaMAbd3dSBCvFEoNBBoEoWCGzvBJWPEkEq1Q8xzw,3616
@@ -390,14 +392,14 @@ meutils/apis/jiema/24mail.py,sha256=GUszRtoDe3T9q-X4embwT5YhcjgQ3XnkTJMKX93sCF4,
390
392
  meutils/apis/jiema/__init__.py,sha256=YBybggoDRYCNYcwJOypxR7MzfTjIhqO7BkGlTt7NDo4,271
391
393
  meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
392
394
  meutils/apis/jimeng/__init__.py,sha256=a8CE_cOl9jqal0hycwaLm4Mnga8jmZlz9nCze_9bBqA,272
393
- meutils/apis/jimeng/common.py,sha256=o6qMyic9jbgD_tmOcGDPn9tcOctMyLP9Y3XW5rIwsZs,6093
395
+ meutils/apis/jimeng/common.py,sha256=QDm39IiGts1BujL0B6BxW61zN9YytINrAItz5PyBtO0,6551
394
396
  meutils/apis/jimeng/doubao.py,sha256=5OdnBpmZQOCLIb6lnN8YrL7J7E0XF47q0UF-z6asSuI,4295
395
397
  meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
396
398
  meutils/apis/jimeng/files.py,sha256=afwWvN6gSRjBGVMjV3CMpMwnuJ1cAVYBiFc6wamc570,9547
397
- meutils/apis/jimeng/images.py,sha256=dAEL-lanpm9Q38KBkfwGDCP04AJ50sf13TxGWpUZSIA,11528
399
+ meutils/apis/jimeng/images.py,sha256=9eMenb4M0_Q3ok_i692KiwfVRUzOC2lCc3Dd_zYn03s,11872
398
400
  meutils/apis/jimeng/videos.py,sha256=x-PDOYNBN-yTmNvMbyDbwm_E2LXZ6A4hcVzEahV_Hvc,10813
399
401
  meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
400
- meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
402
+ meutils/apis/kling/api.py,sha256=FXdBH2eyzMED2hvgd5uVy7s1ZIfTF5gMEoc0Sf62C0o,2328
401
403
  meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
402
404
  meutils/apis/kling/kolors_virtual_try_on.py,sha256=iF_eyiofOQthUedl_u8H_u5mQ1CcisDqWSe2x9aiNQ4,3935
403
405
  meutils/apis/kling/kolors_virtual_try_on_web.py,sha256=UNjr-T9waujh2Gg8SSmnlfP3wXsZeYsDdWMabRQaP1E,3951
@@ -440,10 +442,11 @@ meutils/apis/search/metaso.py,sha256=B1i81F5meBLd6ZWDBZb8l0GT1THKL9Qm7hKwmHYTNMA
440
442
  meutils/apis/search/metaso_.py,sha256=PqMX3FLYbbAcc9qpqrPZ58LuSF29h0asZO1XMYmXbes,3144
441
443
  meutils/apis/search/n.py,sha256=o7jzNoR5v_nAjgdUvWgebL3nvvo3ECpq2KCj9YhUNr4,4337
442
444
  meutils/apis/search/searxng.py,sha256=RBPeq-AYj5D42gROrZNg0SxIWwWEW0oqrbQ3wEDH9k8,951
445
+ meutils/apis/search/zhipu.py,sha256=9Y7oS0G-mptyFifd8HjCPx3I5ZX1jhtiQb6b611oBRg,2599
443
446
  meutils/apis/siliconflow/__init__.py,sha256=DQ-A6wAWGna49pmyGhcIWgc2zx6TN9DfQmSUdAW7qjk,241
444
447
  meutils/apis/siliconflow/audio.py,sha256=pk1OROATtAURPQ6VkswmR5gJFOFYJJPnjp-boDAf8X0,2017
445
448
  meutils/apis/siliconflow/image_to_image.py,sha256=EnoT8p2IS35XGZ0ivFKTBII3b_iIG9NR_Ae2nOA-orc,89442
446
- meutils/apis/siliconflow/images.py,sha256=zdiXL6drHWQjZoGs8q79h-gkjj4o2jTyUgaV8tq35ow,6548
449
+ meutils/apis/siliconflow/images.py,sha256=Ni6JsXIGrnslF5ft5UBnhngT9bQFiix00W5J-IUNmbQ,6609
447
450
  meutils/apis/siliconflow/rerankers.py,sha256=GuKT33MmAiVULqNaAO9IIy1Zp570-kYJ6xP03eLCp5Y,1259
448
451
  meutils/apis/siliconflow/text_to_image.py,sha256=ZSyvCF_CfH6pV4BXM4TJjmQiu2x4nF197GliDddWI8Q,4458
449
452
  meutils/apis/siliconflow/utils.py,sha256=uPpJVgqVmTzTN0LuHWliTWaf1rzneNyA-mELwwrUbdQ,2092
@@ -470,7 +473,7 @@ meutils/apis/uptime_kuma/国产分组.py,sha256=OIiUUFfjWEEJHg5fr8Vf5xSBWkbXboQ4
470
473
  meutils/apis/videos/__init__.py,sha256=OCykr_XRIOH18Xh5hfBq5yMxbk8e9Myk4KuAtrtgAWw,272
471
474
  meutils/apis/videos/sora.py,sha256=G3wGlvTYl4YfG20L2HXPhmhZ4HwrlIFSU-KYM-TdALg,295
472
475
  meutils/apis/vidu/__init__.py,sha256=8nQN-RiZGJlZaZGVFbtHgK57_Ml5g_vFCiOImWwBm0I,242
473
- meutils/apis/vidu/vidu_video.py,sha256=ecBAwwzCQ6efOezNzVF_lbb1dNa0jvCd_8jANjRGs4c,18189
476
+ meutils/apis/vidu/vidu_video.py,sha256=Mg0012QgwNgsAiO-sfPu-ypmjsZ1lLamgCJhkc6ICOQ,18266
474
477
  meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
475
478
  meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
476
479
  meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81oNbTS0mY,307
@@ -493,7 +496,7 @@ meutils/async_utils/background.py,sha256=dl6UaMIFBZDB1uxSZzGFJdSnpt3Xo0flK7gwsok
493
496
  meutils/async_utils/common.py,sha256=bfZkUlQz21WHAh2W7SDxFtrvUYNBnRfVxIUgMmT7o1Q,5212
494
497
  meutils/async_utils/test.py,sha256=lkZdgSzzgVg8hYVcaBNEJ3KBvFTEfjbXZVvtknQZsRQ,1155
495
498
  meutils/caches/__init__.py,sha256=2JSElkhHh0vhUCvpBhTEsglw7WdkYj2HsAQutbqiBUM,242
496
- meutils/caches/acache.py,sha256=sNB-W0S6yYINGJFyZ09k_bZrXqkH9e3WxnBq-lPwHtw,1329
499
+ meutils/caches/acache.py,sha256=lXY0OrbcRw8P0GOX9vLx7CNY4x9xntsbTebLsWFHvpU,1321
497
500
  meutils/caches/c.py,sha256=9hm9x_xMRGtqG51SirOS3Pzi2L9zxU_nov4muE5iJ48,699
498
501
  meutils/caches/demo.py,sha256=tY3mJUe4D2gbBVMd8gny40nK2BwqBGsaWDjDJsL7ObE,758
499
502
  meutils/caches/redis_.py,sha256=5Oxq_XT5BJ7C9emzsXWDkiY4p8dVG7XFn0WxB14-z5E,600
@@ -524,7 +527,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
524
527
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
525
528
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
526
529
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
527
- meutils/data/VERSION,sha256=M1uOiVGOeVMyztUDp_CURRI5yy5_ytlPxADyG7pxlw0,19
530
+ meutils/data/VERSION,sha256=MATCAeAuTl9yvwfHw0LmJyDbHMphjlmIaIyb2qBLWhk,19
528
531
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
529
532
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
530
533
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -543,7 +546,7 @@ meutils/decorators/__init__.py,sha256=hgpHo40pfFWYXEnrW74o8W7SIfCD0GHr3gnujBw1hI
543
546
  meutils/decorators/cache.py,sha256=-sqhCuiSYZK1UtsRw7bBog19G65O9N27DVTAp_nlBk4,2972
544
547
  meutils/decorators/catch.py,sha256=iO2_oHPJZGhmOBOBOux0SuV8cRo3AWqYaYKii4SX_J4,1837
545
548
  meutils/decorators/common.py,sha256=DCrD3lHhdek9Y_n-jmLFdn0or30_IZXvdRN8TQ9EiHU,12277
546
- meutils/decorators/contextmanagers.py,sha256=4_PRjnaf57OsEjxDvjuGT7yVT63lGUImuQgqtcXpdzA,1555
549
+ meutils/decorators/contextmanagers.py,sha256=bkMT5hiVt12TGziWLi0H1V4wNwPIIdgnCHIsSgYWqEM,3120
547
550
  meutils/decorators/decorator.py,sha256=njwKhWhnvAXgHd_8h50V5jj5XZoK7_HM12rFDlmXc8c,15570
548
551
  meutils/decorators/decorator_demo.py,sha256=JLCulTW04uYHzLg6jRxVseaAdU-YeyL8Z2p-e_y-rsg,754
549
552
  meutils/decorators/demo.py,sha256=EZ9uYz5zGdAqUxa9l2C8gTZqdjY5Uw2uZsAUa9tZXq0,710
@@ -567,7 +570,7 @@ meutils/init/__init__.py,sha256=J_ApVNdTQAHsIfSLrMRZhwJ8rdgiOfeyiXGSymvZSng,242
567
570
  meutils/init/evn.py,sha256=GPw9Un8YbgYJmjwd-uYWQ8JeVr6pRxwyYbDv3W8fb1s,1588
568
571
  meutils/init/oo.py,sha256=jXWaCWWFYVPGgTIas47Z3J7sIq-CD7DyK6fKDBsq8GA,12884
569
572
  meutils/io/__init__.py,sha256=uW43ZfdWu7adRvwvcTzUGtn4CseRmbzEJdlZV-oqHEA,2107
570
- meutils/io/files_utils.py,sha256=C6Fzz4oP9tVSue4OKReMkjxXKbGyivvTmQypmmRw7bM,7452
573
+ meutils/io/files_utils.py,sha256=o_kO2ntkZlFZRvv65oNiZ49FH8ZrStkxr8E-mTQuTFI,7438
571
574
  meutils/io/image.py,sha256=BJmYzx7o66X7C32gOfVmfr5tBRXOi0IYQY7BpGLsGrg,6926
572
575
  meutils/io/minio_utils.py,sha256=i1YuxwDJzLse0smMXuPqnD1wirBBb8psmB_kd1oPoVU,1274
573
576
  meutils/io/tf_io.py,sha256=vEZZS4pCf4Dt3A-FtIVMfhC3FJUUpQCK2OoEvXrBWos,8605
@@ -576,7 +579,7 @@ meutils/jwt_utils/__init__.py,sha256=hU1CYBK90Q9QKVrf1s6VFKZwWjHioHa6bO2AuDn7_eo
576
579
  meutils/jwt_utils/common.py,sha256=MlWDLtxiF-WeRl3oyK94KIa6BKFIXVeJtaQUnpa9ayo,814
577
580
  meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
578
581
  meutils/llm/check_api.py,sha256=sgxfMWM0fe3nNpv_lLR7kFgsWaowcm1cQlsbp7qZSKM,3567
579
- meutils/llm/check_utils.py,sha256=o5SAsjIuTK_p8ARZgjeyJiapVz3Ox_A6UdNbVACmpGw,3355
582
+ meutils/llm/check_utils.py,sha256=cRPCCKyj1Ezv1krEfpBZLSinpOZj7szi51wmJPNpfPY,3438
580
583
  meutils/llm/clients.py,sha256=WLm49NNgp80q-zEO0ZTzRmbQvZZfgU2hk6mskFFxsqg,1582
581
584
  meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
582
585
  meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
@@ -586,6 +589,7 @@ meutils/llm/completions/__init__.py,sha256=Z9b0uVj0DuprlPVvLqb-jYf5hk7C1rD-c3fMI
586
589
  meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
587
590
  meutils/llm/completions/delilegal.py,sha256=mr53ps7I33SC8Fjy4rma-xoNF-mLgwdZfHgdSOyLtQY,5131
588
591
  meutils/llm/completions/dify.py,sha256=dqL_8uxAp2d8M00pkyh2I30tflwi4pUyX-V6pwe3_BA,3048
592
+ meutils/llm/completions/gemini.py,sha256=mpxQZy4x1RxLOwA0CKZacQDDW_zyQVypfPz5TDxrBOs,1704
589
593
  meutils/llm/completions/kimi.py,sha256=TSkLObebIAb_oivOMq3aKx9qoXcMy611_g2yIKex9eo,1541
590
594
  meutils/llm/completions/modelscope.py,sha256=umPlJuHSL2RR0oNdTIAqts8iqEmGp_MR6Vh49g-UZuc,271
591
595
  meutils/llm/completions/oi.py,sha256=DmvzxJfdLA_I3MWcULhFtiUdo90j7V2dLvYvmZ-Tm9U,293
@@ -599,7 +603,7 @@ meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M
599
603
  meutils/llm/completions/yuanbao.py,sha256=UA85J0bXwNFtEx76ccKLVqwBgB4qDRdgeT-e2Is9S40,5625
600
604
  meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
601
605
  meutils/llm/completions/agents/file.py,sha256=4SGCkHSBEdAB6NbxPaViXYUJq5giGtEF9FEgq2WxyBY,4934
602
- meutils/llm/completions/agents/search.py,sha256=GbNRI94Pnj65jXtzmeGCDtEqEnUDu0a417tyRgUp6QE,5012
606
+ meutils/llm/completions/agents/search.py,sha256=GKsk0NRy6jsbSu8E9mdBWObJzroGE-L7Iuo5W2MK_u0,5057
603
607
  meutils/llm/completions/rag/__init__.py,sha256=VH4g9H0pqMM1Rkjc1xefQb4Uh8f9vlTt6tjdD6G6Wc0,272
604
608
  meutils/llm/completions/rag/fire.py,sha256=0a_POkY9mEy1YwZHXOGnqf9EVyjiJwx3fWhmv_bQ54U,5743
605
609
  meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cpxu6TBg,265
@@ -612,6 +616,7 @@ meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayz
612
616
  meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
613
617
  meutils/llm/prompts/demo.py,sha256=vQ6MeR-3ds2js3TzDbZid-YKbo_pH0ehn58B7kjJaMg,3665
614
618
  meutils/llm/prompts/html2image_test.py,sha256=0yS1TgbNNnkhj4U-HyLN5EEpSDoT_56BD6A7mRXivLo,541
619
+ meutils/llm/prompts/search_prompts.py,sha256=DtokuSVVIYYhjNRCOq1lxHN11U5bSmJLxjO8bC4dbK4,604
615
620
  meutils/logging/__init__.py,sha256=dKFrn05P8EAvvzxwiZnzPTT5r54yInwoO5cRyp2jFmQ,271
616
621
  meutils/logging/handlers.py,sha256=ngnVVN7wcFQZsSTnc-1nP5ZRCp-jbO1Qt7mjNfum_-8,701
617
622
  meutils/logging/log_utils.py,sha256=Sa5-Y4fWNTKQw2fIb1dbPgOypl6S6m7EOrbciSqEt5A,2937
@@ -715,7 +720,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
715
720
  meutils/schemas/hailuo_types.py,sha256=lZ3Q07QNgxJvrX8JJvalxUsro4gGLOMQDusSEwV4EO0,7429
716
721
  meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
717
722
  meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
718
- meutils/schemas/image_types.py,sha256=k_sSYgVlxmDp95q5uwuzFUVy3CDhLG6IKCFo2uNFxjs,13014
723
+ meutils/schemas/image_types.py,sha256=Ev7Oe1FgUEjxeLJ4tFnovSqqeS0nh_0wLpBNZW_yImw,13063
719
724
  meutils/schemas/jimeng_types.py,sha256=qsjtyURGsGnAGAhfZ9k4k-mtbRgjbWId75UMV1d6AiE,851
720
725
  meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
721
726
  meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
@@ -743,14 +748,14 @@ meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrP
743
748
  meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
744
749
  meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
745
750
  meutils/schemas/video_types.py,sha256=shXriVG_HMVkUCwNQl7H6vTmZ2SXkjzDHJJ5uWfXKcQ,2519
746
- meutils/schemas/vidu_types.py,sha256=xky2xQLtRP_T-2ydU5Ps2Q2ZVqPtfLi5I7_-UXg3jnI,9022
751
+ meutils/schemas/vidu_types.py,sha256=WqPuWk6Kf4Ymb0xiw9NFNZCnRVAyGPW3pgBuvsyRm-A,9382
747
752
  meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
748
753
  meutils/schemas/yuanbao_types.py,sha256=NVL0N-GN227J0bI4OfSFz-7rw3bd2Ny_ip80lOKIBL8,12175
749
754
  meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
750
755
  meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
751
756
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
752
757
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
753
- meutils/schemas/oneapi/common.py,sha256=HkdYZkZIFf_-hhJ8CKcBNbVYiNQF9G7synYXf2YxPjI,30034
758
+ meutils/schemas/oneapi/common.py,sha256=5HPhVQQaR6LvDWCJxG-1hAkx2yRKaYIufayH-vPX2YM,30087
754
759
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
755
760
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
756
761
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -803,8 +808,8 @@ meutils/settings/base.py,sha256=kb3QVS2eUFWyGgvegtSK4cqJFF76J1JctTSzCVqc1Mo,264
803
808
  meutils/settings/demo.py,sha256=Ht3t6LREQsKa5W2owNrOZNAoZfS-zItIFNwGhhPj-4k,484
804
809
  meutils/str_utils/Translator.py,sha256=tfvNQIeVCqmX9yW6jobeibDHG6X-XecSSAx9kJIFFyw,1258
805
810
  meutils/str_utils/__init__.py,sha256=BzTEbffNPWoJxEgjaRyGIWBxb9FxxlNesOUb7anJRGw,7215
806
- meutils/str_utils/json_utils.py,sha256=Y_jHVMgGJlkUlRIddnf9wn9V7blHt4maXWcek74RyJQ,1863
807
- meutils/str_utils/regular_expression.py,sha256=4PpFWQ3XBQUD8sflkaaRMF7N41BPXVR-utar4XiYFcM,4820
811
+ meutils/str_utils/json_utils.py,sha256=OXilMxLDtoFq5DAo3mHrIGx3GTOqHARgkcq8-gVYELM,1913
812
+ meutils/str_utils/regular_expression.py,sha256=u73pti8KYXV5rhfjEtX0HvRB9_RJdqXvOiIA4Frr37Y,5073
808
813
  meutils/str_utils/__translater/__init__.py,sha256=mtDbKL_Qdkeq5VPVO1M4ejf9H8PzKM5h7iepqkBG8N0,277
809
814
  meutils/str_utils/__translater/tencent.py,sha256=1E_56l6-A49Yuz2ZrMKxt-QJfcf0xDYN2X0dg58Dytk,1408
810
815
  meutils/str_utils/__translater/translater.py,sha256=A_9NLVvkjzPd9omIcJGhux21D-gcCxemyrZ7o6uGx_Q,1238
@@ -878,9 +883,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
878
883
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
879
884
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
880
885
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
881
- MeUtils-2025.2.14.14.14.57.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
882
- MeUtils-2025.2.14.14.14.57.dist-info/METADATA,sha256=owU6q4nrr_2Ut7wx7_Rj2Yez-Pr-oiUFAoMvs-ADyss,6143
883
- MeUtils-2025.2.14.14.14.57.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
884
- MeUtils-2025.2.14.14.14.57.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
885
- MeUtils-2025.2.14.14.14.57.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
886
- MeUtils-2025.2.14.14.14.57.dist-info/RECORD,,
886
+ MeUtils-2025.2.20.17.30.7.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
887
+ MeUtils-2025.2.20.17.30.7.dist-info/METADATA,sha256=3txe3fhWv_ueu8KliP9v24JGMA5CN6F5kJOaszu4UcY,32833
888
+ MeUtils-2025.2.20.17.30.7.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
889
+ MeUtils-2025.2.20.17.30.7.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
890
+ MeUtils-2025.2.20.17.30.7.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
891
+ MeUtils-2025.2.20.17.30.7.dist-info/RECORD,,
@@ -0,0 +1,42 @@
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
+
17
+ client = OpenAI(
18
+ api_key="你的 https://api.chatfire.cn/token",
19
+ base_url="https://api.chatfire.cn/v1"
20
+ )
21
+
22
+
23
+ completion = client.chat.completions.create(
24
+ model="glm-4-flash",
25
+ # model="xxxxxxxxxxxxx",
26
+ messages=[
27
+ {"role": "system", "content": '你是个内容审核助手'},
28
+
29
+ {"role": "user", "content": message}
30
+ ],
31
+ # top_p=0.7,
32
+ top_p=None,
33
+ temperature=None,
34
+ stream=True,
35
+ max_tokens=1000
36
+ )
37
+
38
+
39
+ for chunk in completion:
40
+ # print(bjson(chunk))
41
+ print(chunk.choices[0].delta.content, end="")
42
+
@@ -237,7 +237,12 @@ if __name__ == '__main__':
237
237
  # "deepseek-r1-distill-qwen-7b",
238
238
  # "deepseek-r1-distill-qwen-32b"
239
239
 
240
- "o1"
240
+ # "o1"
241
+
242
+ # "claude-3-5-sonnet-20241022"
243
+
244
+ "gemini-2.0-flash-lite-preview-02-05"
245
+
241
246
 
242
247
  ]
243
248
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
@@ -257,8 +262,8 @@ if __name__ == '__main__':
257
262
 
258
263
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN") + "-725")
259
264
 
260
- # check_models(models, api_key=os.getenv("OPENAI_API_KEY") + "-743")
261
- check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
265
+ check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
266
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
262
267
 
263
268
 
264
269
  #############神奇 #############reasoning_content 神奇
@@ -14,11 +14,12 @@ from meutils.io.files_utils import to_file
14
14
 
15
15
  client = OpenAI(
16
16
  base_url="https://ai.gitee.com/v1",
17
- api_key="WPCSA3ZYD8KBQQ2ZKTAPVUA059J2Q47TLWGB2ZMQ",
17
+ # api_key="WPCSA3ZYD8KBQQ2ZKTAPVUA059J2Q47TLWGB2ZMQ",
18
+ api_key="TICKEDYPY8XTF9ZIMKOFRTQ8IT7UDCE7EC7JRV10"
18
19
  # default_headers={"X-Failover-Enabled": "true", "X-Package": "1910"},
19
20
  )
20
21
 
21
- print(client.models.list())
22
+ # print(client.models.list())
22
23
  #
23
24
  # response = client.images.generate(
24
25
  # model="Kolors",
@@ -32,7 +33,7 @@ print(client.models.list())
32
33
  #
33
34
  # to_file(response.data[0].b64_json, 'x.png')
34
35
 
35
-
36
+ #
36
37
  r = client.chat.completions.create(
37
38
  # model="DeepSeek-R1-Distill-Qwen-32B",
38
39
  model="DeepSeek-V3",
@@ -44,4 +45,6 @@ r = client.chat.completions.create(
44
45
  temperature=0.1,
45
46
  )
46
47
 
47
- print(r)
48
+ # print(r)
49
+
50
+
@@ -130,7 +130,7 @@ with timer('image'):
130
130
  # model = "flux-dev"
131
131
 
132
132
  client = OpenAI(
133
- # api_key=os.getenv("OPENAI_API_KEY"),
133
+ api_key=os.getenv("OPENAI_API_KEY") + "-1383",
134
134
  # api_key='13OafcA8KSNO4XLrBR4DpvgVV9d59KCvPAmEdrtsvOIcU4T50B0EGstjLEqPnBI2N',
135
135
 
136
136
  # api_key=os.getenv("SILICONFLOW_API_KEY"),
@@ -172,6 +172,9 @@ with timer('image'):
172
172
  model = "deepseek-ai/janus-pro-7b"
173
173
  model = "deepseek-ai/Janus-Pro-7B"
174
174
 
175
+ model = "flux.1.1-pro"
176
+ # model = "recraftv3"
177
+
175
178
  # response = client.images.generate(
176
179
  # model=model,
177
180
  # prompt=prompt,
@@ -182,7 +185,7 @@ with timer('image'):
182
185
  # # size="1700x1275"
183
186
  # )
184
187
  prompt = '一只可爱的边牧在坐公交车,卡通贴纸。动漫3D风格,超写实油画,超高分辨率,最好的质量,8k'
185
- prompt = "一个小女孩举着横幅,上面写着“新年快乐”"
188
+ # prompt = "一个小女孩举着横幅,上面写着“新年快乐”"
186
189
 
187
190
  response = client.images.generate(
188
191
  model=model,
@@ -9,49 +9,113 @@
9
9
  # @Description : https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api
10
10
 
11
11
  from meutils.pipe import *
12
+ from meutils.str_utils.regular_expression import parse_url
13
+
12
14
  from meutils.schemas.image_types import ImageRequest, FluxImageRequest, SDImageRequest, ImagesResponse
13
15
  from meutils.schemas.fal_types import FEISHU_URL
14
16
  from meutils.config_utils.lark_utils import get_next_token_for_polling
15
17
 
16
18
  from fal_client import AsyncClient, SyncClient
17
19
 
18
- DEFAULT_MODEL = "fal-ai/flux-pro/v1.1-ultra"
19
- MODELS = {
20
- "flux-1.1-pro-ultra": "fal-ai/flux-pro/v1.1-ultra",
21
- "flux-image-to-image": "fal-ai/flux/dev/image-to-image",
20
+ recraft_styles = "any, realistic_image, digital_illustration, vector_illustration, realistic_image/b_and_w, realistic_image/hard_flash, realistic_image/hdr, realistic_image/natural_light, realistic_image/studio_portrait, realistic_image/enterprise, realistic_image/motion_blur, realistic_image/evening_light, realistic_image/faded_nostalgia, realistic_image/forest_life, realistic_image/mystic_naturalism, realistic_image/natural_tones, realistic_image/organic_calm, realistic_image/real_life_glow, realistic_image/retro_realism, realistic_image/retro_snapshot, realistic_image/urban_drama, realistic_image/village_realism, realistic_image/warm_folk, digital_illustration/pixel_art, digital_illustration/hand_drawn, digital_illustration/grain, digital_illustration/infantile_sketch, digital_illustration/2d_art_poster, digital_illustration/handmade_3d, digital_illustration/hand_drawn_outline, digital_illustration/engraving_color, digital_illustration/2d_art_poster_2, digital_illustration/antiquarian, digital_illustration/bold_fantasy, digital_illustration/child_book, digital_illustration/child_books, digital_illustration/cover, digital_illustration/crosshatch, digital_illustration/digital_engraving, digital_illustration/expressionism, digital_illustration/freehand_details, digital_illustration/grain_20, digital_illustration/graphic_intensity, digital_illustration/hard_comics, digital_illustration/long_shadow, digital_illustration/modern_folk, digital_illustration/multicolor, digital_illustration/neon_calm, digital_illustration/noir, digital_illustration/nostalgic_pastel, digital_illustration/outline_details, digital_illustration/pastel_gradient, digital_illustration/pastel_sketch, digital_illustration/pop_art, digital_illustration/pop_renaissance, digital_illustration/street_art, digital_illustration/tablet_sketch, digital_illustration/urban_glow, digital_illustration/urban_sketching, digital_illustration/vanilla_dreams, digital_illustration/young_adult_book, digital_illustration/young_adult_book_2, vector_illustration/bold_stroke, vector_illustration/chemistry, vector_illustration/colored_stencil, vector_illustration/contour_pop_art, vector_illustration/cosmics, vector_illustration/cutout, vector_illustration/depressive, vector_illustration/editorial, vector_illustration/emotional_flat, vector_illustration/infographical, vector_illustration/marker_outline, vector_illustration/mosaic, vector_illustration/naivector, vector_illustration/roundish_flat, vector_illustration/segmented_colors, vector_illustration/sharp_contrast, vector_illustration/thin, vector_illustration/vector_photo, vector_illustration/vivid_shapes, vector_illustration/engraving, vector_illustration/line_art, vector_illustration/line_circuit, vector_illustration/linocut"
21
+
22
+ ideogram_styles = "auto, general, realistic, design, render_3D, anime"
22
23
 
23
- "recraft-v3": "fal-ai/recraft-v3",
24
- "ideogram-v2": "fal-ai/ideogram/v2",
25
- }
26
- mapper = "fal-ai/".removeprefix("fal-ai/")
24
+ # https://fal.ai/models/fal-ai/any-llm/playground
25
+ llms = "anthropic/claude-3.5-sonnet, anthropic/claude-3-5-haiku, anthropic/claude-3-haiku, google/gemini-pro-1.5, google/gemini-flash-1.5, google/gemini-flash-1.5-8b, meta-llama/llama-3.2-1b-instruct, meta-llama/llama-3.2-3b-instruct, meta-llama/llama-3.1-8b-instruct, meta-llama/llama-3.1-70b-instruct, openai/gpt-4o-mini, openai/gpt-4o, deepseek/deepseek-r1"
27
26
 
28
27
 
29
28
  async def generate(request: ImageRequest, token: Optional[str] = None):
30
29
  """https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api#api-call-submit-request
31
30
  """
32
- token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL)
33
- request.model = MODELS.get(request.model, DEFAULT_MODEL)
34
31
  logger.debug(request)
35
32
 
36
- data = await AsyncClient(key=token).run(
37
- application=request.model,
38
- arguments={
39
- "prompt": request.prompt,
40
- "seed": request.seed,
33
+ s = time.time()
34
+ token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL)
35
+
36
+ arguments = request.model_dump(exclude_none=True)
37
+ width, height = request.size.split("x")
38
+ if request.model.startswith("fal-ai/recraft"): # https://fal.ai/models/fal-ai/recraft-v3/api#queue-submit
39
+ arguments = {
40
+ **arguments,
41
+ "image_size": {
42
+ "width": width,
43
+ "height": height
44
+ },
45
+ "style": request.style if str(request.style) in recraft_styles else "realistic_image",
46
+
47
+ "output_format": "png",
48
+ }
49
+ elif request.model.startswith(
50
+ "fal-ai/flux/dev/image-to-image"): # https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api
51
+ urls = parse_url(request.prompt)
52
+ image_url = urls[-1]
53
+ prompt = request.prompt.replace(image_url, "")
54
+
55
+ arguments = {
56
+ **arguments,
57
+ "image_size": {
58
+ "width": width,
59
+ "height": height
60
+ },
41
61
  "num_images": request.n,
42
62
 
43
- "aspect_ratio": "16:9", # 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, 9:21 ImageSize
63
+ "enable_safety_checker": False,
64
+ "safety_tolerance": "6",
65
+ "output_format": "png",
66
+ "seed": request.seed,
67
+
68
+ # image2image
69
+ "image_url": image_url,
70
+ "prompt": prompt,
71
+ "guidance_scale": request.guidance or 3.5,
72
+
73
+ **request.controls
74
+ }
75
+ elif request.model.startswith("fal-ai/flux"): # https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api
76
+
77
+ arguments = {
78
+ **arguments,
79
+ "num_images": request.n,
44
80
 
45
81
  "enable_safety_checker": False,
46
82
  "safety_tolerance": "6",
47
83
  "output_format": "png",
84
+ "seed": request.seed,
85
+
86
+ "aspect_ratio": request.aspect_ratio or "1:1" # 21:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:21
87
+
48
88
  }
89
+
90
+ elif request.model.startswith("fal-ai/ideogram"):
91
+ arguments = {
92
+ **arguments,
93
+ "style": request.style if str(request.style) in ideogram_styles else "auto",
94
+
95
+ # 10:16, 16:10, 9:16, 16:9, 4:3, 3:4, 1:1, 1:3, 3:1, 3:2, 2:3
96
+ "aspect_ratio": request.aspect_ratio or "1:1",
97
+
98
+ "seed": request.seed,
99
+
100
+ }
101
+
102
+ data = await AsyncClient(key=token).run(
103
+ application=request.model,
104
+ arguments=arguments,
49
105
  )
50
106
 
51
- return ImagesResponse(data=data.get("images", data))
107
+ return ImagesResponse(data=data.get("images"), timings={"inference": time.time() - s})
52
108
 
53
109
 
54
110
  if __name__ == '__main__':
55
- pass
56
- request = ImageRequest(prompt='a dog')
111
+ model = "fal-ai/flux-pro/v1.1" # 0.04
112
+ # model = "fal-ai/flux-pro/v1.1-ultra"# 0.06
113
+ # model = "fal-ai/flux/dev/image-to-image" # 0.03 图生图
114
+ # model = "fal-ai/recraft-v3" # 0.04 变清晰
115
+ # model = "fal-ai/ideogram/v2" # 0.08
116
+ model = "fal-ai/ideogram/v2/turbo" # 0.05
117
+
118
+ # request = ImageRequest(prompt='https://oss.ffire.cc/files/kling_watermark.png The woman smiled', model=model)
119
+ request = ImageRequest(prompt='a cat', model=model)
120
+
57
121
  arun(generate(request))
meutils/apis/fal/pd.py ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : pd
5
+ # @Time : 2025/2/19 13:23
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ df = pd.read_csv('x.txt', sep='--', header=None)
@@ -50,34 +50,53 @@ async def get_task(task_id: str, token: Optional[str] = None):
50
50
  application = f"fal-ai/{model}"
51
51
 
52
52
  client = AsyncClient(key=token)
53
- response = await client.status(application, request_id, with_logs=False)
54
- logger.debug(response)
53
+ response = await client.status(application, request_id, with_logs=True)
55
54
 
56
- # response = await client.result(application, request_id)
57
- # client.AsyncRequestHandle(request_id='0b7ab6b8-c7dc-4f17-a655-4ee56dd0f864')
58
- return response
55
+ logger.debug(response.__class__.__name__) # Queued, InProgress, COMPLETED
59
56
 
57
+ if metrics := response.__dict__.get("metrics"): # {'inference_time': 17.29231595993042}
58
+ response = await client.result(application, request_id)
60
59
 
60
+ return response
61
61
 
62
62
 
63
63
  if __name__ == '__main__':
64
64
  model = "latentsync"
65
- model = "sync-lipsync"
65
+ # model = "sync-lipsync"
66
66
  audio_url = "https://oss.ffire.cc/files/lipsync.mp3"
67
67
  video_url = "https://oss.ffire.cc/files/lipsync.mp4"
68
+
69
+ audio_url = "https://oss-shanghai.sanwubeixin.cn/cache/file/20250218/173988875057269.mp3"
70
+ video_url = "https://oss.sanwubeixin.cn/material/test/output2.mp4"
68
71
  request = FalVideoRequest(
69
72
  model=model,
70
73
  audio_url=audio_url,
71
74
  video_url=video_url
72
75
  )
73
76
 
74
- r = arun(create_task(request))
75
-
77
+ #
78
+ # r = arun(create_task(request))
79
+ # logger.debug(f"{r.task_id, r.system_fingerprint}")
80
+ #
81
+ # task_id = r.task_id
82
+ # arun(get_task(task_id, r.system_fingerprint))
76
83
 
77
- task_id = r.task_id
78
- arun(get_task(task_id, r.system_fingerprint))
84
+ # task_id = "latentsync::b2350e2b-5a48-4390-9089-120fb74f6b7b"
85
+ # token = "843e6ba3-cfb1-4305-be0d-39e923295949:72bce9f9cd5257011ab18f335e2661d4"
86
+ #
87
+ # r = arun(get_task(task_id, token))
79
88
 
80
- # task_id="latentsync::d4133f01-0f5b-4213-abe4-d14abdb57e3f"
81
- # token = "3f712efa-a692-4e7f-9409-e6c505bab4e2:151a0b6093312cc8f66fc52b7c4c92a8"
89
+ # task_id, token = ('sync-lipsync::45b89e28-8b52-47cb-99de-9b68ce65b9b8',
90
+ # '843e6ba3-cfb1-4305-be0d-39e923295949:72bce9f9cd5257011ab18f335e2661d4')
91
+ #
92
+ # r = arun(get_task(task_id, token))
82
93
 
94
+ # task_id, token = ('latentsync::7246cb3b-55e8-490f-bcb1-f05d8c515350',
95
+ # '3f712efa-a692-4e7f-9409-e6c505bab4e2:151a0b6093312cc8f66fc52b7c4c92a8')
96
+ #
83
97
  # r = arun(get_task(task_id, token))
98
+
99
+ task_id, token = ("latentsync::a90be257-3c21-43b2-a05c-6274543c3d02",
100
+ '843e6ba3-cfb1-4305-be0d-39e923295949:72bce9f9cd5257011ab18f335e2661d4')
101
+
102
+ r = arun(get_task(task_id, token))
@@ -80,6 +80,8 @@ async def make_request_for_gitee(payload, token: Optional[str] = None, response_
80
80
  feishu_url = "https://xchatllm.feishu.cn/sheets/MekfsfVuohfUf1tsWV0cCvTmn3c?sheet=PDnO6X"
81
81
  token = token or await get_next_token_for_polling(feishu_url)
82
82
 
83
+ logger.debug(token)
84
+
83
85
  headers = {
84
86
  "Authorization": f"Bearer {token}",
85
87
  "X-Failover-Enabled": "true",
@@ -200,10 +202,10 @@ if __name__ == '__main__':
200
202
  request = ImageProcess(
201
203
  # model="hunyuan-remove-watermark",
202
204
 
203
- model="remove-watermark",
205
+ # model="remove-watermark",
204
206
  # model="clarity",
205
207
  # model="expand",
206
- # model="rmbg-2.0",
208
+ model="rmbg-2.0",
207
209
 
208
210
  image=url,
209
211
  # mask=url,