MeUtils 2025.6.9.11.23.49__py3-none-any.whl → 2025.6.12.17.34.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/METADATA +257 -257
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/RECORD +23 -18
- examples/_openaisdk/openai_chatfire_usa.py +32 -0
- meutils/apis/fal/images.py +20 -16
- meutils/apis/google/chat.py +3 -3
- meutils/apis/images/generations.py +34 -0
- meutils/apis/jimeng/images.py +3 -2
- meutils/apis/volcengine_apis/videos.py +129 -0
- meutils/data/VERSION +1 -1
- meutils/llm/check_utils.py +2 -2
- meutils/llm/openai_utils/adapters.py +3 -0
- meutils/llm/openai_utils/common.py +1 -1
- meutils/math_utils/__init__.py +11 -0
- meutils/math_utils/common.py +50 -0
- meutils/notice/feishu.py +5 -1
- meutils/schemas/image_types.py +61 -43
- meutils/schemas/oneapi/common.py +35 -0
- meutils/str_utils/__init__.py +17 -4
- meutils/str_utils/regular_expression.py +16 -5
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/LICENSE +0 -0
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/WHEEL +0 -0
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.6.9.11.23.49.dist-info → MeUtils-2025.6.12.17.34.4.dist-info}/top_level.txt +0 -0
@@ -103,6 +103,7 @@ examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_
|
|
103
103
|
examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
|
104
104
|
examples/_openaisdk/openai_chatfire.py,sha256=lnQU_po1eMb-YIrW8rgQMfC5UbcReCMZERiylesmJr0,19092
|
105
105
|
examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
|
106
|
+
examples/_openaisdk/openai_chatfire_usa.py,sha256=kS7QlZYTUAJ0lfgTnh3wK-NIW9lfC8aSO0xgfUF7lBE,649
|
106
107
|
examples/_openaisdk/openai_dashscope.py,sha256=m9SjQpaNgYwr4Qd3XusWbJBGp5ZTtpuB40QopejxPKQ,1029
|
107
108
|
examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
|
108
109
|
examples/_openaisdk/openai_deepseek.py,sha256=0IbHh2F6eVDs-i8gP8x8wj6s9R6CzOGN7QrCp1EuB5k,2086
|
@@ -370,7 +371,7 @@ meutils/apis/dreamfaceapp/videos.py,sha256=xtz4GYRTdVE-D7xxFpSaH5Kl5ewXDx9Ogvtkf
|
|
370
371
|
meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
|
371
372
|
meutils/apis/fal/chat.py,sha256=yReABuCWfXOEt7tZax03XIX5KBlfBo2DlEOp2EpiGOM,2641
|
372
373
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
373
|
-
meutils/apis/fal/images.py,sha256=
|
374
|
+
meutils/apis/fal/images.py,sha256=TKMlgIHVsMbI6tLvM24JILkyFU5RWzWVIlAk2CiqYfo,12499
|
374
375
|
meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
|
375
376
|
meutils/apis/fal/kling_videos.py,sha256=kL4SRpZafRSCRODtiNqeXauxfamHNdcBTE65BrG1rVA,2554
|
376
377
|
meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
|
@@ -382,7 +383,7 @@ meutils/apis/gitee/images/__init__.py,sha256=zvS8e0ogQLqajZTAype1e0TDLJenlfbRQ16
|
|
382
383
|
meutils/apis/gitee/images/kolors.py,sha256=IGpDtMiOOPgbE8ZOXFP9-Hh_XNCDkuvNYjKQbXq8Nik,3338
|
383
384
|
meutils/apis/google/__init__.py,sha256=3pcpV81045y42FCTSdN99YGLCabwocR-f1_gjTSeFhE,243
|
384
385
|
meutils/apis/google/audios.py,sha256=Su1V3TAOn8X94KgOrmpLRPnYETgTyDXqjDf4qQMkzAo,3289
|
385
|
-
meutils/apis/google/chat.py,sha256=
|
386
|
+
meutils/apis/google/chat.py,sha256=aYB67-1tlnCE2yxIk2bKPEUih10jchGgEaQ_HmMKcmg,17022
|
386
387
|
meutils/apis/google/files.py,sha256=1TMYUe7OVAmDlhlu92dSLUQr037hQzXf-RTfZ9Tfp_c,1017
|
387
388
|
meutils/apis/google/gemini_sdk.py,sha256=iHmD_pGPM3qy_IHHA2pwAt01gM3hjRlPmrvsRQmfgEM,8525
|
388
389
|
meutils/apis/google/google2openai.py,sha256=JaRw4XfGjy1XAbM4UwLqwLHmldOvM1J1tbMTagi10os,3075
|
@@ -413,6 +414,7 @@ meutils/apis/images/deepinfra.py,sha256=lMqfU0LIXEzHiAS31dCcoTnPIE6tpoDJhq61H0TV
|
|
413
414
|
meutils/apis/images/demo.py,sha256=Cjk-EKMKbp44czykW_44qR0TzElX8nNCALqXBBw5sJA,4405
|
414
415
|
meutils/apis/images/edits.py,sha256=tdtFKVaMti4zOAh9WQ_VWrKyuJyomZ3-Fwh1DK7EJAM,10189
|
415
416
|
meutils/apis/images/eidt.py,sha256=s8IBbCjwwoogIUf-d2O7nkawUmly9n19nvLYPaLEeg4,1217
|
417
|
+
meutils/apis/images/generations.py,sha256=e5eFUy_y42fp7TnIaY6R1L8eoK-2LH4hILrWqPtOQiA,998
|
416
418
|
meutils/apis/images/openai_edits.py,sha256=a03L8vY8NXnl8uT9o0SMszMxE7dv6tTCZQyMyI5dS_g,2160
|
417
419
|
meutils/apis/images/recraft.py,sha256=6EqGtoG8RBiStOIazaBvceekP9pF1_ws7fn4BuXFdqk,72705
|
418
420
|
meutils/apis/images/flux/__init__.py,sha256=W_PZabQm6EmtJYmzEiEpL_WCXTAW0AiJ-t_n5UTrE8c,271
|
@@ -435,7 +437,7 @@ meutils/apis/jimeng/common.py,sha256=LFuhgY-KKE661Kf5oY0xAA1LhNu6ErGJ6SflSJPVHkE
|
|
435
437
|
meutils/apis/jimeng/doubao_images.py,sha256=Aeq1hve2PiO3baP50Augsu0u2YFlC7r_X5jgnDqv6y4,2082
|
436
438
|
meutils/apis/jimeng/doubao_utils.py,sha256=d9KDNkqKN4oxaJRAeGNMouRvzHEhIRXzN3T_HjtTXdM,6025
|
437
439
|
meutils/apis/jimeng/files.py,sha256=AlsAlQGufGm84TldUBLFZpZQGD6INN5xIwHql9ocPj4,11310
|
438
|
-
meutils/apis/jimeng/images.py,sha256=
|
440
|
+
meutils/apis/jimeng/images.py,sha256=KUr16G_SyNUJixXHUZUwdSECxtbPGuM21_LSoSWHWPM,23066
|
439
441
|
meutils/apis/jimeng/videos.py,sha256=MRDXz96BYEuS4vVCHeXaoNE6nfpq0B6UCf1_dafCE-8,6127
|
440
442
|
meutils/apis/jimeng/videos_videos.py,sha256=A6oWLKcrb6YMIumqUMQS3KVP9bhOEKLUOIlAUlbREmE,12259
|
441
443
|
meutils/apis/jimeng_global/__init__.py,sha256=ENdwkppOOekt9Qzy_50TyA7lzNEqo0TpZcF7d2rYBhc,245
|
@@ -541,6 +543,7 @@ meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81o
|
|
541
543
|
meutils/apis/volcengine_apis/__init__.py,sha256=gtu5ZNCc3up8bzgrCi10uwhsC04HpuCEEPXR_iVCNJE,244
|
542
544
|
meutils/apis/volcengine_apis/images.py,sha256=F9LXXptesnASB_Al7rkEshb2S5r3PixZd8w0mif5468,5463
|
543
545
|
meutils/apis/volcengine_apis/tasks.py,sha256=da2wYs2bqjYte_P2aFbSdKkLBaghuAj6vVKIlgdMg5A,4495
|
546
|
+
meutils/apis/volcengine_apis/videos.py,sha256=T4L4IdOEzMuktDgBESiTPBR1dBUVgWMVvsUdGXbQ5XA,4552
|
544
547
|
meutils/async_task/__init__.py,sha256=45cUr-GWvQ1JFYGOYPOIkHLyTR3JbfP_PEYrmktpMLo,367
|
545
548
|
meutils/async_task/celery_config.py,sha256=BX1h3jY34aO6UmUFakdBUwOdsEiOxCGuUtYDUKFtafc,3461
|
546
549
|
meutils/async_task/common.py,sha256=ZJ4e0CsEJf1ppPmGSwPCwhZBAkUL5xsi_t1ny-bJuko,845
|
@@ -589,7 +592,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
589
592
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
590
593
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
591
594
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
592
|
-
meutils/data/VERSION,sha256=
|
595
|
+
meutils/data/VERSION,sha256=trtpAA_484ptK6W_nrD0KMw3dsbSBTaOSpa5pyFCCfQ,19
|
593
596
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
594
597
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
595
598
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -671,7 +674,7 @@ meutils/jwt_utils/__init__.py,sha256=zs4pIDk4sQ82o7meMwt64_tv2WBMRTaXX9doe0ilvvs
|
|
671
674
|
meutils/jwt_utils/common.py,sha256=u2PPQJ9S-83y8f3Sb5L2OCRP7o-xV56EAmlzMZ8Je0Q,2352
|
672
675
|
meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
|
673
676
|
meutils/llm/check_api.py,sha256=Cu60Rvp7zLmmazuLXxpK4z-FCab4NrO4nH5LzfYjjoM,3591
|
674
|
-
meutils/llm/check_utils.py,sha256
|
677
|
+
meutils/llm/check_utils.py,sha256=-6cOZDci4WMwwnp5YloSGSXcaI9SU45X-BXgExI9Ltc,8109
|
675
678
|
meutils/llm/clients.py,sha256=qZa9WC85Ah4tdEd-EI_P_038mnJLq_z-smaJdwJp-EM,2956
|
676
679
|
meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
|
677
680
|
meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
@@ -713,8 +716,8 @@ meutils/llm/openai_polling/__init__.py,sha256=qmAMITPtrTD-y57RiJXewuOic7iLKBhx8m
|
|
713
716
|
meutils/llm/openai_polling/chat.py,sha256=WSQnKEJlZkJjS8CVq6RWouu7FCGgjw5Z5Aj2n1XkYsY,8049
|
714
717
|
meutils/llm/openai_polling/images.py,sha256=qKMk3vCvamS_48ceC-_y2LPpP5XsD476FHG9MUu8kks,1042
|
715
718
|
meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
|
716
|
-
meutils/llm/openai_utils/adapters.py,sha256=
|
717
|
-
meutils/llm/openai_utils/common.py,sha256=
|
719
|
+
meutils/llm/openai_utils/adapters.py,sha256=qZ0mzjHB9o6m6PwytCy1Ukr3GQZ7qqAjzbsAzryXp6k,2307
|
720
|
+
meutils/llm/openai_utils/common.py,sha256=67HF4OHNRHfquerdgaHASdLFnHipwVpwUFnAhQQcaX0,10465
|
718
721
|
meutils/llm/openai_utils/tool_outputs.py,sha256=6mNkm4btgy0uzF98gdmcah1bYmoflXdLz2Sqm0KC_LQ,1224
|
719
722
|
meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayzsXVmBuQxw,3474
|
720
723
|
meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
|
@@ -725,9 +728,11 @@ meutils/logging/__init__.py,sha256=dKFrn05P8EAvvzxwiZnzPTT5r54yInwoO5cRyp2jFmQ,2
|
|
725
728
|
meutils/logging/handlers.py,sha256=ngnVVN7wcFQZsSTnc-1nP5ZRCp-jbO1Qt7mjNfum_-8,701
|
726
729
|
meutils/logging/log_utils.py,sha256=Sa5-Y4fWNTKQw2fIb1dbPgOypl6S6m7EOrbciSqEt5A,2937
|
727
730
|
meutils/logging/logger.py,sha256=-J_tWYfAvPhSTshVWIiN-6zTZnjkFuwDfMtxUtuNkuY,6183
|
731
|
+
meutils/math_utils/__init__.py,sha256=vg71MyiPyDCeFDwi42MLSfAFQl43a3uNLIgerY0eDRA,284
|
732
|
+
meutils/math_utils/common.py,sha256=8MpWwgYLdvrpouTd9YJzcAwH-KNq58J4mY87dvd7e3Q,1086
|
728
733
|
meutils/notice/__init__.py,sha256=BVbcBx4ks-BH_63gEcjMxL67oX1_aWdaM8r3TDo8Ogg,248
|
729
734
|
meutils/notice/emails.py,sha256=TvC1xv3MpFC2HU0lTQW5SmNuj7UMlgjpsUImMp9jKOw,2403
|
730
|
-
meutils/notice/feishu.py,sha256=
|
735
|
+
meutils/notice/feishu.py,sha256=ydQuZgzmL3j5u0ySkLKShRemM4UYYOKa-vIsnezKWEU,4626
|
731
736
|
meutils/notice/file_post.py,sha256=KQ8iQUM30vF7T6ZZPahdLps4dLXK2s3nzdFYbty6M5E,953
|
732
737
|
meutils/notice/load_emailfile - 副本.py,sha256=f-Kq3UKZut_P0bmumV1y4PXuPtatjl-5SLUH5LShBUY,7331
|
733
738
|
meutils/notice/wechat.py,sha256=-HU5oSvpZrVnjjU76ky7_j0yg5ivn5mIlJ7JJVtlrnY,4082
|
@@ -820,7 +825,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
|
|
820
825
|
meutils/schemas/hailuo_types.py,sha256=ubG6qIU506tq51UsURuwlPhtPNa49xHSoBzBtW7jg_0,7431
|
821
826
|
meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
|
822
827
|
meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
|
823
|
-
meutils/schemas/image_types.py,sha256=
|
828
|
+
meutils/schemas/image_types.py,sha256=NgHdKpZLLE4RLoEeDZnCwpFuMUVDJqUr0Q9ZNHW3oj0,16224
|
824
829
|
meutils/schemas/jimeng_types.py,sha256=z0mAICgNE0Yaq09_puzgMfHOP-QKWiZqqMlFbLVHtmY,1995
|
825
830
|
meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
|
826
831
|
meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
|
@@ -856,7 +861,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
|
|
856
861
|
meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
|
857
862
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
858
863
|
meutils/schemas/oneapi/_types.py,sha256=IdXSLPQl73AKtCC5jFI2w5O7WFuQcQJlN_pr8xiMKz0,2648
|
859
|
-
meutils/schemas/oneapi/common.py,sha256=
|
864
|
+
meutils/schemas/oneapi/common.py,sha256=0RFlX0yKc1uQ1pRa1vZwzLx2ywWXDYReKpo6waxN3kw,41461
|
860
865
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
861
866
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
862
867
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -909,9 +914,9 @@ meutils/settings/__init__.py,sha256=jZc0NXPA9zIMcTAYypSQDxJqvXakyJ0ztK9ZMND2Q7U,
|
|
909
914
|
meutils/settings/base.py,sha256=kb3QVS2eUFWyGgvegtSK4cqJFF76J1JctTSzCVqc1Mo,264
|
910
915
|
meutils/settings/demo.py,sha256=Ht3t6LREQsKa5W2owNrOZNAoZfS-zItIFNwGhhPj-4k,484
|
911
916
|
meutils/str_utils/Translator.py,sha256=tfvNQIeVCqmX9yW6jobeibDHG6X-XecSSAx9kJIFFyw,1258
|
912
|
-
meutils/str_utils/__init__.py,sha256=
|
917
|
+
meutils/str_utils/__init__.py,sha256=7rVAWR0bbxVvuWFwyC0ZedpY1QVSmrrLwLIfPAfjWqM,10238
|
913
918
|
meutils/str_utils/json_utils.py,sha256=H65v9vZtXVuYyRCQAfyQ4KZzAecwjvjBH6qTy0hCDE4,4033
|
914
|
-
meutils/str_utils/regular_expression.py,sha256=
|
919
|
+
meutils/str_utils/regular_expression.py,sha256=HqEcPNyUHBBo7oJlwOFNpiFiO5NCXB8hD41nI1826fU,6161
|
915
920
|
meutils/str_utils/__translater/__init__.py,sha256=mtDbKL_Qdkeq5VPVO1M4ejf9H8PzKM5h7iepqkBG8N0,277
|
916
921
|
meutils/str_utils/__translater/tencent.py,sha256=1E_56l6-A49Yuz2ZrMKxt-QJfcf0xDYN2X0dg58Dytk,1408
|
917
922
|
meutils/str_utils/__translater/translater.py,sha256=A_9NLVvkjzPd9omIcJGhux21D-gcCxemyrZ7o6uGx_Q,1238
|
@@ -985,9 +990,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
985
990
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
986
991
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
987
992
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
988
|
-
MeUtils-2025.6.
|
989
|
-
MeUtils-2025.6.
|
990
|
-
MeUtils-2025.6.
|
991
|
-
MeUtils-2025.6.
|
992
|
-
MeUtils-2025.6.
|
993
|
-
MeUtils-2025.6.
|
993
|
+
MeUtils-2025.6.12.17.34.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
994
|
+
MeUtils-2025.6.12.17.34.4.dist-info/METADATA,sha256=0owD_l02jJ_WKeYpjPm60ER0d3dFUFISBwwTpxcCoxI,32833
|
995
|
+
MeUtils-2025.6.12.17.34.4.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
996
|
+
MeUtils-2025.6.12.17.34.4.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
997
|
+
MeUtils-2025.6.12.17.34.4.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
998
|
+
MeUtils-2025.6.12.17.34.4.dist-info/RECORD,,
|
@@ -0,0 +1,32 @@
|
|
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="sk-5pMaS37pVZXH9s2dMwRK984QiwIRh9qQbQGnkv5fAFNaxMK6-16207",
|
19
|
+
base_url="https://usa.chatfire.cn"
|
20
|
+
)
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
r = client.images.generate(
|
25
|
+
model="cogview-3-plus",
|
26
|
+
prompt="a white siamese cat",
|
27
|
+
size="1024x1024",
|
28
|
+
extra_body={
|
29
|
+
""
|
30
|
+
},
|
31
|
+
n=1,
|
32
|
+
)
|
meutils/apis/fal/images.py
CHANGED
@@ -48,13 +48,13 @@ async def check(token, threshold: float = 0):
|
|
48
48
|
return False
|
49
49
|
|
50
50
|
|
51
|
-
async def generate(request: ImageRequest,
|
51
|
+
async def generate(request: ImageRequest, api_key: Optional[str] = None):
|
52
52
|
"""https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api#api-call-submit-request
|
53
53
|
"""
|
54
54
|
logger.debug(request)
|
55
55
|
|
56
56
|
s = time.time()
|
57
|
-
token =
|
57
|
+
token = api_key or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
|
58
58
|
|
59
59
|
arguments = request.model_dump(exclude_none=True)
|
60
60
|
width, height = request.size.split("x")
|
@@ -153,13 +153,17 @@ async def generate(request: ImageRequest, token: Optional[str] = None):
|
|
153
153
|
}
|
154
154
|
|
155
155
|
if request.aspect_ratio:
|
156
|
+
arguments.pop("aspect_ratio", None)
|
157
|
+
|
156
158
|
aspect_ratios = {'21:9', '16:9', '4:3', '3:2', '1:1', '2:3', '3:4', '9:16', '9:21'}
|
157
|
-
if request.aspect_ratio in aspect_ratios:
|
158
|
-
arguments["aspect_ratio"] = request.aspect_ratio
|
159
159
|
|
160
|
-
|
160
|
+
if aspect_ratio := request.prompt2aspect_ratio(aspect_ratios): # 提示词优先级最高
|
161
|
+
arguments["aspect_ratio"] = aspect_ratio
|
161
162
|
|
163
|
+
elif request.aspect_ratio in aspect_ratios:
|
164
|
+
arguments["aspect_ratio"] = request.aspect_ratio
|
162
165
|
|
166
|
+
logger.debug(bjson(arguments))
|
163
167
|
|
164
168
|
elif request.model.startswith("fal-ai/flux"): # https://fal.ai/models/fal-ai/flux-pro/v1.1-ultra/api
|
165
169
|
|
@@ -264,14 +268,14 @@ if __name__ == '__main__':
|
|
264
268
|
|
265
269
|
tokens = arun(get_series(FEISHU_URL))
|
266
270
|
# tokens = ["578e143c-702d-46a1-8c02-d451bc3e155b:bb531a95f79c6026e7bc7ab676163c71"]
|
267
|
-
|
268
|
-
30e9fe5c-75d0-4bdd-b11d-ff17dbe4bba5:3de8535e2fa4d9347e599a845cf3e7b8
|
269
|
-
05c0b4f6-1443-4b28-aeff-771b65ebaebc:28df6b9b71430b05aca6b8bc7e873a4a
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
271
|
+
# tokens = """
|
272
|
+
# 30e9fe5c-75d0-4bdd-b11d-ff17dbe4bba5:3de8535e2fa4d9347e599a845cf3e7b8
|
273
|
+
# 05c0b4f6-1443-4b28-aeff-771b65ebaebc:28df6b9b71430b05aca6b8bc7e873a4a
|
274
|
+
# """.split()
|
275
|
+
#
|
276
|
+
# r = []
|
277
|
+
# for t in tokens:
|
278
|
+
# if arun(check(t)):
|
279
|
+
# r.append(t)
|
280
|
+
#
|
281
|
+
# print('\n'.join(r))
|
meutils/apis/google/chat.py
CHANGED
@@ -62,9 +62,9 @@ tools = [
|
|
62
62
|
# )
|
63
63
|
|
64
64
|
class Completions(object):
|
65
|
-
def __init__(self, api_key: Optional[str] = None):
|
65
|
+
def __init__(self, api_key: Optional[str] = None, base_url: Optional[str] = None):
|
66
66
|
self.api_key = api_key
|
67
|
-
self.base_url = "https://g.chatfire.cn"
|
67
|
+
self.base_url = base_url or "https://g.chatfire.cn"
|
68
68
|
self.client = None ####
|
69
69
|
|
70
70
|
async def create_for_search(self, request: CompletionRequest):
|
@@ -278,7 +278,7 @@ class Completions(object):
|
|
278
278
|
# 两轮即可连续编辑图片
|
279
279
|
|
280
280
|
messages = []
|
281
|
-
for m in request.messages:
|
281
|
+
for m in request.messages or []:
|
282
282
|
contents = m.get("content")
|
283
283
|
if m.get("role") == "assistant":
|
284
284
|
assistant_content = str(contents)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : generations
|
5
|
+
# @Time : 2025/6/11 17:06
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description : 统一收口
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.llm.clients import AsyncClient
|
13
|
+
from meutils.llm.openai_utils import to_openai_params
|
14
|
+
|
15
|
+
from meutils.schemas.image_types import ImageRequest
|
16
|
+
|
17
|
+
from meutils.apis.fal.images import generate as fal_generate
|
18
|
+
|
19
|
+
|
20
|
+
async def generate(
|
21
|
+
request: ImageRequest,
|
22
|
+
api_key: Optional[str] = None,
|
23
|
+
base_url: Optional[str] = None,
|
24
|
+
):
|
25
|
+
if base_url: # 优先级最高
|
26
|
+
client = AsyncClient(api_key=api_key, base_url=base_url)
|
27
|
+
return await client.images.generate(**to_openai_params(request))
|
28
|
+
|
29
|
+
if request.model.startswith("fal-ai"):
|
30
|
+
return await fal_generate(request, api_key)
|
31
|
+
|
32
|
+
|
33
|
+
if __name__ == '__main__':
|
34
|
+
arun(generate(ImageRequest(model="flux", prompt="笑起来")))
|
meutils/apis/jimeng/images.py
CHANGED
@@ -54,6 +54,7 @@ async def create_draft_content(request: ImageRequest, token: str):
|
|
54
54
|
main_component_id = str(uuid.uuid4())
|
55
55
|
if (urls := parse_url(request.prompt)) or image_uri: # 图生 # todo: image base64
|
56
56
|
request.model = "high_aes_general_v20_L:general_v2.0_L" # 2.1不支持图片编辑 某些不支持
|
57
|
+
request.model = "high_aes_general_v30l:general_v3.0_18b"
|
57
58
|
|
58
59
|
if image_uri:
|
59
60
|
pass
|
@@ -667,7 +668,7 @@ if __name__ == '__main__':
|
|
667
668
|
|
668
669
|
# request = ImageRequest(prompt=prompt, size="2048*2048")
|
669
670
|
|
670
|
-
task = arun(create_task(request))
|
671
|
+
# task = arun(create_task(request))
|
671
672
|
# task = arun(create_task(request, "d2d142fc877e696484cc2fc521127b36"))
|
672
673
|
# task = arun(create_task(request, "d2d142fc877e696484cc2fc521127b36"))
|
673
674
|
|
@@ -683,4 +684,4 @@ if __name__ == '__main__':
|
|
683
684
|
|
684
685
|
# arun(get_task("16132262728706", "d2d142fc877e696484cc2fc521127b36"))
|
685
686
|
|
686
|
-
|
687
|
+
arun(generate(request))
|
@@ -0,0 +1,129 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : videos
|
5
|
+
# @Time : 2025/6/11 15:13
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.decorators.retry import retrying
|
13
|
+
from meutils.llm.clients import AsyncClient
|
14
|
+
from meutils.schemas.openai_types import CompletionRequest
|
15
|
+
|
16
|
+
from meutils.db.redis_db import redis_aclient
|
17
|
+
from meutils.llm.check_utils import check_token_for_volc
|
18
|
+
from meutils.config_utils.lark_utils import get_next_token_for_polling, get_series
|
19
|
+
|
20
|
+
from fastapi import APIRouter, File, UploadFile, Query, Form, Depends, Request, HTTPException, status, BackgroundTasks
|
21
|
+
|
22
|
+
# Please activate
|
23
|
+
FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=8W6kk8"
|
24
|
+
|
25
|
+
|
26
|
+
@retrying(max_retries=5)
|
27
|
+
async def create_task(request: CompletionRequest, api_key: Optional[str] = None):
|
28
|
+
api_key = api_key or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
|
29
|
+
|
30
|
+
payload = {
|
31
|
+
"model": "doubao-seedance-1-0-pro-250528",
|
32
|
+
"content": [
|
33
|
+
{
|
34
|
+
"type": "text",
|
35
|
+
"text": "无人机以极快速度穿越复杂障碍或自然奇观,带来沉浸式飞行体验 --resolution 1080p --duration 5 --camerafixed false"
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"type": "image_url",
|
39
|
+
"image_url": {
|
40
|
+
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_i2v.png"
|
41
|
+
}
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}
|
45
|
+
payload = request.model_dump(exclude_none=True)
|
46
|
+
client = AsyncClient(base_url="https://ark.cn-beijing.volces.com/api/v3", api_key=api_key)
|
47
|
+
|
48
|
+
response = await client.post(
|
49
|
+
path="/contents/generations/tasks",
|
50
|
+
cast_to=object,
|
51
|
+
body=payload
|
52
|
+
)
|
53
|
+
|
54
|
+
if task_id := response.get('id'):
|
55
|
+
await redis_aclient.set(task_id, api_key, ex=7 * 24 * 3600)
|
56
|
+
|
57
|
+
return response # {'id': 'cgt-20250611152553-r46ql'}
|
58
|
+
|
59
|
+
|
60
|
+
async def get_task(task_id: str):
|
61
|
+
token = await redis_aclient.get(task_id) # 绑定对应的 token
|
62
|
+
token = token and token.decode()
|
63
|
+
if not token:
|
64
|
+
raise HTTPException(status_code=404, detail="TaskID not found")
|
65
|
+
|
66
|
+
client = AsyncClient(base_url="https://ark.cn-beijing.volces.com/api/v3", api_key=api_key)
|
67
|
+
|
68
|
+
response = await client.get(
|
69
|
+
path=f"/contents/generations/tasks/{task_id}",
|
70
|
+
cast_to=object,
|
71
|
+
)
|
72
|
+
|
73
|
+
return response
|
74
|
+
|
75
|
+
|
76
|
+
# 执行异步函数
|
77
|
+
if __name__ == "__main__":
|
78
|
+
# api_key = "07139a08-e360-44e2-ba31-07f379bf99ed" # {'id': 'cgt-20250611164343-w2bzq'} todo 过期调用get
|
79
|
+
|
80
|
+
api_key = "68948c3a-94cd-48b2-aebb-1dcd26cee5d8" # 欠费
|
81
|
+
|
82
|
+
request = CompletionRequest(
|
83
|
+
model="doubao-seedance-1-0-pro-250528",
|
84
|
+
content=[
|
85
|
+
{
|
86
|
+
"type": "text",
|
87
|
+
"text": "无人机以极快速度穿越复杂障碍或自然奇观,带来沉浸式飞行体验 --resolution 1080p --duration 5 --camerafixed false"
|
88
|
+
},
|
89
|
+
|
90
|
+
{
|
91
|
+
"type": "image_url",
|
92
|
+
"image_url": {
|
93
|
+
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_i2v.png"
|
94
|
+
}
|
95
|
+
}
|
96
|
+
]
|
97
|
+
)
|
98
|
+
# r = arun(create_task(request, api_key))
|
99
|
+
r = {'id': 'cgt-20250612172542-6nbt2'}
|
100
|
+
|
101
|
+
arun(get_task(r.get('id')))
|
102
|
+
|
103
|
+
# arun(get_task("cgt-20250611164343-w2bzq"))
|
104
|
+
|
105
|
+
# arun(get_task("cgt-20250611193213-tcqth"))
|
106
|
+
|
107
|
+
"""
|
108
|
+
openai.NotFoundError: Error code: 404 - {'error': {'code': 'ModelNotOpen', 'message': 'Your account 2107813928 has not activated the model doubao-seedance-1-0-pro. Please activate the model service in the Ark Console. Request id: 021749718307793fc1441381f8ed755824bb9d58a45ee6cb04068', 'param': '', 'type': 'NotFound'}}
|
109
|
+
|
110
|
+
|
111
|
+
curl -X POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks \
|
112
|
+
-H "Content-Type: application/json" \
|
113
|
+
-H "Authorization: Bearer 29ce2c44-981d-4b7b-b0f5-f8a39586fd06" \
|
114
|
+
-d '{
|
115
|
+
"model": "doubao-seaweed-241128",
|
116
|
+
"content": [
|
117
|
+
{
|
118
|
+
"type": "text",
|
119
|
+
"text": "女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动 --resolution 720p --duration 5"
|
120
|
+
},
|
121
|
+
{
|
122
|
+
"type": "image_url",
|
123
|
+
"image_url": {
|
124
|
+
"url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
|
125
|
+
}
|
126
|
+
}
|
127
|
+
]
|
128
|
+
}'
|
129
|
+
"""
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2025.06.
|
1
|
+
2025.06.12.17.34.04
|
meutils/llm/check_utils.py
CHANGED
@@ -218,7 +218,7 @@ if __name__ == '__main__':
|
|
218
218
|
|
219
219
|
check_valid_token = partial(check_token_for_siliconflow, threshold=-1)
|
220
220
|
|
221
|
-
arun(check_valid_token("sk-tythaoctwemlhkytdlmjcegtnufvhqgmwlncgmoxixdyqoxx"))
|
221
|
+
# arun(check_valid_token("sk-tythaoctwemlhkytdlmjcegtnufvhqgmwlncgmoxixdyqoxx"))
|
222
222
|
|
223
223
|
pass
|
224
224
|
# arun(check_valid_token("sk-LlB4W38z9kv5Wy1c3ceeu4PHeIWs6bbWsjr8Om31jYvsucRv", threshold=0.1))
|
@@ -248,4 +248,4 @@ if __name__ == '__main__':
|
|
248
248
|
|
249
249
|
# arun(check_token_for_ppinfra("sk_F0kgPyCMTzmOH_-VCEJucOK8HIrbnLGYm_IWxBToHZQ"))
|
250
250
|
|
251
|
-
|
251
|
+
arun(check_token_for_volc("07139a08-e360-44e2-ba31-07f379bf99ed"))
|
@@ -22,7 +22,10 @@ async def stream_to_nostream(
|
|
22
22
|
async def chat_for_image(
|
23
23
|
generate: Callable,
|
24
24
|
request: CompletionRequest,
|
25
|
+
api_key: Optional[str] = None,
|
25
26
|
):
|
27
|
+
generate = partial(generate, api_key=api_key)
|
28
|
+
|
26
29
|
if not request.stream or request.last_user_content.startswith( # 跳过nextchat
|
27
30
|
(
|
28
31
|
"hi",
|
@@ -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/6/10 09:11
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.math_utils.common import *
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : common
|
5
|
+
# @Time : 2025/6/10 09:11
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
|
12
|
+
import math
|
13
|
+
|
14
|
+
|
15
|
+
def calculate_min_resolution(w, h):
|
16
|
+
"""
|
17
|
+
计算给定宽高比的最小像素公约数分辨率(宽高互质)
|
18
|
+
|
19
|
+
参数:
|
20
|
+
aspect_ratio (str): 宽高比字符串,例如"16:9"
|
21
|
+
|
22
|
+
返回:
|
23
|
+
tuple: (宽, 高) 的元组,整数类型
|
24
|
+
"""
|
25
|
+
# 分割字符串并转换为整数
|
26
|
+
w, h = map(int, (w, h))
|
27
|
+
|
28
|
+
# 计算最大公约数
|
29
|
+
gcd_val = math.gcd(w, h)
|
30
|
+
|
31
|
+
# 化简为互质的整数比
|
32
|
+
width = w // gcd_val
|
33
|
+
height = h // gcd_val
|
34
|
+
|
35
|
+
return width, height
|
36
|
+
|
37
|
+
|
38
|
+
def size2aspect_ratio(size):
|
39
|
+
if 'x' in size:
|
40
|
+
w, h = size.split('x')
|
41
|
+
w, h = calculate_min_resolution(w, h)
|
42
|
+
return f"{w}:{h}" # aspect_ratio
|
43
|
+
|
44
|
+
elif ':' in size:
|
45
|
+
return size
|
46
|
+
|
47
|
+
|
48
|
+
if __name__ == '__main__':
|
49
|
+
print(size2aspect_ratio("1920x1080"))
|
50
|
+
print(size2aspect_ratio("1920:1080"))
|
meutils/notice/feishu.py
CHANGED
@@ -22,6 +22,8 @@ AUDIO = "https://open.feishu.cn/open-apis/bot/v2/hook/80c2a700-adfa-4b9b-8e3f-00
|
|
22
22
|
FILES = "https://open.feishu.cn/open-apis/bot/v2/hook/075fb2fa-a559-4a7e-89ac-3ab9934ff15c"
|
23
23
|
KLING = "https://open.feishu.cn/open-apis/bot/v2/hook/e9a850c2-d171-4637-b976-ee93f7654c40"
|
24
24
|
|
25
|
+
VOLC = "https://open.feishu.cn/open-apis/bot/v2/hook/d487ce4f-3c2b-44db-a5b4-7ee4c5e03b4f"
|
26
|
+
|
25
27
|
|
26
28
|
@background_task
|
27
29
|
def send_message(
|
@@ -119,13 +121,15 @@ send_message_for_http = partial(send_message, url=http_feishu_url)
|
|
119
121
|
try_catch_feishu_url = "https://open.feishu.cn/open-apis/bot/v2/hook/887fe4d3-8bcd-4cfb-bac9-62f776091ca2"
|
120
122
|
send_message_for_try_catch = partial(send_message, url=try_catch_feishu_url)
|
121
123
|
|
124
|
+
send_message_for_volc = partial(send_message, url=VOLC)
|
125
|
+
|
122
126
|
if __name__ == '__main__':
|
123
127
|
# send_message("xxx", title=None)
|
124
128
|
send_message(None, title=None)
|
125
129
|
|
126
130
|
# send_message_for_images("xxxxxxxx", title=None)
|
127
131
|
|
128
|
-
|
132
|
+
send_message_for_volc("xxxxxxxx")
|
129
133
|
# @catch(task_name='这是一个任务名')
|
130
134
|
# def f():
|
131
135
|
# time.sleep(3)
|