MeUtils 2025.3.7.22.46.32__py3-none-any.whl → 2025.3.13.19.7.25__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/METADATA +260 -260
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/RECORD +18 -21
- examples/_openaisdk/openai_audio.py +21 -2
- examples/_openaisdk/openai_images.py +1 -1
- meutils/apis/fal/images.py +2 -2
- meutils/apis/hailuoai/videos.py +3 -3
- meutils/apis/jimeng/common.py +1 -0
- meutils/apis/jimeng/images.py +14 -15
- meutils/caches/acache.py +21 -7
- meutils/data/VERSION +1 -1
- meutils/llm/completions/__init__.py +0 -1
- meutils/llm/completions/chat_spark.py +159 -45
- meutils/schemas/oneapi/common.py +6 -5
- meutils/schemas/openai_types.py +64 -2
- meutils/caches/c.py +0 -29
- meutils/caches/demo.py +0 -28
- meutils/caches/redis_.py +0 -26
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/LICENSE +0 -0
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/WHEEL +0 -0
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.3.7.22.46.32.dist-info → MeUtils-2025.3.13.19.7.25.dist-info}/top_level.txt +0 -0
@@ -91,7 +91,7 @@ examples/_openaisdk/kimi_qa.py,sha256=dNBIe01vK7p-8cFnbgVXJ5H3xPSW32-cc0rwZx3K_1
|
|
91
91
|
examples/_openaisdk/minimax.py,sha256=zOshBkL1bHgRlj4z6k2FQRScNTr7ysZkfh2-OaAynkU,2116
|
92
92
|
examples/_openaisdk/open_router.py,sha256=ky_tdPX9CZkq4rAnjaFrOY_bygZuy6V8jIQfh6bq9U0,1497
|
93
93
|
examples/_openaisdk/openai_aiplus.py,sha256=7sT2t4jjZBABFiwKQwUjgdilO8s006NuPAPx7neHER8,1182
|
94
|
-
examples/_openaisdk/openai_audio.py,sha256=
|
94
|
+
examples/_openaisdk/openai_audio.py,sha256=Fcp-k4CzU0oB7vDKldRLwUCIRIwwVn_w9CmbEWacbOk,1002
|
95
95
|
examples/_openaisdk/openai_baichuan.py,sha256=-xhHovkFmWOTX25CJjIon0my-ocmwfAZJu1C0eS80Xs,1614
|
96
96
|
examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_46IabY,1969
|
97
97
|
examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
|
@@ -107,7 +107,7 @@ examples/_openaisdk/openai_files.py,sha256=zcF4k4sQ2FnINhq6x1wCKw1WCu93g1h69Yul_
|
|
107
107
|
examples/_openaisdk/openai_gitee.py,sha256=UQEJMQMQDhgqYzo_aYetYXnBmVtqRwIweJDDK3NlSMw,1205
|
108
108
|
examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp797A,1056
|
109
109
|
examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
|
110
|
-
examples/_openaisdk/openai_images.py,sha256=
|
110
|
+
examples/_openaisdk/openai_images.py,sha256=RAnLVKGAXXrStRSfZQ2k584vfEpACf94s1_g57IV2Xc,6005
|
111
111
|
examples/_openaisdk/openai_jina.py,sha256=QeGRXMQmkJyg8Cz4Vfx4pP39a5TcO7pQQfPAPbBA8bs,1628
|
112
112
|
examples/_openaisdk/openai_json.py,sha256=M4tq_IkzYbmtgbFilGQHmRdJhH0OltiwGk7cK7uc-sQ,1850
|
113
113
|
examples/_openaisdk/openai_kindo.py,sha256=dRQd8BOUDlWo4xp2l1s3BeP7qv19i7CUjx14NRv1fxM,741
|
@@ -348,7 +348,7 @@ meutils/apis/chatglm/temp.py,sha256=zYe6JGUHVfb77T_TdNsdmpTs2D9OyqDTUEkblDAIoYY,
|
|
348
348
|
meutils/apis/chatglm/x.py,sha256=lI86Cd6SN4noCN5HM9gRugcVmjHDtxDTV4m-7Bj61N0,24312
|
349
349
|
meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
|
350
350
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
351
|
-
meutils/apis/fal/images.py,sha256=
|
351
|
+
meutils/apis/fal/images.py,sha256=YacJb4sdyv2J-R_OPc_P6d6EB2HhndRt862wEHsjRSU,8546
|
352
352
|
meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
|
353
353
|
meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
|
354
354
|
meutils/apis/fal/videos.py,sha256=GzMyS-nBMGAXHaCLKxgCdzowB3jpJDXLb6-y1v0zKNo,3387
|
@@ -361,7 +361,7 @@ meutils/apis/hailuoai/demo.py,sha256=WTnDFL2HgVpAjcn5BljLrbf2y2aATkvvNy75zoEIQkc
|
|
361
361
|
meutils/apis/hailuoai/hasha_new.py,sha256=1sD3fxmxYrEufmPaJZGAkYJoHKO85hfLXemnY-xYIO8,9101
|
362
362
|
meutils/apis/hailuoai/music.py,sha256=S_oi-ZDbocTfbRgREdXtGx50xzUc1PCZGuxmr917E7M,265
|
363
363
|
meutils/apis/hailuoai/upload.py,sha256=22S6W6hGQhUquVKqh7QCkXb6KHDl3iMKKi6Z0AJdFEI,6501
|
364
|
-
meutils/apis/hailuoai/videos.py,sha256=
|
364
|
+
meutils/apis/hailuoai/videos.py,sha256=98JGBHSh1eL3tTzOIKdCRC4_oHQW74By2S8kGn3QPdY,21195
|
365
365
|
meutils/apis/hailuoai/yy.py,sha256=du4CmLx5ebAI5FXe8NzQsmwpdA1_Kdxm7hgo5k9Zf-A,9016
|
366
366
|
meutils/apis/hf/__init__.py,sha256=ZZoRl8yNYekoMhE__67XXBKNSYJaLgjtaa0netjJKUU,271
|
367
367
|
meutils/apis/hf/got_ocr.py,sha256=pZURFpryDh_Ak6PNiARztOzYgkjVrfScJ5-0XzMBrzI,1776
|
@@ -393,11 +393,11 @@ meutils/apis/jiema/24mail.py,sha256=GUszRtoDe3T9q-X4embwT5YhcjgQ3XnkTJMKX93sCF4,
|
|
393
393
|
meutils/apis/jiema/__init__.py,sha256=YBybggoDRYCNYcwJOypxR7MzfTjIhqO7BkGlTt7NDo4,271
|
394
394
|
meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
395
395
|
meutils/apis/jimeng/__init__.py,sha256=a8CE_cOl9jqal0hycwaLm4Mnga8jmZlz9nCze_9bBqA,272
|
396
|
-
meutils/apis/jimeng/common.py,sha256=
|
396
|
+
meutils/apis/jimeng/common.py,sha256=vlNbB5YAylMrL-Lq_04JNy-XQxwU2m3vC-R4B3pDX4U,6810
|
397
397
|
meutils/apis/jimeng/doubao.py,sha256=5OdnBpmZQOCLIb6lnN8YrL7J7E0XF47q0UF-z6asSuI,4295
|
398
398
|
meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
|
399
399
|
meutils/apis/jimeng/files.py,sha256=E-pPmi6fIP_n6wgfiDbqeWsIfrXVZUe7LpA6Wds1xDI,11047
|
400
|
-
meutils/apis/jimeng/images.py,sha256=
|
400
|
+
meutils/apis/jimeng/images.py,sha256=84Dte9cf-QBduMUgdXC82F91slAZVIlOkNFtaTJ83ac,13211
|
401
401
|
meutils/apis/jimeng/videos.py,sha256=x-PDOYNBN-yTmNvMbyDbwm_E2LXZ6A4hcVzEahV_Hvc,10813
|
402
402
|
meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
|
403
403
|
meutils/apis/kling/api.py,sha256=8NEWunWX3pVWhZzDnzw6rd07nPfOuY2T-XkgL86ZWYg,2328
|
@@ -498,11 +498,8 @@ meutils/async_utils/background.py,sha256=dl6UaMIFBZDB1uxSZzGFJdSnpt3Xo0flK7gwsok
|
|
498
498
|
meutils/async_utils/common.py,sha256=bfZkUlQz21WHAh2W7SDxFtrvUYNBnRfVxIUgMmT7o1Q,5212
|
499
499
|
meutils/async_utils/test.py,sha256=lkZdgSzzgVg8hYVcaBNEJ3KBvFTEfjbXZVvtknQZsRQ,1155
|
500
500
|
meutils/caches/__init__.py,sha256=hIUEqNnmhukkbKK2F39bXe-MGDwzeUoTOf_sYly53xo,291
|
501
|
-
meutils/caches/acache.py,sha256=
|
502
|
-
meutils/caches/c.py,sha256=9hm9x_xMRGtqG51SirOS3Pzi2L9zxU_nov4muE5iJ48,699
|
501
|
+
meutils/caches/acache.py,sha256=ajuQkQUt4ojGEMUNO0IGpJTZKL3tWK0F4pBZU2uxl6g,3198
|
503
502
|
meutils/caches/common.py,sha256=_shMi_U99g5vzfg9SAmUQHVE2IgWyiNATiSBBsDKGHI,1743
|
504
|
-
meutils/caches/demo.py,sha256=tY3mJUe4D2gbBVMd8gny40nK2BwqBGsaWDjDJsL7ObE,758
|
505
|
-
meutils/caches/redis_.py,sha256=5Oxq_XT5BJ7C9emzsXWDkiY4p8dVG7XFn0WxB14-z5E,600
|
506
503
|
meutils/caches/redis_cache.py,sha256=oXGk_CZhjp9P_z1TG_zhmma4iGepK-iIWY_ZYQWSkFg,1395
|
507
504
|
meutils/caches/redis_mulit.py,sha256=WQrNmH98S0D9mG5eixqPtrYvOPi62T4w2ZvNETB4eU4,597
|
508
505
|
meutils/clis/__init__.py,sha256=2Fhn43X8kFP6FpAnnAMiPcdnjUwQaukiIr2uGB6mGAY,279
|
@@ -530,7 +527,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
530
527
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
531
528
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
532
529
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
533
|
-
meutils/data/VERSION,sha256=
|
530
|
+
meutils/data/VERSION,sha256=gvMaT5MaUqFzPLIuAj4fFtRKp8q9SVrRZa7KdzFCTP0,19
|
534
531
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
535
532
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
536
533
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -618,10 +615,10 @@ meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
|
|
618
615
|
meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
619
616
|
meutils/llm/utils.py,sha256=4u3b8VO3wX3xKny1AdV4579qXux1YA4k5gI-CYPtx0o,4279
|
620
617
|
meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
|
621
|
-
meutils/llm/completions/__init__.py,sha256=
|
618
|
+
meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
|
622
619
|
meutils/llm/completions/chat_gemini.py,sha256=tAbWcNmcZUqvpS9ZCLuljTKYE0nNRSIMxo4VqssVAIA,1784
|
623
620
|
meutils/llm/completions/chat_plus.py,sha256=g5I8WRX7NC4hIyAUqHExs8a9pwDOUdejanf1F2PUAxc,2207
|
624
|
-
meutils/llm/completions/chat_spark.py,sha256=
|
621
|
+
meutils/llm/completions/chat_spark.py,sha256=MBo4IlkEA9NhIyXYG6F0vbJkpQbO-awM1lHTWwM6M7E,9768
|
625
622
|
meutils/llm/completions/cp.py,sha256=tGf3umHKXDH0KuTfN7BLr8yAvN6MYWLYR5UVaJkJs0c,4172
|
626
623
|
meutils/llm/completions/delilegal.py,sha256=mr53ps7I33SC8Fjy4rma-xoNF-mLgwdZfHgdSOyLtQY,5131
|
627
624
|
meutils/llm/completions/dify.py,sha256=dqL_8uxAp2d8M00pkyh2I30tflwi4pUyX-V6pwe3_BA,3048
|
@@ -768,7 +765,7 @@ meutils/schemas/metaso_types.py,sha256=r_X0Exs_2S3rNS71RneemMpz7EvBIOLBfAMmWMQRn
|
|
768
765
|
meutils/schemas/napkin_types.py,sha256=Kp0MbpRxzMBz4HWW4DrfcgOvHZVEF3N7P5yNeC1XGI4,2664
|
769
766
|
meutils/schemas/ocr_types.py,sha256=fZWYQAKii7HaTlSU9DS0wHyiEoOHuLnhvgoiH4Cn498,1381
|
770
767
|
meutils/schemas/openai_api_protocol.py,sha256=0GhmhUTEr54N_XCVuZI1MSxJldvwMNJjUAAAdWznw58,12716
|
771
|
-
meutils/schemas/openai_types.py,sha256=
|
768
|
+
meutils/schemas/openai_types.py,sha256=TIUF1fYu3oMOeilPN7uQRcLdNsCIHhbfKAh1T2CHN4E,19996
|
772
769
|
meutils/schemas/pixverse_types.py,sha256=3mHg2KxvszV1U8K3GdzsODZz4uocLVRjEeJgYhX0Xmw,2347
|
773
770
|
meutils/schemas/playwright_types.py,sha256=zhZd53m1Wg4zlGtq2JM4z7Aon-u_eF6rzs-_TFYWvkU,1177
|
774
771
|
meutils/schemas/prodia_types.py,sha256=knh_lzAxMfWMoqAPmvyMweay9PmQmsoQ1X6Mj17ohWg,476
|
@@ -790,7 +787,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
|
|
790
787
|
meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
|
791
788
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
792
789
|
meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
|
793
|
-
meutils/schemas/oneapi/common.py,sha256=
|
790
|
+
meutils/schemas/oneapi/common.py,sha256=BDuvwo1uJjntTknxCvvwYgRRART2tQLDT6Ll_u0Mzgk,31188
|
794
791
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
795
792
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
796
793
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -919,9 +916,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
919
916
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
920
917
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
921
918
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
922
|
-
MeUtils-2025.3.
|
923
|
-
MeUtils-2025.3.
|
924
|
-
MeUtils-2025.3.
|
925
|
-
MeUtils-2025.3.
|
926
|
-
MeUtils-2025.3.
|
927
|
-
MeUtils-2025.3.
|
919
|
+
MeUtils-2025.3.13.19.7.25.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
920
|
+
MeUtils-2025.3.13.19.7.25.dist-info/METADATA,sha256=TWL4tG_hKS1nKv2xQRh_VxmD9RAgk-hpG5C-H2jhygY,32833
|
921
|
+
MeUtils-2025.3.13.19.7.25.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
922
|
+
MeUtils-2025.3.13.19.7.25.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
923
|
+
MeUtils-2025.3.13.19.7.25.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
924
|
+
MeUtils-2025.3.13.19.7.25.dist-info/RECORD,,
|
@@ -12,9 +12,28 @@ from meutils.pipe import *
|
|
12
12
|
|
13
13
|
# base_url = "https://openai-dev.chatfire.cn/audio/v1"
|
14
14
|
|
15
|
+
# model = "FunAudioLLM/CosyVoice2-0.5B"
|
16
|
+
# voice = "FunAudioLLM/CosyVoice2-0.5B:alex"
|
15
17
|
|
18
|
+
text = """
|
19
|
+
东北证券公司的精神
|
20
|
+
融合 创新 专注 至简
|
21
|
+
|
22
|
+
“融合”:融入市场、融通资源、融合发展
|
23
|
+
|
24
|
+
“创新”:勇于突破、追求卓越、超越自我
|
25
|
+
|
26
|
+
“专注”:专一专业、忠诚敬业、重德守律、做到极致
|
27
|
+
|
28
|
+
“至简”:简约简朴、脚踏实地、知行合一
|
29
|
+
"""
|
16
30
|
r = OpenAI(
|
17
31
|
# base_url=base_url
|
18
|
-
).audio.speech.create(input=
|
32
|
+
).audio.speech.create(input=text,
|
33
|
+
model='tts-1',
|
34
|
+
# model=model,
|
35
|
+
# voice="1"
|
36
|
+
voice="alloy"
|
37
|
+
)
|
19
38
|
|
20
|
-
r.stream_to_file('
|
39
|
+
r.stream_to_file('nesc.mp3')
|
meutils/apis/fal/images.py
CHANGED
@@ -143,9 +143,9 @@ if __name__ == '__main__':
|
|
143
143
|
}
|
144
144
|
|
145
145
|
# model = "fal-ai/flux-pro/v1.1" # 0.04
|
146
|
-
|
146
|
+
model = "fal-ai/flux-pro/v1.1-ultra"# 0.06
|
147
147
|
# model = "fal-ai/flux/dev/image-to-image" # 0.03 图生图
|
148
|
-
model = "fal-ai/recraft-v3" # 0.04 变清晰
|
148
|
+
# model = "fal-ai/recraft-v3" # 0.04 变清晰
|
149
149
|
# model = "fal-ai/ideogram/v2" # 0.08
|
150
150
|
# model = "fal-ai/ideogram/v2/turbo" # 0.05
|
151
151
|
# model = "fal-ai/flux/schnell"
|
meutils/apis/hailuoai/videos.py
CHANGED
@@ -38,7 +38,7 @@ send_message = partial(
|
|
38
38
|
MODEL_MAPPING = {
|
39
39
|
# video-01 video-01 video-01-live2d S2V-01
|
40
40
|
|
41
|
-
"t2v-01": "23000",
|
41
|
+
"t2v-01": "23000", # 23010
|
42
42
|
"t2v-01-director": "23010",
|
43
43
|
|
44
44
|
"i2v-01": "23001",
|
@@ -318,7 +318,6 @@ async def create_task(request: VideoRequest, token: Optional[str] = None):
|
|
318
318
|
|
319
319
|
# 307134660730421250
|
320
320
|
async def get_task(task_id: str, token: str):
|
321
|
-
|
322
321
|
task_id = task_id.rsplit('-', 1)[-1]
|
323
322
|
|
324
323
|
params = {
|
@@ -421,6 +420,7 @@ if __name__ == '__main__': # 304752356930580482
|
|
421
420
|
# arun(get_task(task_id="307177115102699528", token=token))
|
422
421
|
|
423
422
|
token = None
|
423
|
+
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDQ3MDMwNzIsInVzZXIiOnsiaWQiOiIzMDI4MzM4Njc3NzE5NDkwNTgiLCJuYW1lIjoibWUgYmV0dGVyIiwiYXZhdGFyIjoiIiwiZGV2aWNlSUQiOiIzMDI4MzM3NTk1MTI3NjQ0MTciLCJpc0Fub255bW91cyI6ZmFsc2V9fQ.Mjb64ZjkKyV9pj-_bXyLczU6kU729VLaKbYj9NmrK-4"
|
424
424
|
# token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzUxMTcwNzcsInVzZXIiOnsiaWQiOiIzMTEyOTUzMTkzMjc1NzYwNjQiLCJuYW1lIjoiVUdIUiBKVkJYIiwiYXZhdGFyIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jS3RuR2NjdGZsWV9fR2tiQ1MzdnhzSXdWSEFUX0ZmMFdyb3RvMnN4bFdWZW1KMm53PXM5Ni1jIiwiZGV2aWNlSUQiOiIzMTMzMTU5NTMxMDA0MTA4ODciLCJpc0Fub255bW91cyI6ZmFsc2V9fQ.KsRcfnAoPAR08ygzq-GIiujkFbZ2CgLeww7EP9qcb9Q"
|
425
425
|
request = VideoRequest(
|
426
426
|
model="I2V-01-live",
|
@@ -432,7 +432,7 @@ if __name__ == '__main__': # 304752356930580482
|
|
432
432
|
)
|
433
433
|
|
434
434
|
r = arun(create_task(request, token=token))
|
435
|
-
arun(get_task(task_id=r.task_id, token=r.system_fingerprint))
|
435
|
+
# arun(get_task(task_id=r.task_id, token=r.system_fingerprint))
|
436
436
|
#
|
437
437
|
#
|
438
438
|
# data = {
|
meutils/apis/jimeng/common.py
CHANGED
@@ -179,6 +179,7 @@ if __name__ == '__main__':
|
|
179
179
|
token = "1c21a9fe6a4230609d7ff13e5cec41ec"
|
180
180
|
token = "34438eb03d165737122180caf62a8058"
|
181
181
|
token = "ffeee346fbd19eceebb79a7bfbca4bfe"
|
182
|
+
token = "b8bb4cb67dba6c0d1048bdc0596bc461"
|
182
183
|
arun(check_token(token))
|
183
184
|
|
184
185
|
# print(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0].tolist())
|
meutils/apis/jimeng/images.py
CHANGED
@@ -191,9 +191,9 @@ async def create_draft_content(request: ImageRequest, token: str):
|
|
191
191
|
return draft_content
|
192
192
|
|
193
193
|
|
194
|
-
@retrying(
|
195
|
-
@rcache(ttl=24 * 3600, serializer="pickle")
|
196
|
-
async def create_task(request: ImageRequest, token: Optional[str] = None):
|
194
|
+
@retrying()
|
195
|
+
@rcache(ttl=30 * 24 * 3600, serializer="pickle", key_builder=lambda *args, **kwargs: args[1].prompt)
|
196
|
+
async def create_task(request: ImageRequest, token: Optional[str] = None): # todo: 图片
|
197
197
|
token = token or await get_next_token_for_polling(FEISHU_URL, check_token)
|
198
198
|
|
199
199
|
url = "/mweb/v1/aigc_draft/generate"
|
@@ -228,7 +228,6 @@ async def create_task(request: ImageRequest, token: Optional[str] = None):
|
|
228
228
|
logger.debug(bjson(data))
|
229
229
|
|
230
230
|
if task_id := (data.get("data") or {}).get("aigc_data", {}).get("history_record_id"): # bug
|
231
|
-
|
232
231
|
return TaskResponse(task_id=task_id, system_fingerprint=token)
|
233
232
|
else:
|
234
233
|
|
@@ -355,29 +354,29 @@ if __name__ == '__main__':
|
|
355
354
|
|
356
355
|
from meutils.apis.jimeng.files import face_recognize
|
357
356
|
|
358
|
-
face_recognize = arun(face_recognize(image_url, token))
|
359
|
-
|
360
|
-
face_recognize_data = face_recognize.get("data", {})
|
361
|
-
|
357
|
+
# face_recognize = arun(face_recognize(image_url, token))
|
358
|
+
#
|
359
|
+
# face_recognize_data = face_recognize.get("data", {})
|
362
360
|
|
363
361
|
data = {
|
364
362
|
"model": "seededit",
|
365
|
-
|
363
|
+
"prompt": "https://oss.ffire.cc/files/kling_watermark.png 让这个女人带上墨镜,衣服换个颜色把",
|
366
364
|
# "prompt": "草拟吗 艹",
|
367
|
-
"prompt": "让这个女人带上墨镜,衣服换个颜色",
|
365
|
+
# "prompt": "让这个女人带上墨镜,衣服换个颜色",
|
366
|
+
# "prompt": "Add a background for this photo, sort of sizzle it.",
|
368
367
|
|
369
368
|
"size": "1024x1024",
|
370
369
|
|
371
|
-
"controls": {
|
372
|
-
|
373
|
-
}
|
370
|
+
# "controls": {
|
371
|
+
# "face_recognize_data": face_recognize_data
|
372
|
+
# }
|
374
373
|
}
|
375
|
-
arun(generate(ImageRequest(**data)))
|
374
|
+
# arun(generate(ImageRequest(**data)))
|
376
375
|
|
377
376
|
# arun(generate(ImageRequest(prompt="fuck you")))
|
378
377
|
# prompt = "A plump Chinese beauty wearing a wedding dress revealing her skirt and underwear is swinging on the swing,Happy smile,cleavage,Exposed thighs,Spread your legs open,Extend your leg,panties,upskirt,Barefoot,sole"
|
379
378
|
# request = ImageRequest(prompt=prompt)
|
380
|
-
|
379
|
+
task = arun(create_task(ImageRequest(**data), token=token))
|
381
380
|
|
382
381
|
# arun(get_task(task.task_id, task.system_fingerprint))
|
383
382
|
|
meutils/caches/acache.py
CHANGED
@@ -12,12 +12,11 @@ import os
|
|
12
12
|
from meutils.pipe import *
|
13
13
|
from meutils.db.redis_db import async_pool
|
14
14
|
|
15
|
-
from aiocache import cached
|
16
|
-
|
17
15
|
from aiocache import cached, Cache, RedisCache, caches
|
18
16
|
from aiocache import multi_cached
|
17
|
+
from meutils.schemas.image_types import ImageRequest
|
19
18
|
|
20
|
-
logger.debug(async_pool.connection_kwargs)
|
19
|
+
# logger.debug(async_pool.connection_kwargs)
|
21
20
|
|
22
21
|
REDIS_URL = "redis://:chatfirechatfire@110.42.51.143:6379"
|
23
22
|
|
@@ -54,9 +53,21 @@ async def cached_fc(user_id, **kwargs):
|
|
54
53
|
return False
|
55
54
|
|
56
55
|
|
57
|
-
|
58
|
-
|
56
|
+
# global x
|
57
|
+
#
|
58
|
+
# key_builder = lambda *args, **kwargs: "key"
|
59
|
+
# key_builder = lambda *args, **kwargs: args[0].prompt
|
60
|
+
key_builder = lambda *args, **kwargs: args[1].prompt
|
61
|
+
|
62
|
+
def key_builder(*args, **kwargs):
|
63
|
+
# print(args)
|
64
|
+
return args[1].prompt
|
65
|
+
|
66
|
+
|
67
|
+
@rcache(ttl=11, key_builder=key_builder)
|
68
|
+
async def redis_fcc(user_id, **kwargs):
|
59
69
|
logger.debug(user_id)
|
70
|
+
# 1 / 0
|
60
71
|
return False
|
61
72
|
|
62
73
|
|
@@ -107,11 +118,14 @@ async def expensive_operation():
|
|
107
118
|
|
108
119
|
if __name__ == '__main__':
|
109
120
|
|
121
|
+
from aiocache import cached, Cache, RedisCache, caches
|
122
|
+
|
123
|
+
|
110
124
|
async def main():
|
111
125
|
for i in range(10):
|
112
|
-
logger.debug(i)
|
126
|
+
# logger.debug(i)
|
113
127
|
|
114
|
-
await
|
128
|
+
await redis_fcc(ImageRequest(prompt=f'a cat {i}'))
|
115
129
|
await asyncio.sleep(1)
|
116
130
|
|
117
131
|
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2025.03.
|
1
|
+
2025.03.13.19.07.25
|
@@ -18,6 +18,7 @@ todo: 记录上下文日志
|
|
18
18
|
|
19
19
|
from meutils.pipe import *
|
20
20
|
from meutils.io.openai_files import file_extract
|
21
|
+
from meutils.str_utils.json_utils import json_path
|
21
22
|
|
22
23
|
from meutils.llm.clients import AsyncOpenAI
|
23
24
|
from meutils.llm.openai_utils import to_openai_params
|
@@ -31,37 +32,52 @@ class Completions(object):
|
|
31
32
|
self.api_key = api_key
|
32
33
|
|
33
34
|
async def create(self, request: CompletionRequest):
|
34
|
-
|
35
|
-
|
36
|
-
|
35
|
+
if request.last_user_content.startswith("http"): # 文件问答-单轮
|
36
|
+
file_url, content = request.last_user_content.split(maxsplit=1)
|
37
|
+
file_content = await file_extract(file_url)
|
37
38
|
|
38
39
|
request.messages = [
|
39
40
|
{
|
40
41
|
'role': 'user',
|
41
|
-
"content"
|
42
|
-
{"type": "text", "text": request.last_user_content},
|
43
|
-
{"type": "image_url", "image_url": {"url": image_urls[-1]}}
|
44
|
-
]
|
42
|
+
'content': f"""{json.dumps(file_content, ensure_ascii=False)}\n\n{content}"""
|
45
43
|
}
|
46
44
|
]
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
elif image_urls := request.last_urls.get("image_url"): # 长度为1
|
46
|
+
url = image_urls[0]
|
47
|
+
|
48
|
+
if url.endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp')): # 图片问答
|
49
|
+
|
50
|
+
request.model = "doubao-1.5-vision-pro-32k" # 6月过期
|
51
|
+
for i, message in enumerate(request.messages):
|
52
|
+
if message.get("role") == "user":
|
53
|
+
user_contents = message.get("content")
|
54
|
+
if isinstance(user_contents, list):
|
55
|
+
for i, content in enumerate(user_contents):
|
56
|
+
content_type = content.get("type")
|
57
|
+
|
58
|
+
if content_type == "image_url":
|
59
|
+
image_url = content.get("image_url", "")
|
60
|
+
|
61
|
+
user_contents[i] = {"type": "image_url", "image_url": {"url": image_url}}
|
62
|
+
|
63
|
+
else: # 文件问答-多轮
|
64
|
+
for i, message in enumerate(request.messages[::-1], 1):
|
65
|
+
if message.get("role") == "user":
|
66
|
+
texts = json_path(message, expr='$..text') or [""]
|
67
|
+
file_urls = json_path(message, expr='$..image_url') or [""]
|
51
68
|
|
52
|
-
|
53
|
-
file_url, content = content.split(maxsplit=1)
|
54
|
-
file_content = await file_extract(file_url)
|
69
|
+
# logger.debug(f"""{texts} \n\n {file_urls}""")
|
55
70
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
{content}
|
60
|
-
"""
|
61
|
-
}
|
62
|
-
break
|
71
|
+
text, file_url = texts[-1], file_urls[-1]
|
72
|
+
if file_url in image_urls:
|
73
|
+
file_content = await file_extract(file_url)
|
63
74
|
|
64
|
-
|
75
|
+
message["content"] = f"""{json.dumps(file_content, ensure_ascii=False)}\n\n{text}"""
|
76
|
+
|
77
|
+
request.messages = request.messages[-i:]
|
78
|
+
break # 截断:从最新的文件开始
|
79
|
+
|
80
|
+
logger.debug(request.model_dump_json(indent=4))
|
65
81
|
|
66
82
|
data = to_openai_params(request)
|
67
83
|
return await AsyncOpenAI(api_key=self.api_key).chat.completions.create(**data)
|
@@ -100,36 +116,125 @@ if __name__ == '__main__':
|
|
100
116
|
# ]
|
101
117
|
# },
|
102
118
|
|
119
|
+
# {
|
120
|
+
# 'role': 'user',
|
121
|
+
# # "content": '你好',
|
122
|
+
# "content": [
|
123
|
+
# {"type": "text", "text": "描述第一张图片"},
|
124
|
+
#
|
125
|
+
# {"type": "image_url", "image_url": "https://oss.ffire.cc/files/kling_watermark.png"},
|
126
|
+
# # {"type": "image_url", "image_url": "https://oss.ffire.cc/files/nsfw.jpg"}
|
127
|
+
#
|
128
|
+
# ],
|
129
|
+
#
|
130
|
+
# # 'content': {
|
131
|
+
# # "type": "file_url",
|
132
|
+
# # "file_url": {"url": "https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf", "detai": "auto"}
|
133
|
+
# # },
|
134
|
+
# # 'content': "https://oss.ffire.cc/files/%E6%8B%9B%E6%A0%87%E6%96%87%E4%BB%B6%E5%A4%87%E6%A1%88%E8%A1%A8%EF%BC%88%E7%AC%AC%E4%BA%8C%E6%AC%A1%EF%BC%89.pdf 这个文件讲了什么?",
|
135
|
+
# # 'content': "https://translate.google.com/?sl=zh-CN&tl=en&text=%E6%8F%90%E4%BE%9B%E6%96%B9&op=tr1anslate 这个文件讲了什么?",
|
136
|
+
#
|
137
|
+
# # "content": "https://oss.ffire.cc/files/百炼系列手机产品介绍.docx 总结下"
|
138
|
+
# # "content": "https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\n\n总结下"
|
139
|
+
#
|
140
|
+
# # "content": "https://admin.ilovechatgpt.top/file/lunIMYAIzhinengzhushouduishenghuodocx_14905733.docx 总结"
|
141
|
+
#
|
142
|
+
# },
|
143
|
+
#
|
144
|
+
# {'role': 'assistant', 'content': "好的"},
|
145
|
+
#
|
146
|
+
# {
|
147
|
+
# 'role': 'user',
|
148
|
+
# # "content": '描述第一张图片',
|
149
|
+
# "content": [
|
150
|
+
# {"type": "text", "text": "描述第一张图片"},
|
151
|
+
#
|
152
|
+
# {"type": "image_url", "image_url": "https://oss.ffire.cc/files/nsfw.jpg"}
|
153
|
+
#
|
154
|
+
# ],
|
155
|
+
#
|
156
|
+
# },
|
103
157
|
{
|
104
158
|
'role': 'user',
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
# ],
|
159
|
+
'content': [
|
160
|
+
{
|
161
|
+
"type": "text",
|
162
|
+
"text": "总结下"
|
163
|
+
},
|
111
164
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
165
|
+
{
|
166
|
+
"type": "image_url",
|
167
|
+
"image_url": "xx"
|
168
|
+
}
|
169
|
+
]
|
170
|
+
},
|
171
|
+
{
|
172
|
+
'role': 'user',
|
173
|
+
'content': [
|
174
|
+
{
|
175
|
+
"type": "text",
|
176
|
+
"text": "总结下"
|
177
|
+
},
|
121
178
|
|
122
|
-
|
179
|
+
{
|
180
|
+
"type": "image_url",
|
181
|
+
"image_url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf"
|
182
|
+
}
|
183
|
+
]
|
184
|
+
},
|
185
|
+
{
|
186
|
+
'role': 'user',
|
187
|
+
'content': [
|
188
|
+
{
|
189
|
+
"type": "text",
|
190
|
+
"text": "总结下"
|
191
|
+
},
|
123
192
|
|
193
|
+
{
|
194
|
+
"type": "image_url",
|
195
|
+
"image_url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf"
|
196
|
+
}
|
197
|
+
]
|
198
|
+
},
|
199
|
+
{
|
200
|
+
'role': 'assistant',
|
201
|
+
'content': "你好"
|
124
202
|
},
|
203
|
+
{
|
204
|
+
'role': 'user',
|
205
|
+
'content': [
|
206
|
+
{
|
207
|
+
"type": "text",
|
208
|
+
"text": "总结下"
|
209
|
+
},
|
125
210
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
211
|
+
{
|
212
|
+
"type": "image_url",
|
213
|
+
"image_url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf"
|
214
|
+
}
|
215
|
+
]
|
216
|
+
},
|
217
|
+
{
|
218
|
+
'role': 'assistant',
|
219
|
+
'content': "1"
|
220
|
+
},
|
221
|
+
{
|
222
|
+
'role': 'user',
|
223
|
+
'content': [
|
224
|
+
{
|
225
|
+
"type": "text",
|
226
|
+
"text": "总结1"
|
227
|
+
}
|
228
|
+
]
|
229
|
+
},
|
230
|
+
{
|
231
|
+
'role': 'assistant',
|
232
|
+
'content': "2"
|
233
|
+
},
|
234
|
+
{
|
235
|
+
'role': 'user',
|
236
|
+
'content': "总结2"
|
237
|
+
},
|
133
238
|
# 'content': [
|
134
239
|
# {
|
135
240
|
# "type": "text",
|
@@ -145,4 +250,13 @@ if __name__ == '__main__':
|
|
145
250
|
|
146
251
|
)
|
147
252
|
|
253
|
+
# [{'role': 'system',
|
254
|
+
# 'content': 'undefined\n Current date: 2025-03-13'},
|
255
|
+
# {'role': 'user',
|
256
|
+
# 'content': [{'type': 'text', 'text': '解读'},
|
257
|
+
# {'type': 'image_url',
|
258
|
+
# 'image_url': 'https://ai.chatfire.cn/files/images/xx-1741850404348-339a12ba3.png'}]},
|
259
|
+
# {},
|
260
|
+
# {'role': 'user', 'content': '总结一下'}]
|
261
|
+
|
148
262
|
arun(c.create(request))
|
meutils/schemas/oneapi/common.py
CHANGED
@@ -405,13 +405,13 @@ MODEL_RATIO = {
|
|
405
405
|
# 阿里千问 https://dashscope.console.aliyun.com/billing
|
406
406
|
"qwen-long": 0.25,
|
407
407
|
"qwen-turbo": 0.05,
|
408
|
-
"qwen-plus": 0.4 *
|
409
|
-
"qwen-max": 1.2 *
|
408
|
+
"qwen-plus": 0.4 * 1,
|
409
|
+
"qwen-max": 1.2 * 1,
|
410
410
|
"qwen-max-longcontext": 20,
|
411
411
|
"qwen-turbo-2024-11-01": 0.15,
|
412
|
-
"qwen-max-latest": 1.2 *
|
413
|
-
"qwen2.5-max": 1.2 *
|
414
|
-
"qwen-max-2025-01-25": 1.2 *
|
412
|
+
"qwen-max-latest": 1.2 * 1,
|
413
|
+
"qwen2.5-max": 1.2 * 1,
|
414
|
+
"qwen-max-2025-01-25": 1.2 * 1,
|
415
415
|
|
416
416
|
"qwen-vl-max-latest": 1.5,
|
417
417
|
"qwen-vl-plus-latest": 0.75,
|
@@ -690,6 +690,7 @@ MODEL_RATIO = {
|
|
690
690
|
"gpt-4o-realtime-preview-2024-10-01": 2.5,
|
691
691
|
"gpt-4o-audio-preview": 2.5 / 2,
|
692
692
|
"gpt-4o-mini-audio-preview": 0.15 / 2,
|
693
|
+
"gpt-4o-audio-preview-2024-12-17": 2.5 / 2,
|
693
694
|
|
694
695
|
"gpt-4o": 1.25,
|
695
696
|
"gpt-4o-all": 2.5, # 逆向
|