MeUtils 2025.1.29.10.0.47__py3-none-any.whl → 2025.2.5.11.6.16__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MeUtils
3
- Version: 2025.1.29.10.0.47
3
+ Version: 2025.2.5.11.6.16
4
4
  Summary: description
5
5
  Home-page: https://github.com/yuanjie-ai/MeUtils
6
6
  Author: yuanjie
@@ -64,41 +64,41 @@ Requires-Dist: sse-starlette ; extra == 'ai'
64
64
  Requires-Dist: openai ; extra == 'ai'
65
65
  Requires-Dist: langchain ; extra == 'ai'
66
66
  Provides-Extra: all
67
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
68
- Requires-Dist: pretty-errors ; extra == 'all'
69
- Requires-Dist: asyncmy ; extra == 'all'
70
- Requires-Dist: cachetools ; extra == 'all'
71
- Requires-Dist: sse-starlette ; extra == 'all'
72
- Requires-Dist: jieba ; extra == 'all'
73
- Requires-Dist: redis-py-cluster ; extra == 'all'
74
- Requires-Dist: faiss-cpu ; extra == 'all'
75
- Requires-Dist: reportlab ; extra == 'all'
76
- Requires-Dist: streamlit ; extra == 'all'
67
+ Requires-Dist: iteration-utilities ; extra == 'all'
68
+ Requires-Dist: sqlalchemy ; extra == 'all'
77
69
  Requires-Dist: dataframe-image ; extra == 'all'
78
- Requires-Dist: thriftpy2 ; extra == 'all'
79
- Requires-Dist: pymongo ; extra == 'all'
70
+ Requires-Dist: pyarrow ; extra == 'all'
71
+ Requires-Dist: faiss-cpu ; extra == 'all'
80
72
  Requires-Dist: fastapi[all] ; extra == 'all'
81
73
  Requires-Dist: polars ; extra == 'all'
82
- Requires-Dist: pymilvus ; extra == 'all'
83
- Requires-Dist: pymupd ; extra == 'all'
74
+ Requires-Dist: thriftpy2 ; extra == 'all'
75
+ Requires-Dist: sse-starlette ; extra == 'all'
76
+ Requires-Dist: pymysql ; extra == 'all'
77
+ Requires-Dist: seaborn ; extra == 'all'
78
+ Requires-Dist: fastapi ; extra == 'all'
79
+ Requires-Dist: uvicorn ; extra == 'all'
80
+ Requires-Dist: streamlit ; extra == 'all'
84
81
  Requires-Dist: missingno ; extra == 'all'
85
- Requires-Dist: iteration-utilities ; extra == 'all'
82
+ Requires-Dist: jinja2 ; extra == 'all'
83
+ Requires-Dist: pymilvus ; extra == 'all'
86
84
  Requires-Dist: gunicorn ; extra == 'all'
87
- Requires-Dist: thefuck ; extra == 'all'
85
+ Requires-Dist: geopy ; extra == 'all'
88
86
  Requires-Dist: schedule ; extra == 'all'
87
+ Requires-Dist: openai ; extra == 'all'
89
88
  Requires-Dist: pandas-summary ; extra == 'all'
90
- Requires-Dist: pyarrow ; extra == 'all'
89
+ Requires-Dist: jieba ; extra == 'all'
90
+ Requires-Dist: asyncmy ; extra == 'all'
91
+ Requires-Dist: reportlab ; extra == 'all'
91
92
  Requires-Dist: simplejson ; extra == 'all'
92
93
  Requires-Dist: langchain ; extra == 'all'
93
- Requires-Dist: sqlalchemy ; extra == 'all'
94
+ Requires-Dist: redis-py-cluster ; extra == 'all'
95
+ Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
96
+ Requires-Dist: pretty-errors ; extra == 'all'
97
+ Requires-Dist: pymupd ; extra == 'all'
98
+ Requires-Dist: thefuck ; extra == 'all'
99
+ Requires-Dist: cachetools ; extra == 'all'
94
100
  Requires-Dist: filetype ; extra == 'all'
95
- Requires-Dist: fastapi ; extra == 'all'
96
- Requires-Dist: pymysql ; extra == 'all'
97
- Requires-Dist: geopy ; extra == 'all'
98
- Requires-Dist: seaborn ; extra == 'all'
99
- Requires-Dist: openai ; extra == 'all'
100
- Requires-Dist: uvicorn ; extra == 'all'
101
- Requires-Dist: jinja2 ; extra == 'all'
101
+ Requires-Dist: pymongo ; extra == 'all'
102
102
  Provides-Extra: ann
103
103
  Requires-Dist: pymilvus ; extra == 'ann'
104
104
  Requires-Dist: faiss-cpu ; extra == 'ann'
@@ -42,6 +42,7 @@ examples/test.py,sha256=SNuY_zzLHa9MpHksvTopGuWx_wTryZ_2L2WouLCJJRc,1165
42
42
  examples/typer_demo.py,sha256=HcnqBZQoaxpZVDrq9gb0aMLDK4WHlbUcXca3v9w-aTs,639
43
43
  examples/wandb_demo.py,sha256=jqxYoe0XsiphEjEDsl71hGBAr3ubWEcNmLbgF23_n6g,959
44
44
  examples/x.py,sha256=DQWhXDF0unELlHhk3Xz65Bv_1-Z6iUcWUQ0FYLN4nyc,309
45
+ examples/xxx.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
46
  examples/yaml_demo.py,sha256=zkXtFXchG28vPLN3q3eyPq4f2ita-cAfQSPQgzEzr30,356
46
47
  examples/zk.py,sha256=coSzagLeMJWv5NpABktzxnSX8VhbthRCWxKXIl1Z-p4,609
47
48
  examples/zk_demo.py,sha256=X0TIyEpIYGccv5hNQMzu8kLbpSGH7SAglQ6Pl2vpP2c,843
@@ -91,28 +92,32 @@ examples/_openaisdk/open_router.py,sha256=Z4i_FJIc773JnIdYA3Hhuy1Dq5-DIOIrmkWwbp
91
92
  examples/_openaisdk/openai_aiplus.py,sha256=7sT2t4jjZBABFiwKQwUjgdilO8s006NuPAPx7neHER8,1182
92
93
  examples/_openaisdk/openai_audio.py,sha256=ZyYslH9RfdJBpNUpjKn_5x0d94_H291Qt31u_6weISc,484
93
94
  examples/_openaisdk/openai_baichuan.py,sha256=ciRqT8TTBPQpSYFqvy5VW61CocGQctwVJgYg421Oj6s,1614
95
+ examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_46IabY,1969
94
96
  examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
95
- examples/_openaisdk/openai_chatfire.py,sha256=P2hrjtFQk7OzTHYbEElHSX1_oT0kjubll69X41Xtjf4,18104
97
+ examples/_openaisdk/openai_chatfire.py,sha256=YhAxtde-bzXfr3K6Y_6N57aI1VK1HCIbnQqXj1RWy74,18193
96
98
  examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
99
+ examples/_openaisdk/openai_dashscope.py,sha256=IsvC65_qgy46kr-1fJFZE3LqKl0UQMBPLw-fbp-AsR4,1029
97
100
  examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
98
- examples/_openaisdk/openai_deepseek.py,sha256=HaLJMp7k6w7vtb3arIz_QdcFNLUpYQXdogWbL1RArpI,696
101
+ examples/_openaisdk/openai_deepseek.py,sha256=0IbHh2F6eVDs-i8gP8x8wj6s9R6CzOGN7QrCp1EuB5k,2086
99
102
  examples/_openaisdk/openai_doubao.py,sha256=IKM929LKgYm2fXbCIvuX4ZPpUkm2igcdhJujV49XCaQ,1341
100
103
  examples/_openaisdk/openai_embeddings.py,sha256=2hV3o9PbelIW5mCDh_PYvntaeI-hyuaFRgnzC6sWJo4,869
104
+ examples/_openaisdk/openai_ep.py,sha256=cAaeyC8Lstk1MB36c4h7X9n7EnEnY7rr2Tugo_diT3M,726
101
105
  examples/_openaisdk/openai_files.py,sha256=gfUbKGZg5P7c3kSMfwalIThi_SEs8O-JTqx49bYFtyM,1505
102
- examples/_openaisdk/openai_gitee.py,sha256=TfuvFl6E2MubHJQO4hv-5r80bQUgwUWP1jAtIY9bDaU,870
106
+ examples/_openaisdk/openai_gitee.py,sha256=8paPl2nz4ER_2lWlqAbAcvtcV-Vuu88p5ALckyvSFec,1140
103
107
  examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp797A,1056
104
108
  examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
105
- examples/_openaisdk/openai_images.py,sha256=stsIl1Woy8JJlTvjZOD5Ebgsqyz1aXQZ_8WOHJ6P4_U,5572
109
+ examples/_openaisdk/openai_images.py,sha256=mJQGbue_ka9kjsNx1TRfIRab9HgC0h5i0O_6U7kxb_c,5676
106
110
  examples/_openaisdk/openai_json.py,sha256=M4tq_IkzYbmtgbFilGQHmRdJhH0OltiwGk7cK7uc-sQ,1850
107
111
  examples/_openaisdk/openai_lingyi.py,sha256=l2GcNxhwfLv7MfMF-cdRWGGvX-dRaZyb8IRlXLPACMw,1834
108
112
  examples/_openaisdk/openai_modelscope.py,sha256=eb-oj7O6VQiCBbcATB3iUS0iRRMJcUDqRFt51-3VJU0,1444
113
+ examples/_openaisdk/openai_moderations.py,sha256=WoIyXDEn4dfVPwqFc54HSz0-7wLPu7pd4ZisZcyLOWM,1369
109
114
  examples/_openaisdk/openai_moon.py,sha256=Y7RrB6SUi9taQOlA50nfGTpQa9ON6XmPmrxtL-hSL8M,1753
110
115
  examples/_openaisdk/openai_oi.py,sha256=8KJ62QgpAZdGWAoYN6AC9M9TrD8JQf7ZO_NAgXZywTo,1414
111
116
  examples/_openaisdk/openai_ppu.py,sha256=cpr__WVlOrm2w1WjRV7v0rux4oiJkaqBnUZImR6MaEs,1010
112
117
  examples/_openaisdk/openai_qwen.py,sha256=OzYJbHcTQ-vd81GcOdUAt0TqzA5lr5zkPhhzM7jPHDk,2009
113
118
  examples/_openaisdk/openai_search.py,sha256=HKRTU6y9j_nUfZgrJt2eZ84d7TVT39WN-dcA_BFkVb4,937
114
119
  examples/_openaisdk/openai_sensenova.py,sha256=TnJpHcD1tG5w_x5DsgFgBRWrU8XUkww0uCebgNFfZDM,3216
115
- examples/_openaisdk/openai_siliconflow.py,sha256=zpbrnKt0nWLJpaxrq_VyjE8-knDRLR7kIzNZxJZUZgs,1387
120
+ examples/_openaisdk/openai_siliconflow.py,sha256=bMPmD3cTBBXrDIx5WbSp4OTMvNVGBpwTR1aHDBZJBTk,1442
116
121
  examples/_openaisdk/openai_step.py,sha256=rwXrGRs5CHhWpNl9oeIHltErp1Or_B3PVKNAoMGY-0c,1054
117
122
  examples/_openaisdk/openai_test.py,sha256=gjPveJYkI_MqCePoVZ6kNlEEChRgedE2hzMkN7gZuqI,1909
118
123
  examples/_openaisdk/openai_together.py,sha256=o9FQKDdLwx8L0zMxrceIakymT2GqFfZ2v4UjVaLyB8M,1591
@@ -367,7 +372,7 @@ meutils/apis/images/deepinfra.py,sha256=lMqfU0LIXEzHiAS31dCcoTnPIE6tpoDJhq61H0TV
367
372
  meutils/apis/images/demo.py,sha256=Cjk-EKMKbp44czykW_44qR0TzElX8nNCALqXBBw5sJA,4405
368
373
  meutils/apis/images/edits.py,sha256=47s_oggNT3Vp1TYr4hwuGE08hOkNn47Nmv9wyDsMujQ,9727
369
374
  meutils/apis/images/eidt.py,sha256=42dCdGPSLvr0zh8OZtwQxi-5B6Ln_o_FsL1gt2Ura_k,750
370
- meutils/apis/images/recraft.py,sha256=Qhj-ArOnEJbX0BTKl1AqImSnlbcP3uVno8mIm5_N0co,59522
375
+ meutils/apis/images/recraft.py,sha256=LoE6r8nMZLtVzaoZO3QstyESFJtTqf4nplE72cJ4L-Q,59620
371
376
  meutils/apis/images/flux/__init__.py,sha256=W_PZabQm6EmtJYmzEiEpL_WCXTAW0AiJ-t_n5UTrE8c,271
372
377
  meutils/apis/images/flux/fluxpro.py,sha256=NFl9t9C3R3jsNJpez4o9tOz3r-fjRXj-vKMxCSTRDTU,4022
373
378
  meutils/apis/images/flux/mystic.py,sha256=cUkqaMAbd3dSBCvFEoNBBoEoWCGzvBJWPEkEq1Q8xzw,3616
@@ -461,7 +466,7 @@ meutils/apis/uptime_kuma/国产分组.py,sha256=OIiUUFfjWEEJHg5fr8Vf5xSBWkbXboQ4
461
466
  meutils/apis/videos/__init__.py,sha256=OCykr_XRIOH18Xh5hfBq5yMxbk8e9Myk4KuAtrtgAWw,272
462
467
  meutils/apis/videos/sora.py,sha256=G3wGlvTYl4YfG20L2HXPhmhZ4HwrlIFSU-KYM-TdALg,295
463
468
  meutils/apis/vidu/__init__.py,sha256=8nQN-RiZGJlZaZGVFbtHgK57_Ml5g_vFCiOImWwBm0I,242
464
- meutils/apis/vidu/vidu_video.py,sha256=SKhF7ErlpNgB9bjK1sEZYwrA8lgj0acmhFrxSkFlC1k,17570
469
+ meutils/apis/vidu/vidu_video.py,sha256=8u4fz9kTT9z-Y0ORMHBPade_CQh9fjD-szQiATVaJIM,18177
465
470
  meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
466
471
  meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
467
472
  meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81oNbTS0mY,307
@@ -484,7 +489,8 @@ meutils/async_utils/background.py,sha256=dl6UaMIFBZDB1uxSZzGFJdSnpt3Xo0flK7gwsok
484
489
  meutils/async_utils/common.py,sha256=bfZkUlQz21WHAh2W7SDxFtrvUYNBnRfVxIUgMmT7o1Q,5212
485
490
  meutils/async_utils/test.py,sha256=lkZdgSzzgVg8hYVcaBNEJ3KBvFTEfjbXZVvtknQZsRQ,1155
486
491
  meutils/caches/__init__.py,sha256=2JSElkhHh0vhUCvpBhTEsglw7WdkYj2HsAQutbqiBUM,242
487
- meutils/caches/acache.py,sha256=8dV1l1HM1lbdfTt5OHz1Vk_WQlwgXnxRxPusRJZ93Fw,933
492
+ meutils/caches/acache.py,sha256=iZLzxXSgPSYc1BNTJvaH258UqTmntyY3RhXrEgEpfGg,1342
493
+ meutils/caches/demo.py,sha256=tY3mJUe4D2gbBVMd8gny40nK2BwqBGsaWDjDJsL7ObE,758
488
494
  meutils/caches/redis_cache.py,sha256=-P90KABpQ6Hq8eSRc8tkOvw1dr_qiOfUQndCvf0InZc,1463
489
495
  meutils/clis/__init__.py,sha256=2Fhn43X8kFP6FpAnnAMiPcdnjUwQaukiIr2uGB6mGAY,279
490
496
  meutils/clis/browser.py,sha256=eMQ-7LlFJN_Sqs0DMnCVulfdUv9aGhHm5drCViQm4CY,4511
@@ -511,7 +517,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
511
517
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
512
518
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
513
519
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
514
- meutils/data/VERSION,sha256=k4uczZNRYh8ZqIZkhsiaRAZ3kZXyGtsE-i7OjfAIC9U,19
520
+ meutils/data/VERSION,sha256=kpi7X-mqDIMI1qjJpkc7WmR1X4jVzMBzwOoFSUssfdk,19
515
521
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
516
522
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
517
523
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -576,7 +582,7 @@ meutils/llm/completions/dify.py,sha256=dqL_8uxAp2d8M00pkyh2I30tflwi4pUyX-V6pwe3_
576
582
  meutils/llm/completions/kimi.py,sha256=TSkLObebIAb_oivOMq3aKx9qoXcMy611_g2yIKex9eo,1541
577
583
  meutils/llm/completions/modelscope.py,sha256=umPlJuHSL2RR0oNdTIAqts8iqEmGp_MR6Vh49g-UZuc,271
578
584
  meutils/llm/completions/oi.py,sha256=DmvzxJfdLA_I3MWcULhFtiUdo90j7V2dLvYvmZ-Tm9U,293
579
- meutils/llm/completions/qwenllm.py,sha256=h2qxyWqBC0pID_DJfu7Be9EyUleZnKurUk9iNxXqqoQ,1904
585
+ meutils/llm/completions/qwenllm.py,sha256=ZB5qLWpKVHAjKGNHHrvDp899XZgfMMNxq030ZeZW2yU,2039
580
586
  meutils/llm/completions/rag.py,sha256=cpQ1aZX2QI1QDfFpODTxWHPYglK6_3qrlUM_KHLBNhc,1112
581
587
  meutils/llm/completions/tryblend.py,sha256=NfVRktn1QiE2k60PzEI-LmKuxZCc7mtL_KlsrVcZg4k,8957
582
588
  meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb_E,10138
@@ -592,7 +598,7 @@ meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cp
592
598
  meutils/llm/completions/rag/rag.py,sha256=mnC4bZUMuNYuPFXMBqXMofj_ms8uP5MMw1leJ5jXA_k,1209
593
599
  meutils/llm/functions/__init__.py,sha256=It6pcNwRBSh3Em45ooi61lc5tFg8eOYv0BvEFuRjSGQ,271
594
600
  meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
595
- meutils/llm/openai_utils/common.py,sha256=RRoyMfXqOo6GG4UZvwCIaUA0kbzY_O1tjL7Oq4Mlidk,9398
601
+ meutils/llm/openai_utils/common.py,sha256=KkvQ-FdSlyuBS61_qbmbVbvU-Sdfz-sbZQ-3lTG-fMg,9436
596
602
  meutils/llm/openai_utils/tool_outputs.py,sha256=6mNkm4btgy0uzF98gdmcah1bYmoflXdLz2Sqm0KC_LQ,1224
597
603
  meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayzsXVmBuQxw,3474
598
604
  meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
@@ -729,14 +735,14 @@ meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrP
729
735
  meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
730
736
  meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
731
737
  meutils/schemas/video_types.py,sha256=shXriVG_HMVkUCwNQl7H6vTmZ2SXkjzDHJJ5uWfXKcQ,2519
732
- meutils/schemas/vidu_types.py,sha256=LAwGTmkUHanwx5BtkYMEPDSHrfdHlMVWF872niOT8oA,8966
738
+ meutils/schemas/vidu_types.py,sha256=NIJn4RKZqFu1qp5T4bcPELwp5eeFh8WSphVda2lpqDY,8974
733
739
  meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
734
740
  meutils/schemas/yuanbao_types.py,sha256=ZmB-7_eAuTU3QDonNgy0vcVP4YQNwA5yJ8G4mvfOmUE,11966
735
741
  meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
736
742
  meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
737
743
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
738
744
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
739
- meutils/schemas/oneapi/common.py,sha256=JwW1HUlIezU8_n-kbPBkxw1YfVS_s5-t3P7O4pOsee0,26967
745
+ meutils/schemas/oneapi/common.py,sha256=DL6edP_sCX8DPT2m7csvlpjiORmb1YLBVPUeZW-A7CY,27494
740
746
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
741
747
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
742
748
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -864,9 +870,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
864
870
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
865
871
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
866
872
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
867
- MeUtils-2025.1.29.10.0.47.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
868
- MeUtils-2025.1.29.10.0.47.dist-info/METADATA,sha256=TyhUR2tPgx1QmmzFcKF_Uf-siHs1m_zIzstZsE1JNH4,6142
869
- MeUtils-2025.1.29.10.0.47.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
870
- MeUtils-2025.1.29.10.0.47.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
871
- MeUtils-2025.1.29.10.0.47.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
872
- MeUtils-2025.1.29.10.0.47.dist-info/RECORD,,
873
+ MeUtils-2025.2.5.11.6.16.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
874
+ MeUtils-2025.2.5.11.6.16.dist-info/METADATA,sha256=aQXVGP_VuOPYR5nrDWNfyyLEhK9_X7RWdl0Cx08HWDI,6141
875
+ MeUtils-2025.2.5.11.6.16.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
876
+ MeUtils-2025.2.5.11.6.16.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
877
+ MeUtils-2025.2.5.11.6.16.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
878
+ MeUtils-2025.2.5.11.6.16.dist-info/RECORD,,
@@ -0,0 +1,61 @@
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="bce-v3/ALTAK-jjasPcXYfdCD51QIO84GW/51b5e882be284463ab99ea8c03f20cce818c21eb",
19
+ api_key="bce-v3/ALTAK-agwWy579fTIawmcCfD0j6/3964bf0b39ac01bb6045c02670e3e0723acee85c;ZjkyZmQ2YmQxZTQ3NDcyNjk0ZTg1ZjYyYjlkZjNjODB8AAAAABMCAAASj16tiXir0pctis9aaYY7OkInbGYHyI2AJqNe9knwoNulTnF6LJ4jE+t1sE0N5HkGG9Dq0Lg8UclYz16mdTm/jTld58Vjv11EKELz9EFb9yIPOIVt7gH3s7TGdvYLllTMoBFpy+TIsUiGZsxMiROVMGGY0xjrCnzd8UU6x7bxOSdih+FnhOB4TEr3HIC4lj6eKo6gRh2DLxPhFIBFf1FTsheXBAl/BVsUcO/Ec6jkmZAx1OyHsD5MJWB3IrcbJrFJavlqh2OjMhF1nxie7LVcmKWElrht230QZWZTSzR8ACLlyfATqMUu82Y3tT2RqTMLqdyNJgjIxJ2uK4tuXy5o0gEhdee3YyD1IZru4nbKOQL8KpanH7s6i+8YumaMeY/vjfxGZPNQ7X43Wr9+jfStdqD/NHouJZ9puZVqenSlT2pUC5GFrVWBiEuV9iZ+zV4=",
20
+ base_url="https://qianfan.baidubce.com/v2",
21
+ # default_headers={"appid": "app-MuYR79q6"}
22
+
23
+ )
24
+
25
+
26
+
27
+ try:
28
+ completion = client.chat.completions.create(
29
+ model="DeepSeek-V3",
30
+ # model = "ernie-3.5-8k",
31
+ # model="xxxxxxxxxxxxx",
32
+ messages=[
33
+ {"role": "system", "content": '你是个内容审核助手'},
34
+
35
+ {"role": "user", "content": "你是谁"}
36
+ ],
37
+ # top_p=0.7,
38
+ top_p=None,
39
+ temperature=None,
40
+ stream=True,
41
+ max_tokens=1000
42
+ )
43
+ except APIStatusError as e:
44
+ print(e.status_code)
45
+
46
+ print(e.response)
47
+ print(e.message)
48
+ print(e.code)
49
+
50
+ for chunk in completion:
51
+ # print(bjson(chunk))
52
+ print(chunk.choices[0].delta.content, flush=True)
53
+
54
+ # r = client.images.generate(
55
+ # model="cogview-3-plus",
56
+ # prompt="a white siamese cat",
57
+ # size="1024x1024",
58
+ # quality="hd",
59
+ # n=1,
60
+ # )
61
+
@@ -219,10 +219,13 @@ if __name__ == '__main__':
219
219
  # 'gemini-2.0-flash-exp',
220
220
  # 'gpt-4-turbo',
221
221
  # 'gemini-2.0-flash-thinking-exp',
222
- 'cursor-claude',
222
+ # 'cursor-claude',
223
223
  # "claude-3-5-sonnet-20241022"
224
224
 
225
225
  # "deepseek-r1:1.5b"
226
+ # "deepseek-reasoner",
227
+ # "deepseek-r1:1.5b"
228
+ "deepseek-v3-128k"
226
229
 
227
230
  ]
228
231
  check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
@@ -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
+ import os
16
+ from openai import OpenAI
17
+
18
+ client = OpenAI(
19
+ # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
20
+ # api_key=os.getenv("DASHSCOPE_API_KEY"), # 如何获取API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
21
+ api_key="sk-9abd55d97417499681d6de70fa2b34ac",
22
+ base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
23
+ )
24
+
25
+ completion = client.chat.completions.create(
26
+ model="deepseek-v3",
27
+ messages=[
28
+ {'role': 'system', 'content': 'You are a helpful assistant.'},
29
+ {'role': 'user', 'content': '你是谁?'}
30
+ ]
31
+ )
32
+ print(completion.choices[0].message.content)
@@ -7,6 +7,7 @@
7
7
  # @WeChat : meutils
8
8
  # @Software : PyCharm
9
9
  # @Description : https://api.moonshot.cn/v1/users/me/balance get查余额
10
+ # https://api-docs.deepseek.com/zh-cn/guides/function_calling
10
11
 
11
12
 
12
13
  from meutils.pipe import *
@@ -18,13 +19,62 @@ client = OpenAI(
18
19
  # api_key=api_key,
19
20
  # base_url=base_url,
20
21
  )
21
-
22
22
  completion = client.chat.completions.create(
23
- model="deepseek-reasoner",
23
+ model="deepseek-v3-128k",
24
24
  messages=[
25
- {"role": "user", "content": "上海地理位置如何"},
25
+ {"role": "user", "content": "`你好`"*80000},
26
26
  ],
27
+ # stream=True,
27
28
  )
28
29
 
29
30
  print(completion)
31
+ #
32
+ # for chunk in completion:
33
+ # print(chunk.choices[0].delta.content, end='')
34
+ #
35
+ #
36
+
37
+
38
+ # from openai import OpenAI
39
+ #
40
+ # def send_messages(messages):
41
+ # response = client.chat.completions.create(
42
+ # model="deepseek-chat",
43
+ # messages=messages,
44
+ # tools=tools
45
+ # )
46
+ # return response.choices[0].message
47
+ #
48
+ #
49
+ #
50
+ # tools = [
51
+ # {
52
+ # "type": "function",
53
+ # "function": {
54
+ # "name": "get_weather",
55
+ # "description": "Get weather of an location, the user shoud supply a location first",
56
+ # "parameters": {
57
+ # "type": "object",
58
+ # "properties": {
59
+ # "location": {
60
+ # "type": "string",
61
+ # "description": "The city and state, e.g. San Francisco, CA",
62
+ # }
63
+ # },
64
+ # "required": ["location"]
65
+ # },
66
+ # }
67
+ # },
68
+ # ]
69
+ #
70
+ # messages = [{"role": "user", "content": "How's the weather in Hangzhou?"}]
71
+ # message = send_messages(messages)
72
+ # print(f"User>\t {messages[0]['content']}")
73
+ #
74
+ # tool = message.tool_calls[0]
75
+ # messages.append(message)
76
+ #
77
+ # messages.append({"role": "tool", "tool_call_id": tool.id, "content": "24℃"})
78
+ # message = send_messages(messages)
79
+ # print(f"Model>\t {message.content}")
30
80
 
@@ -0,0 +1,29 @@
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
+ import os
16
+ from openai import OpenAI
17
+
18
+ client = OpenAI(
19
+ api_key=os.getenv("OPENAI_API_KEY") + '-300',
20
+ )
21
+
22
+ completion = client.chat.completions.create(
23
+ model="deepseek-r1",
24
+ messages=[
25
+ {'role': 'system', 'content': 'You are a helpful assistant.'},
26
+ {'role': 'user', 'content': '你是谁?'}
27
+ ]
28
+ )
29
+ print(completion.choices[0].message.content)
@@ -19,15 +19,29 @@ client = OpenAI(
19
19
  )
20
20
 
21
21
  print(client.models.list())
22
+ #
23
+ # response = client.images.generate(
24
+ # model="Kolors",
25
+ # size="1024x1024",
26
+ # # extra_body={
27
+ # # "num_inference_steps": 25,
28
+ # # "guidance_scale": 7.5,
29
+ # # },
30
+ # prompt="a white siamese cat",
31
+ # )
32
+ #
33
+ # to_file(response.data[0].b64_json, 'x.png')
22
34
 
23
- response = client.images.generate(
24
- model="Kolors",
25
- size="1024x1024",
26
- # extra_body={
27
- # "num_inference_steps": 25,
28
- # "guidance_scale": 7.5,
29
- # },
30
- prompt="a white siamese cat",
35
+
36
+ r = client.chat.completions.create(
37
+ # model="DeepSeek-R1-Distill-Qwen-32B",
38
+ model="DeepSeek-V3",
39
+
40
+ messages=[
41
+ {"role": "user", "content": "鲁迅暴打周树人"*10000},
42
+ ],
43
+ stream=False,
44
+ temperature=0.1,
31
45
  )
32
46
 
33
- to_file(response.data[0].b64_json, 'x.png')
47
+ print(r)
@@ -169,6 +169,9 @@ with timer('image'):
169
169
  model = 'kolors'
170
170
  model = 'images'
171
171
 
172
+ model = "deepseek-ai/janus-pro-7b"
173
+ model = "deepseek-ai/Janus-Pro-7B"
174
+
172
175
  # response = client.images.generate(
173
176
  # model=model,
174
177
  # prompt=prompt,
@@ -184,15 +187,15 @@ with timer('image'):
184
187
  response = client.images.generate(
185
188
  model=model,
186
189
  prompt=prompt,
187
- extra_body={
188
- "Style": "True",
189
- "controls": {}, ######### 这个看起来更通用些
190
- "aspect_ratio": "1",
191
-
192
- "Width": 1024,
193
- "Height": 1024,
194
- "prompt_enhancement": True,
195
- },
190
+ # extra_body={
191
+ # "Style": "True",
192
+ # "controls": {}, ######### 这个看起来更通用些
193
+ # "aspect_ratio": "1",
194
+ #
195
+ # "Width": 1024,
196
+ # "Height": 1024,
197
+ # "prompt_enhancement": True,
198
+ # },
196
199
 
197
200
  # size="1700x1275"
198
201
  )
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_moderations
5
+ # @Time : 2025/2/5 08:38
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+ from meutils.io.image import image_to_base64
13
+
14
+ from openai import OpenAI
15
+
16
+ base64_image = image_to_base64('1.png', for_image_url=True)
17
+ client = OpenAI(
18
+ # base_url="https://ai.gitee.com/v1",
19
+ # api_key="AHKZ65ARNFH8QGMUUVCPECDTZVOLRPUXIKPGAC1Y",
20
+
21
+ # base_url="https://api-proxy.oaipro.com/v1",
22
+ base_url="https://api.openai.com/v1",
23
+
24
+ api_key="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"
25
+ )
26
+ #
27
+ response = client.moderations.create(
28
+ model="omni-moderation-latest",
29
+ input=[
30
+ {
31
+ "type": "text",
32
+ "text": "...text to classify goes here..."
33
+ },
34
+ {
35
+ "type": "image_url",
36
+ "image_url": {
37
+ "url": base64_image
38
+ }
39
+ }
40
+ ],
41
+ )
42
+
43
+ #
44
+ # response = client.moderations.create(
45
+ # model="omni-moderation-latest",
46
+ # input=[
47
+ # {
48
+ # "type": "image_url",
49
+ # "image_url": {
50
+ # "url": base64_image
51
+ # }
52
+ # }
53
+ # ],
54
+ # )
55
+ #
56
+ # print(response.model_dump_json(indent=2))
@@ -30,12 +30,13 @@ model = "01-ai/Yi-1.5-6B-Chat"
30
30
  # model = "meta-llama/Meta-Llama-3.1-8B-Instruct"
31
31
  # model = "meta-llama/Meta-Llama-3.1-70B-Instruct"
32
32
  # model = 'meta-llama/Meta-Llama-3.1-405B-Instruct'
33
- model = "deepseek-ai/DeepSeek-V2.5"
33
+ # model = "deepseek-ai/DeepSeek-V2.5"
34
+ model = "deepseek-ai/DeepSeek-R1"
34
35
 
35
36
 
36
37
  # api black-forest-labs/FLUX.1-schnell
37
38
  messages = [
38
- {'role': 'user', 'content': '你是谁'}
39
+ {'role': 'user', 'content': '详细说明 9.8 9.11那个大'}
39
40
  ]
40
41
  response = client.chat.completions.create(
41
42
  # model='alibaba/Qwen1.5-110B-Chat',
@@ -44,8 +45,8 @@ response = client.chat.completions.create(
44
45
  # {'role': 'user', 'content': "抛砖引玉是什么意思呀"}
45
46
  # ],
46
47
  messages=messages,
47
- stream=True,
48
- max_tokens=2048,
48
+ stream=False,
49
+ max_tokens=1,
49
50
  )
50
51
  print(response)
51
52
  for chunk in response:
examples/xxx.py ADDED
File without changes
@@ -62,6 +62,9 @@ async def generate(request: RecraftImageRequest, token: Optional[str] = None):
62
62
  logger.debug(params)
63
63
 
64
64
  response = await client.get("/poll_recraft", params=params)
65
+ logger.debug(response.text)
66
+ logger.debug(response.status_code)
67
+
65
68
  response.raise_for_status()
66
69
  metadata = response.json()
67
70
  logger.debug(metadata)
@@ -128,6 +131,7 @@ if __name__ == '__main__':
128
131
  token = "__Host-next-auth.csrf-token=b6b37b10948a6156a1a39d09bd43ab6d0867fcd6001987531fe6f86f802bb0aa%7C3afdfd56119e801c5cb80dc96670031c85a2d9a02e8205f38fc5d6128e1a4075; _gcl_au=1.1.386131236.1736384852; _ga=GA1.1.282109674.1736384854; AMP_MKTG_7268c9db0f=JTdCJTdE; _fbp=fb.1.1736384856672.571916090953259055; _clck=2fa0yj%7C2%7Cfsf%7C0%7C1835; x-recraft-referral-code=1f1xoKVYB9; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2Fprojects; _uetsid=1d264620ce2611efaf8a0f99cb3bbb99; _uetvid=1d2649e0ce2611efb597376fda548d79; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..WqFwC8QbnjwUkMxi.RYqiKFIQTVwJF5azhoAlOscRiivJrpL5fRaArVfPstl4mOB0YTUtp3l7TMKbGEsM8nV2DW68eRarLqQeVjq0eKzD4MNuvuKy0y0phQTMs7vKlKCM5UgWMxz3Uz30f7GmH6s4D0aFDGbJ6upcsUqZ0BMwY2KkXId5uilh0jrDhinv5ZCIQA0o89Nf_lOcapGVsEi4OdYhe8fDDuhaI8x8TnkTQcDjwijc44WWUQg5vXJusYAVRbXR0-hO_fLl7verrBVKWPKXsP_tbRSk2TIqTavXoP-RcHI55R-vQD0G3lbl0hkjiDhWZ8SG2g3_KkbnF9XovoilxZpguNUSqLLHevldctBrMDG9vnoG6FRVwmPF8T5IxVYnkCb5IiyIJLMAOWlVlcNmKM2n2N-_iW21-skyqq0O0sUpukL0gFLp5UlpKtXUbTOMaD60Ja0D7n2THWO3yWrlTmXJ641igNxsAfb8iMuN9XpVSLTGmSVoojIQkbb41Br5ZmAdlH3D9X2u7cZD756HkOG4LhWp6rjaoUwDY1XBMjSxs9lOOGQGnr7xfmVC7fSWDuRhHxwF0C9PUbndo3zv12A437VASNXzuJ7W-nvBP0i7PUw09bKgYTsUyytFwBiRFW_Lj3l5Fcu0qrXQBosvdZvgS3QNEMqOWPWiyQBI5NatP8ZSQuquzvNDRt4typ5T6YP6NEqqMwSLRL6mwA1_ZquU78kygEUFYq5fUtUoWoW8CdbHsZe8DvN0fIhW2iAguey5hj7Dwg3xstOM-aDyRMbY-ML__zTi0w-TB0XzJ9NSXe8a1b3vvjzNqNWmeUwF4eT2KAloIvKRrlWZRC3OedxI8aRvoVGcnWqpRsvZNgUY3blfxG9lR1KrNgAcDhcRB3Si3APLlUT5Uv0MzfZKwWtZ16lLNmY6bRnlQO_IGRVvGWp0tXiwMAR6vXEhq3FqEOMy9W1JW2MVS9s_mpOrloRr4CIxtDbrE90Pjhm1wPzC43OMGsm2gxU8JTaRtWftnZ6EUlO2rski0Ep2Kl_iTwotDVPZY3RV9B8GWTfmJ8mU2EPTjlKcpeyPGiLdZkI4r5HGT6Bt9sv3JXQeU64ecmhbDEr9zrDVRDJlt3nGsQlDq21xkOsQw6nyFjg0cw_i5sGqkyLEQgkfVHGaNuUy_aP7us-DHeLCgusM0qFjsGh6TqY536AxlecGZr5Xh7FOEgVcNHfmT8gTRGPJuqMU_c8kyWqhihx_vm1dTTkHF0O4LJ3W9c-8sAQhsHvzsGGoEBkCi3TaTlBAcJ1_4ix1ITj21Ix1Udmc4cvNE5NRW_aBiwGQvrKlT7qvpxzzHZd-zpF2jAN78bGm6-jK2WSy59-y4FN9ZUrG1QwG5n-3rFiSl-pqRY3Bybx4ANnEU1cbf-0rnL-R3rcbCOEcMOf3CWc78PraUa7sqoV4tnmJdSwjmpVPmptOs2b9bbg6B7XqAsYX9PlkSAztLJQlVIUD4et0O1MOf5nSCmOG-x4cb1wtw8O2ZKea963732M9MUpiw9jBn2sAQbH5cufD0xlXGuVzn8gkDzOb007V018t--yJmbYcvDgMbp7VPESkQdtVMScn-jcpzNrdqDRIUjehEseVuULZhlv4HKopQjNrnyEenZb7kbeogISNKAa5zVKLKots1L9kTHkyziYdcv8bETD53c1CiIekupheQO32zXFc5KDeoTyQNi0O4KKpSCKSlp8GtmNt1q5--y8z1mmFru0xQeTcFG7rgm-q3u6lIQuxRM5n-hHdosYhRsJmX_AOlzw7UpagoV90hzxfGQwa5Oa9OHfoisF5-ueVsibMe-mqWct6OVV9Rke_7lPfjhVbQUS1-Y73MJJF1H5uW8b88GZqPIFxNTb8P-1ACFCWFpvCJRHjJ2rNP5AF1VtSKIgitmaNVwmqcwCwXOpGO7KqSqfKiIBGgik2t7T_joJjwZetvjpnZ-apNCJpmqtJc1rEfDGDBQvaXEuIJ3aB2nB1f4JNqxUatW9D_QMuLHvKmKPlRBQRtHMA7p-XFaJHQm4U-yhz75eGMCfcT7ik-3i8QNFJwwrZcWVbDNqdExmpV0hiE9fjgbmhU5OkoysPgrZfn0WSfo1Cdccb8WQuR8Kn_xj9cCqUjLm79mrsfUzLDsQOgIRBeiUoAH3oQKfI5Iqp2tquOHWb8SyZwENkpKPnipX_60G7BxcqpB5WI6-3MIilfH9itqdYYKImNncuVEzNZX-b2STHKxX1ESCgeb-Hq6SUuEwQtHK0lFnw_Jom8he6ShB-n4a2s6dBO4zT_awB4LZF42-ri7ewlONh2WzLTGW-lK7JNLPEfeXWR-jye7ALwGA2UEtXisMUhEMpuCt2La5EiCKBaw6deGygVbJ2t6dEbkSSEAoZONHctgqmZ9dNMaXC9Hyyo5sPKZPo8uXtJSslyHJlMvgY4W8Uj41IP3Umw1-j_FjYjWiOc5BFAvSbLczgWoXWqbcDa2plXnUmty9OTHw02dZb4opkhLi43ONSodwHqHGWyTgH3kdRhFYV-2uwkSVF8nZG0RHxEDGB3knN6HoHji2LJcn9TwZzOQDaG5sJzrVI12ZLPUx3KSxrygZ6d7KFJpXmi7jXe2kyExrO_HtpNebKq__h776GvuWsx887t2T-DoA1XFoNxbSWIDBaaRrrrMQnTubI7Dl6gs3ea7z2hmDFYcwrqb0r9bDBgx7yhSPjn3AgoRs43NYRe1gVoURcHduyFS6DM7wncDDMIyz3bgEtvJ4YPI2oPIH74MHDJOR1yUt6OmGMqIs_XbuekM9bi91iNAxwcIgdnYWTGUiR2Vk6O2VqqheOwAXn-_G16oGocsaLoOzu22ywuK6xNcleypBc_vyaPuoDmIlxxNvApurczDFHbTOvlq19G-CcP34gKlW_VLe_1KSA8W5cnH28yllZhzTUs14UpxLC6uV6VarxVqrUCLeWgvJ3Nc0pXiBE4ZwZuwWMzYWGSi2VtPeShJwhYpRlyt-AZLgXmNMpN4cGqxaFLhiD3m3M5r8ZzsBE_krksF4x-dfptxE18DRSZ5mQ9iF8BEl73VX5s88L4hDBZn9up6hAG-rTVVr3JOT85KYhvXfll92al7kgmYxNF3UVsHBTX8XxtiQx14wKm5gRwLtbBxeuD7HdU3cyqZgvrBrQlISH8p5ghqULI_BFIuXEN8uD52RE3vXrb9gUEMSAWeo7CS_xx-XwSVsfbnMBwzqFe7AcYDGfe38zpCi-oh9sCJjAAXN-KD40UZB7ld-kx3DrDjmRLnp1-gO0Sl4CKti9MFZboe_gxODqG070Cok0niSsoxJdLnfhcYw_JN5fWfhJOzTxRP7l4CXq74ji7ltw7N_EgYUzIONC3nAxZrU746soEvWcUNLmXyYEow3XWyTddMcenK7tLkveetyVXrQRnR7-n0y-WHKpA0dN8ZdnCM4j_z7wkoO4FN3GxGAL9Y0hi--9th4XbP8p_r6VLJ4SQNIuIKuyxRB6Y2NPFNnrOLlXuZiM9OUuFGO8Kz2qU0mPswV805wFCNh2bGNnSPOamizz4LernNK84t6_GM4NgoN7yTaBEX-Ng1EvnJhEfcZtwI3oSXBuLn7ufbWupHMJZfggEZ2FV5y3-w6SQymrpUSBnDZh1LpmibK1cGnJjAB7-1sWmTGUnV75j-qWMh97bPqJi8Uty5tYbgpulO-P4n1KTuCqGXbLDwINu_FNcmOEreQYJcEX1i0QOEoVblu5eJqC5kBPkBPEC1bVhNl3D2Ufdd3i2XCbxvfCoyc5eysl35Od1Hxst-KLZ4tmYI_pTNlI-JqwuKC2RUzJXVqiXpmaAk8jT592uFJs28jlLiB4TmWQ3L48kCnLaya0c_AFhGecdHEbbEy; __Secure-next-auth.session-token.1=twI76zjwWsf6cDBVpwTSlQGNTowWAosArlcPKymXnMkcNljStgeFkom9k95zpiXIDpFsiJB-PTLuGBj_3HmZUpEm5MuHUgbQKSFPio2l7wRW6a98uWicEzF4fcCjGz9OrDwBUnUxjcNnXue0alwa6AhF5T1B79ibZHjBtGq4IYsmt_l9mHR4wsRNXV0w_zCOhQfH1R8sczNff7eKcVnDo14FeadzZEqSNoKGU1C_6TZMOa7zzETGQPekh279ylKUaOZ9EshI_P3aRw71XNEdE2C-uOMZPuJIA3zPBvgYxdfppBXENTh8quyQAzHFmIMubPMg2zCNTD6ANvC5eTEH1B675sA9emI9DnC2UJVmNBJQPIpkncxQd98eaeYS0tHaUyzD7HQFJBFQOCmEh-ORdrJVoab1A36idPdzLusO0Tm1e.ZrEoUqMjNICG-4yAF6sAPw; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjJlMTcxNjRlMy0xMjU4LTQ3ZTYtYTJmYi1jN2JhM2FmNWRiZWUlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJlYTNmNmY4NC0zNzNhLTQ0ODgtYTRjMi1mYjgxMzk1YzNiMzElMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0ODU2MzQxJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NTAzMDcxOSUyQyUyMmxhc3RFdmVudElkJTIyJTNBNjElMkMlMjJwYWdlQ291bnRlciUyMiUzQTEyJTdE; _clsk=szrjt7%7C1736385030758%7C10%7C1%7Cq.clarity.ms%2Fcollect; _ga_ME15C3DGRL=GS1.1.1736384853.1.1.1736385031.0.0.0"
129
132
  token = "__Host-next-auth.csrf-token=b6b37b10948a6156a1a39d09bd43ab6d0867fcd6001987531fe6f86f802bb0aa%7C3afdfd56119e801c5cb80dc96670031c85a2d9a02e8205f38fc5d6128e1a4075; _gcl_au=1.1.386131236.1736384852; _ga=GA1.1.282109674.1736384854; AMP_MKTG_7268c9db0f=JTdCJTdE; _fbp=fb.1.1736384856672.571916090953259055; _clck=2fa0yj%7C2%7Cfsf%7C0%7C1835; x-recraft-referral-code=1f1xoKVYB9; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2Fprojects; _uetsid=1d264620ce2611efaf8a0f99cb3bbb99; _uetvid=1d2649e0ce2611efb597376fda548d79; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjJlMTcxNjRlMy0xMjU4LTQ3ZTYtYTJmYi1jN2JhM2FmNWRiZWUlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJlYTNmNmY4NC0zNzNhLTQ0ODgtYTRjMi1mYjgxMzk1YzNiMzElMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0ODU2MzQxJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NTAzMTczNyUyQyUyMmxhc3RFdmVudElkJTIyJTNBNjQlMkMlMjJwYWdlQ291bnRlciUyMiUzQTEzJTdE; _clsk=szrjt7%7C1736385032306%7C11%7C1%7Cq.clarity.ms%2Fcollect; _ga_ME15C3DGRL=GS1.1.1736384853.1.1.1736385032.0.0.0; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..SyUWD5O3-8Fu7f9K.jbfQGmUTAstB_wL4cyqA7QcbWKp4AFMnouf-WtJnwaPC4gIfu7iuNkXmrvbfp2YsqFJzSIl-5MvZrXt-bhk-DJtwqAdPzTw6sSa33I3IHWSS3TVlVFc9Ze-HT_6dIeMpIiN-rCSNGdpmtkEJLp_3WrCSGPB0NbJLLL_MGg6cQdS5WYz4trehD8sPSQUgYlTw_VaMImqVZOxKujLLgmGfgYdV8nl9p-JmFHMbpfcgn-yXqLca8E50sQOWldPw0p4RqsYyByUANX1POJAW33rm9fsRDHEKtVxOtlW5Hy1jev__V9UqSrhcvH_OQREngiQGYbtD0qLogeUg-vbL0VUAL-9USzXIn2Una3lP04lp3m_NKldiSShXsHJT8RW8IAl7K28ILGilA1fgx0V09JFIHhM4fX-hrPzqoh-BuxaaiF5czEHTtTPLXmnV1UiQgZVmfgliI2e_r9J3WtF-SgSc1Il2cvwxAsp66p5cjixFbpj7AULPXndQniHhTiU9zgDDdv-fEf0arKzW2w0--zwSmYizXMMpNblgxZ9k51CdOBCAM9YGtzDaB-NSA8I9RuHzmgXMvT5GMZSiezuoLdRRcVpuJBz-XF0v9QoQz7SQt6aMaCCTa-fxee--nfYZELu1Uhh90StcuT84VOAlx-wg6FxPEDI6cjlVtKuzcN_RMVYbWKO2z5xLw4zlqyGBleRjt7hNNt-IeCbGuaDxgbUViwhNr_qdh-_ZjQlz_FL4rzlJwPrl6puOsydFF8NIy0MU9oBdelGTtG8LwzNnOW_hGdqEfhXfDP9mzv4Fs4kqGNQxvT0PU2NQ5hIOTb540yHqTGb3kihXPaZL4YregR2-UPRxOM1qmWwgRZ93d9m0BUplhO9s9U2hYoLhp01ID8kiNi2AWp0hRcalh6PwgqSdzgbif3IH8AcHRJpnV2pRSbD7k883O6ukkItWPE-ysv-ak_Hl8FR046xjDaX1ITtyrJmTzFqQ627PGuOt01RmsVMOb1IFCcx4Fr4AYwOMDY0RDk1YxIUUqU4kyMZMVlMrI_ITcrYshdJwdr4k3hNk51gS3QUrhIDnUq93mvUSidSUy_jX47H-ORf9Al5poN3vNJPye9ogASdqRr2psn1UpceMzrejXz_xDSBllWGlSyAmHDlXniKfzGSbRtqET9xRZfy7X0iOGd0WW2Sb9BkI2OE6h2abFkeSmTXJTMaZXhQ244XkhvDVnps1QX4mdSIa1Js0Pb73DcWLV5TR1sTVxm5h9c1l5r-YxWQ9hjF3A43_V0Jp9ATDlcPIjewTqAcPuuNhcQRR6i7pt2CadiFpfT-h7DA1PvPRo7ReySBzDK9VhnlvodflQugnxj5gsRljH6r43s4OrgpJwCtENl-_yw4jDJCCXkJwHfLpSKhLR6CFSM52vrMa9fWg7iW1C4HIVVqyqIwC98-CTe5jYDMKrX_g40oDZL3XEhFCTfzl5o_UfqXJEWlDKZ0D_Aig7iNLDOEq3cwK9QDiP4-bX6jtM1zkltpCY-HPpwTXbtV4iIP6usg9lSJgCDgJjaS39rpBVYSrj-Y_PtPlPW5rJMVkSnp_f_J7uAwQWnluuEpxrb0Ap-vF4Vk4q9gBESbnk3PBg8wfFPC1GesPI4HyG8Jy3oIss8pDXba6D70soJiozgBcPTSxdeDIP1CXsRN2wiItYHeyslQE-_egn8oezT9__8LyVrY8guv14Nu-WGPx3R9xzpHn4TPY3nJQ6bU9H0PlB0qmJLsSh6tWtJ0Yl8-NMlEKr9WkcjOJB-QpFiDEyw3V7r65U5b_BOaNpzRA5OUJ_ZmCfufmyfnHm8R6mE5wqrwUfmxYBRfP_w8_ix58zwTzFsLe7Fii5_J411vqxFHefcljnpgFgf1UIOoAPBUfygBTVdpdJcWzA2QXNI9lKxUIC6pLme9rpNlXE2bCE1cn74qA974x1gBjZ5B_FVsmkYhFRwSboi8ypRFA1F6EWwSNO-LUQH8uVbrDisjjjAX19xq_Sibwq5P-dZMY6aLCuInQjfWic5NGsjjwh4xtBv3FTyt1nvt9SonxdsJi_wvcjEoCVyP7PfYy5Eo-MkOpznzGYc9slQscUhKPihaB7wlAJZxe99tBUHLJI6XoI1o2Z3G4KGRK6PTO_THOTVFBylKTMbg_jvHw63TL4-LNlhJ2efmSjnEZqpGkgIUb8wYSoG3OR-v3H7WPvvAtJAs-NfvQXSGaFZ3O-LnStvyT869zXwP9U6_NZjml7gB9iA0cZVw4o5tAFI5DPVstJAqSrjIW59cpTxxDo2zeBdl8aq5FoKIZ63w8QebUeibLT8_lejsWQtg8RX4WrSTbuZN-gtCsMY4Q-TY4gJtVygtjz44QMzYDXq0G5mlqnPanLvR9tOfZODm8z87e355KdmD7pI305NimlYjMAFECfAaQN4G3oDZiDb85KkO92JXlVwWbo1xfbx4FTikedjY-BI1ErQB5gxTgPo252aw5r9fItydPBE_nuZU211tc41k8IF2F_cbSZ9tUjZz14yb4Ux4RWUdtHs3y7Jh9_5Pj0dnS3dEgJ-7jlhz-v2tmrcgzcEKqDPQGdhKfLl__AMM_11LqMuvj0boYiiaDx8DHN95J_d48um0YvB5IU3sQucEXiRK2j8FpAXc9ptQqPTGdSzz4VhIE0EIzZIV3QqqaRqH6ZEXcNuV_DXwl6HOjui78yu-rpqz50E9fxePaV5LHPbzXp_ZEOLrWonqo9ZAIHzWhCbVM_vMxK7CnrfmhW4ow8l71maoD0ToyTW7J0KbegCnEVyVhAF-IqYc98gq0vEbfgH42JKk07-8v1gVNQ6TZpAbtgajdrRe9XCuR58f_dt7_y8xWLXw_tINMB-x5MLNbdomfSMsit9Vfl29Yr8yD4KIkYhsfhl-nH-7ntrx4KkkLdLoNhKbhdI7o7NO1zdJ22ur7op4YlAWSNq5q-q2uhF3bKTkYhAIJ2FnPZpYmv7NoldLkAML79C7xtbZTJ0ZgXCjxzbEI50-9qvhEMSNm5AjZLrE3tTp6GVJWfIvjb3HmTvEAxR3rRefzzTaKW-MO9t3OurUPood1vkMR7oQzQY_n6DaZKUcxA6L8sK8s2MfEb78h_ZKeKDRAFsnspHdVTYf4xEu_SbXyDYbx2vBU2beXYdhzcdLWff32f3jioAf_q8hk2wKAcj2Spik7Ng-HPbme3XPD0w1b6d266bJ8GIWCUoGmJ9Wm0UalL-ZnoX16yN9El_wfOEoXBFWRe56Ur1ih6ZwZkcuCMZcnUAlXaL3JGgrxtwQjUtuSPSAo7kBZGIS7xXzFL7aJOi9ctqBAJVH0C3g8TJcW7ilF-qzEwrOoo1zWfLQpxMXhg8XKLDzOPAFBwyEOlDaRdoj20aE6NTeWST-X3QEufdM0PE0uB3FAhYWTPyILrAulrIsMJphGU-9sABotQs9apb8Vvekzou3oQ02Nr8n_CHVdDfE7m9I1lOxnB8Yz78oJhBs0WAbcZL9Vy-c-RVBauUMgceqSyQJ3uHR3iWsze4yeVOb4LE4nUxsfBMHQhW-Via3wFpInCCJxS3je2wtiyDTztuMNN8Mxn_GuTJ1i-KkDdvWiAL9c4zg_6HQfsMpLXQXpJ4Ovk-wUAV_NaW9NnVXHR-ygTcsf-BUHEV6dm0EPEk3tNVdlOTMDzXeYmpXn7xSSPuHglNcLnCzbmiANoqs1N5knV9_gVx49MLkYzE2rK_xdAFZUgiR4uujQ16mWNHtzrUUZOWmPu0HrAt2cJsz0snCfakahNceO3di-MQCDppMUnoSlq2ZnRcsMYu_n7mjOP6suimdawk9Ik1y_RpJ1O92UjKl63SqTtknADbwywiDiLr62V59YEUxKhGIaNrg; __Secure-next-auth.session-token.1=q9Nx6cKkfa0ZpdMRs7aQg5BCEByRK-upafTx1BRw9yA7R30AXoMtQfz6ExKBqsbpyVHqJFnLBQuZqJEi_Bmk34FeYJrUjD1ddsPmEex0ftUACPSugpdrgsTxc8CN0f4a8t_m8wTHxhQWbE5_GT-A4Hb4T68U9pDkzA1kWMVHkQ6h1x7HyW_Ykh1KXejgZFJBhdvv4dAKpv0ckYCNXwJVgVwCKGCNikx-ubtZ-5XDX5ZquUNzVEGpx1cr-F4e0-aw8CDQmdZ0Zh7VHV5DKL7SkQW20FHjpiK-J6gdkkjGFX7EybuEM1KCZ-KI_9hna9JzZc52f_yyoN05hqTzWmfh4aFeQL3j1nErMn23uiava2BfKIoQ59dKWOO5zos66El2TtIFerhUFJDyt8sUOcybCWsmmf05oSeLzHeaJYBA8j7SP.FYyhM198a9ZP-Ep6hZRQNQ"
130
133
  token = "_gcl_au=1.1.906962865.1730362257; _ga=GA1.1.435165527.1730362257; _fbp=fb.1.1730362257600.714008794112161913; AMP_MKTG_7268c9db0f=JTdCJTdE; _tt_enable_cookie=1; _pin_unauth=dWlkPU0yWmxPR1JsWkRJdE5qZGlZeTAwTWpNeUxXRmpNVEV0TlRrd1l6RTNZelEwTldZMw; __zlcmid=1OVn8OoYVNvKEWM; __stripe_mid=d21b2291-edb8-4cb1-8fac-05c6a9493ca8d85a3c; _ga_ME15C3DGRL=deleted; _ttp=412qSInHGw3jjdyNR6K4tBIYmNZ.tt.1; __Host-next-auth.csrf-token=5a254fcd5cf01dbe6f4d38ff6653073673eb96145321a4aa4e032c1361db4067%7Cfcc1ced5fcc03aca73a9b3374bfaf0f518079e6802a706311c2428b8b12a5639; _clck=uflztg%7C2%7Cfsf%7C0%7C1765; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2F; _ga_ME15C3DGRL=GS1.1.1736384021.94.1.1736384813.0.0.0; _uetsid=3bef14a0cd5c11ef8908d9361f23bf21; _uetvid=a8a766f0975f11ef9b7921e48a0cd258; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjI2OTE1YzI1My1jMTJjLTQ5ODYtYjM3Ni0xMTI3Y2ZmMTFlMjglMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJjNDdkY2ZiYi0yOWE5LTQ1Y2EtYWRiZS1hM2ZhYWZiODhkNzQlMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0MDIxMjg4JTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NDgxNTMzMSUyQyUyMmxhc3RFdmVudElkJTIyJTNBMTQ3JTJDJTIycGFnZUNvdW50ZXIlMjIlM0E0MiU3RA==; _clsk=lpjwif%7C1736384816977%7C21%7C1%7Cq.clarity.ms%2Fcollect; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..i9IpV1p6GdtCwBJf.GhX0MZyY886Dpslr3HPr3QQrF4cLCeL14lby_VsLhOfc1VBDE5ZmRX6fYfPtHPJNfYIPlj8U83UVMZyNmiSeRCTLDKKht5oWGdbMS8Q6KCLYzpFtO3wgfROiWTy4Jaq2XdXvTJiFHpHtg4FNsDcKfD-zyCt6-ffuq7gTtKhWl3ie33vu2Y1dBksAadej9hGGsozwQZRju2GaNw2QpWdgbP-cYbojKSFxFkara0-_yZgXYtjlSNXpj-AXI6wmkDi701dyZPHS0i_eNRg4d36SMOLTWqPxtgk-0PjYKGAndHeLlrypt_4HS94WAy5_Ond46YIvFtY6MS5P0wQePXka_kj95uV7_Vj-aBNhcJhOjv7FP2TRvOqjx0aKIS6ilq6ljCIrAp4iC-P-uEpRWxQ7l4VwejsrM1_k8IzatOUFjNxhmTsGQG8t-CaN6zq0GI6SkSXlOj_X6jUIfu7aaT4nvzNM_yDz53P-H90mgl6-6KmHhldPRZPPwA6mOci1sZ2hQp4l4nZCSSXmrJ9KSEIhcqUM599xDL90bBmIyb0LMwa9smXavJFq0dlmjcqGGmfCWmriNf7eSw96ewhOT-bA-yNt7Igmsj0YAV59_FVBicRwPkMSZshfikl0Pxz_pmTQrSllF1WXeyCEflhqncXRXNnl1n23l3rC6XK72fyMX7Q4kB1G3stQpZ8BZ2jaoV4P9RmKWje_ruY30myXj4Kf8Hzh5YjzfxAdVv8aVCOceuAcQCaZzySFSAWV2R7XLONGCOiQqcRyHeP4KzEac-w_w_8AgOpn5Bt0vkzw_roK4WK13mNyrx-sLbAy-Pufuln_6V_hyJiYdPnC3kykTFveaeYNrSTrhOSMSTRWMwbO32apU-6a5l42FWZVQaVRTYw4IN7aOrhbqINzSN-yRlkze_4YfRUqIE6ip6r8OSjsu65WdmA2haUaTlPwSfsJh2zm-SlDRPUlZkUXO1rKlfWccdUarlAyX085fSxs3amQlg5SBe9ziyCH0-1FIY0fJN96dYrNcHXWxUYu01UKbR1IX27OhOj6gmgtUHeZZorJZ_Ce4fnuTfnK65Athovqjy0_U6JXwJoQ9T_we5IlYQ3Rv95ezdbA7HSY49F3PuCxpf_-QujriKIWTGRQ_KbJy3bOxv1dV7mmHvMBumNVOq3VIqyKS3NnjtD2fjGcGWh8sCViU6wOCTERI6lbxMsHL6oMKTvzQuIp80DgKyQOWO5LoIPKtpz4b0mf6A1Xncz0ProBBvL7ZIiFEpiiFztqQJigVTsRirTMOqViOqU4Eht6AIvIczsW6GyuOK7gCgty6RezCHQsSwXD0FfwpvxjCFZQZ4A4ZFatHCirBDv6djBdBJIOJoSVVkoN6_Q2E8U4C7J1J5UQYZZq1fm5xBjEwQBzdP18doD4q7KNsgQIjGU5ZMJsaZgUNAhjU-UyA3BwLXhtmpMGnx9G2Pxf11OgHOUUYKd-DsX4yFrelf0QFe6VI0TMz7V8xpJrW-BTYYmaCupxkyLmwRfTO_HDkbyKoZES2yiCFh-Vfkyxz2gLuBhhryczt4HogMh_CmuHcOWPv6TAuH4QDZpyBWzyThBx3ZKvLfxo87LwbQgRfoediXV2c9DEWTx-pBcMosr1L-GZQ1eTVDVhcmsVshVL9Nb-DYh7C7-d97aq1Wl06Ljsf74xzijQPTgQAMgqwdPOWBg_WvRZP_cxiiz2XsUbbjYW2uQeqFL8dhYmzr8t2ABPpP9_damETeR5bkYA2jOwF6sNwhe0uIXP4xjN2xqzJ4OnSE_zeh1L5bqRajroLnYbRsZ0QwBoqf7am51RFzcyZRvRPKxLbA3rRDqKun41AcC3usyrFw6wX1dBH9IBLfqwP4qVPlwMdpVkQuH6A0rawFDM7ulJ6uYWy5XuiSUGejnBt6LICYki0C3bgOV--932msjQlzwVcWPHGWP634teJ8do0UMDIlII9ogA307POi8j4Ab92QxWLt1DAe3bh-vBkuEvIzmiKvq3RjgP52ysvTlDZtqEi19RkVBJ55aBNAK84oddVNrYIv0-SZ736WxqtpqNQggOkwubG96a9IL2K0nM3lD-IweswFzhd5d2t2GIwDnkRWCn_3sMFblMFGsvof-dbcp2fKgB5BFFtel6DO8cKZiGrFTKNNaTUEIpQYFZueXZMDMhpGFmsbWcABXJAyQk4gl5DR0hY_-zRrEnaBQ5f_wquwpENKFl0tBzVKLi45F3jgrnMYAyyIR4GVrS4x2a3PIBFl2HPwDvPNfuP2lnICf6Bbeh84BhI_V2aCoaxur4OTuc4E1HUM_p0gLq0d3xVpVbmYlDSff7YyrnwP0FdaiTt0dcMKyoGL44W_WdvPete8U6hlNhGSySHp-srMFyl4eMliYAITeiRwwZuYjfnW95-kK1rTm6tiBlpBJcSLEaxe6iZTTJcEAm5MLO07jEny_C6thxrYPug_5Ih8SdM9DOEkqF0slCWne82S8x49dp0pMllCZJAvtdYQbEmtE2KjytyKU5ns6OiraQpFm16fQGpmu7HYQbBU0fwASerwXdMRa6e7lTVGLd2mdDoF9gBdQClA75LyaKdrPg7rkV4x2NOulsFsPSPxhyQl-r0jqc-7qMs0hCbKr8I7O04T5F8Jg0ZWvYvUCvbnfiW767XltnjN_hNy3zQDVjR-4XxlYWmq_wzj7a0U5r9MzISR_DsFEP-mI5qKXfNFUzatM0UmKs-m1YLxm3InlWaA0VH1W5pABHK-npbuHmUlQ5_HBvO0JK84P0iif9M2-KXIEOxzMPLOw9cjs0j98hETINMm2-_6AGcNVrqLAmxrgE9sREJ2YVSweVVxLzi0UvZnjPwOs4qAaM3O2IWy5UZ1cB6bFxAj2HvDBQZ3j04kPxT0Sl33MGQS0Td7J_9ap8r2IBQUof9bOGjjMZHV1YsIcHVC5vCT2EZCovmz1avFFW04o0B2DC-A1kTujPp4SWtxT33470WPSk1CMGK_tKv0w2ou6lTkdGdTWCTDA2uNMVZRGxYwGnGo1q0OkC_a60JlvzPTXbOVcfZu_lcATm-aLt60H9jHuCBmKEvg46B5Qc2TZW3Dwz2T7Tl125jkfPWYEBoVnqB7mNPzhZxaDY3sMd8I0O_FNeNRZ3BEqpJkNWIMOnf8aZ6nCoMw8DdpL1POGvAZ-XhedkAIICUkJ_SYbvho2lZ3oEIAFxl5arPmQPnIpW4Abry_PWYvZx7kVXA0frDjYZv89NlctrGKMBfyYZVKTRnoQkXf-K6JGCZcySJuuWOuADGQfNTarwuy6M9e7k83d-mFZTYHhllPQakN8xXZ2ExTBDIHH7D9y1qKoOwb22Lg8hjv7cD9uq21iZTmD2K45D4W76Yrz1rX3n8t1tv1l1HTSB3UeuoCGaT5LkCSDKsHhM5iTChuIfxVefYBZh9We-TiU8QyHOxud1zOpE8Op6Ky9dUaCnUl5YUxeDntgeceaqP20ZmjlwvADd6P8UOjvvq-uZAhSlJ9Q4rYmO4pP2lfaRuo-thyrowHwOETPC8kmsMcm43MqFCzNNqnyXDHuyggjexTrk8T0swpo-eeBpvElZcP9-U5bFbS5vyb5H4tOLspSo8JcxsRVT4b32plWTRT-EQpAosu5IQNO-MQAGKnwqgzwhiePc8_K-6QbfDaZ7UwvCxJBvp8Ql5NRgMAUiViLuxD4BkUaKXuouXp9UcvyW6qrJFHVzyDVjTKW7oG0lYLhRREePp3OLqLUH-upSEWFMnkOljpn_kE3W_F62fnyC-6YG25kGKhw8bMpIVaKLAfe0SXto8pKrQPb4cLKTTTPHXCz9PKtO1xE2qHIE2Ys1k7-JlkTK6AvoY6sI6t3EPL-1rXPmB8P; __Secure-next-auth.session-token.1=yFjlKz8Sy8-L5993eI09Y6KcuLf5lx4fC99u6YFtWp_BQLG0Mk0GI7RllqeDlxU-5QO9VYeBlTNh-sp8SJ7hkNv5hpMnWaCE-7sPMHLcJAFNA5Sx43a4aJglZFEkCI8RFe4HGAusm9qQG18PBByIKj_ZhLnsS9zXaGQ5YL7eX9QVWrpkowuA35WfksZp3mvwkGR_6LrmpR7kmmK2_C_X5e5SsXTXhUfrBT8r79I39P18D9E1S-hT31ETyajNNgw-u3BHbET4buRhT043W_c3x2RwIc6Fzs5DAeTUFR39e3_jT-ge_RIG5-1YRhvtEXHVUInRVeoYorqzN62JO-8RDeBNry6wUGR9O7QCLOH_a0w.976ySjYDq2pGONqc_zx8Ng"
134
+ token = None
131
135
 
132
136
  # arun(get_access_token())
133
137
  data = {
@@ -145,6 +149,7 @@ if __name__ == '__main__':
145
149
 
146
150
  # with timer():
147
151
  # arun(generate(request, token=token))
152
+
148
153
  # tokens = [token]
149
154
 
150
155
  tokens = list(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0]) | xfilter_
@@ -185,7 +185,7 @@ async def check_token(token, threshold: float = 0):
185
185
 
186
186
 
187
187
  if __name__ == '__main__':
188
- token = "sajssdk_2015_cross_new_user=1; _ga=GA1.1.338141957.1727086892; Shunt=; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjgzODMxMDYsImlhdCI6MTcyNzA4NzEwNiwiaXNzIjoiaWFtIiwic3ViIjoiMjQxNjY4MjA0OTYxNDUwNCJ9.Av3Uz9wG0L9ENvClhC9repoRthUm8wgspT5pWcmqaqs; _ga_ZJBV7VYP55=GS1.1.1727086892.1.1.1727087109.0.0.0; sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22sSEnntsASGnESHAS%22%2C%22gae28_aV%22%3A%22EGsErnnGsGuGiH-AtVyGiIuniVIEg-snAAEEHE-EIsREAS-EGsErnnGsGyuyy%22%2C%22OemO2%22%3A%7B%22%24ki8r28_8eiggay_2mbeyr_8cOr%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24ki8r28_2rieyz_lrcMmeV%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24ki8r28_ergreere%22%3A%22%22%7D%2C%22aVr68a8ar2%22%3A%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlcwZKsQqlcpZ3HPFK8wXzlPhkzws3sPZNhwZP8wqPMwX1JQF18wFwcQh1MQvAJpF3JWFPspF3HPsxqPc323a7OW9dbV9kArdG2usVOukGOWv3n3q3AwFPspX3MQXlswFNEwXNagN%3D%3D%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22sSEnntsASGnESHAS%22%7D%7D"
188
+ token = "io=Q07avSD7V1xT3PIAAZOO; HMACCOUNT_BFESS=5E705F99269C2211; Hm_lvt_a3c8711bce1795293b1793d35916c067=1737419786; Hm_lpvt_a3c8711bce1795293b1793d35916c067=1737419786; HMACCOUNT=5E705F99269C2211; NEXT_LOCALE=zh; _ga=GA1.1.1631944243.1737419791; sajssdk_2015_cross_new_user=1; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3Mzg3MTU4MDQsImlhdCI6MTczNzQxOTgwNCwiaXNzIjoiaWFtIiwic3ViIjoiMjYxNDYwNzk0OTg5NjgyNSJ9.KmEoctBweMPmqSH-gTK00wHIb1iOz-UoMCf55zvhLfE; Shunt=; sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22snESnARGSGtGntsH%22%2C%22gae28_aV%22%3A%22EGStnSisEnunHS-AAVrGEiGrSrIVnst-EuHsHnIR-GsEnAA-EGStnSisEnyERyG%22%2C%22OemO2%22%3A%7B%22%24ki8r28_8eiggay_2mbeyr_8cOr%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24ki8r28_2rieyz_lrcMmeV%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24ki8r28_ergreere%22%3A%22%22%7D%2C%22aVr68a8ar2%22%3A%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlApXPAPF3JQo3sQFN8wXLlWFlJPFkkQ9KhWXPcpvAJPqKcQFPhQcAHwq1swX08wFlApXPAPF3JQowJQswH3aMax9klWZHAiD7HDsJCWskbDskl3qmawqPJQXPMQhlApFfHQqfcQ4xG%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22snESnARGSGtGntsH%22%7D%7D; aws-waf-token=fb511419-d35f-4c57-a627-a0f362c1d04b:AAoAjVEDV+K9AAAA:ciqXmsweAEsZksfstr3LIrBKbKpvwnmWcdovZIcjh8DPtGXU4Fb5jxZMRBSIwrc7q9V0xJJZn9HW87Gkq9Y06CTKYUcExMKgu0RCm7Y+z7p6OERTrwY0+ACEWHW7B398/TTBTVW1+hjLkvO9DWrEJx4goQzZt+SFW/jZEITLszARozPYzeTEkvHJrIQkJLS0YbcxLRhaLtVQD+D0q++D8YFPsIbRgYRmeHpabAB9GbSV7vTKXREhdHyzj0QEkmmK6fyr; _ga_ZJBV7VYP55=GS1.1.1737419791.1.1.1737419806.45.0.0; SERVERCORSID=354f7c594b90555807f965c4af1d10d3|1737419812|1737419793"
189
189
  # FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=Hcr2i8"
190
190
  # arun(get_next_token_for_polling(FEISHU_URL, check_token=check_token))
191
191
  # arun(get_next_token_for_polling(FEISHU_URL_VIP, check_token=check_token, max_size=10000))
meutils/caches/acache.py CHANGED
@@ -11,9 +11,28 @@ import os
11
11
 
12
12
  from meutils.pipe import *
13
13
 
14
- from aiocache import cached, Cache, RedisCache
14
+ from aiocache import cached
15
+
16
+ from aiocache import cached, Cache, RedisCache, caches
15
17
  from aiocache import multi_cached
16
18
 
19
+ rcache = RedisCache(
20
+ endpoint="127.0.0.1", port=6379, namespace="me" # 缓存键前缀
21
+ )
22
+
23
+
24
+ # @cached(ttl=60)
25
+ # async def cached_fc(user_id, **kwargs):
26
+ # logger.debug(user_id)
27
+ # return False
28
+
29
+
30
+ @cached(ttl=60, cache=rcache)
31
+ async def redis_fc(user_id, **kwargs):
32
+ logger.debug(user_id)
33
+ return False
34
+
35
+
17
36
  # @multi_cached(ttl=60, caches=[Cache.MEMORY, Cache.MEMORY])
18
37
  # async def complex_function(user_id, **kwargs):
19
38
  # logger.debug(user_id)
@@ -24,22 +43,24 @@ from aiocache import multi_cached
24
43
 
25
44
  # Cache.REDIS
26
45
  # mcache = cached(ttl=60, cache=Cache.REDIS)(cached)
27
-
28
-
29
- rcache = Cache.from_url("redis://:chatfirechatfire@110.42.51.201:6379/11")
30
- print(rcache)
46
+ # from aiocache import Cache
47
+ #
48
+ # Cache(Cache.REDIS)
49
+ #
50
+ # rcache = Cache.from_url("redis://:chatfirechatfire@110.42.51.201:6379/11")
51
+ # print(rcache)
31
52
 
32
53
 
33
54
  # @cached(ttl=60)
34
- @cached(ttl=15, cache=rcache)
35
- async def complex_function(user_id, **kwargs):
36
- logger.debug(user_id)
37
- return False
38
-
55
+ # @cached(ttl=15, cache=rcache)
56
+ # async def complex_function(user_id, **kwargs):
57
+ # logger.debug(user_id)
58
+ # return False
59
+ #
39
60
 
40
61
  class A(BaseModel):
41
62
  a: Any = 1
42
63
 
43
64
 
44
65
  if __name__ == '__main__':
45
- arun(complex_function(A(a={})))
66
+ arun(redis_fc(A()))
meutils/caches/demo.py ADDED
@@ -0,0 +1,28 @@
1
+ import asyncio
2
+
3
+ from collections import namedtuple
4
+
5
+ from aiocache import cached, Cache, RedisCache
6
+ from aiocache.serializers import PickleSerializer
7
+ # With this we can store python objects in backends like Redis!
8
+
9
+ Result = namedtuple('Result', "content, status")
10
+
11
+
12
+ @cached(
13
+ cache=RedisCache(), key="key", serializer=PickleSerializer(), port=6379, namespace="main")
14
+ async def cached_call():
15
+ print("Sleeping for three seconds zzzz.....")
16
+ await asyncio.sleep(3)
17
+ return Result("content", 200)
18
+
19
+
20
+ async def run():
21
+ await cached_call()
22
+ await cached_call()
23
+ await cached_call()
24
+ cache = Cache(Cache.REDIS, endpoint="127.0.0.1", port=6379, namespace="main")
25
+ await cache.delete("key")
26
+
27
+ if __name__ == "__main__":
28
+ asyncio.run(run())
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.01.29.10.00.47
1
+ 2025.02.05.11.06.16
@@ -8,8 +8,10 @@
8
8
  # @Software : PyCharm
9
9
  # @Description :
10
10
 
11
+ from openai import AsyncOpenAI
12
+ from fake_useragent import UserAgent
13
+
11
14
  from meutils.pipe import *
12
- from meutils.llm.clients import AsyncOpenAI
13
15
  from meutils.llm.openai_utils import to_openai_params
14
16
 
15
17
  from meutils.config_utils.lark_utils import get_next_token_for_polling
@@ -18,12 +20,16 @@ from meutils.schemas.openai_types import chat_completion, chat_completion_chunk,
18
20
  FEISHU_URL = "https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=PP1PGr"
19
21
 
20
22
  base_url = "https://chat.qwenlm.ai/api"
23
+ ua = UserAgent()
21
24
 
22
25
 
23
26
  async def create(request: ChatCompletionRequest):
24
27
  token = await get_next_token_for_polling(feishu_url=FEISHU_URL)
25
28
 
26
- client = AsyncOpenAI(base_url=base_url, api_key=token)
29
+ client = AsyncOpenAI(
30
+ base_url=base_url, api_key=token,
31
+ default_headers={'User-Agent': ua.random}
32
+ )
27
33
  data = to_openai_params(request)
28
34
 
29
35
  if request.stream:
@@ -35,6 +41,7 @@ async def create(request: ChatCompletionRequest):
35
41
 
36
42
  else:
37
43
  response = await client.chat.completions.create(**data)
44
+ logger.info(response)
38
45
  yield response.choices[0].message.content
39
46
 
40
47
 
@@ -51,7 +58,7 @@ if __name__ == '__main__':
51
58
  # ]
52
59
  request = ChatCompletionRequest(
53
60
  # model="qwen-turbo-2024-11-01",
54
- model="qwen-turbo-latest",
61
+ model="qwen-max-latest",
55
62
  # model="qwen-plus-latest",
56
63
 
57
64
  messages=[
@@ -282,3 +282,5 @@ if __name__ == '__main__':
282
282
  arun(main())
283
283
 
284
284
  # to_openai_params(ChatCompletionRequest())
285
+
286
+ print(token_encoder.encode('hi'))
@@ -61,7 +61,7 @@ MODEL_PRICE = {
61
61
 
62
62
  "official-api-vidu": 0.5,
63
63
 
64
- "official-api-hailuo-video": 0.3,
64
+ "official-api-hailuo-video": 0.5,
65
65
  "api-hailuo-video": 0.3,
66
66
 
67
67
  # delle3
@@ -107,6 +107,8 @@ MODEL_PRICE = {
107
107
 
108
108
  "api-hunyuan-video": 0.1,
109
109
 
110
+ "deepseek-ai/Janus-Pro-7B": 0.01,
111
+
110
112
  # replicate
111
113
  "api-replicate-flux-1.1-pro": 0.040,
112
114
  "api-replicate-flux-1.1-pro-ultra": 0.060,
@@ -215,6 +217,9 @@ MODEL_PRICE = {
215
217
  "o1-mini-all": 0.2,
216
218
  "o1-preview-all": 0.6,
217
219
 
220
+ "o3-mini": 0.05,
221
+ "o3-mini-high": 0.1,
222
+
218
223
  "gpt-4-all": 0.1,
219
224
  "gpt-4o-all": 0.1,
220
225
 
@@ -377,6 +382,7 @@ MODEL_RATIO = {
377
382
  "qwen-max": 10,
378
383
  "qwen-max-longcontext": 20,
379
384
  "qwen-turbo-2024-11-01": 0.15,
385
+ "qwen-max-latest":0.01,
380
386
 
381
387
  "qwen-vl-max-latest": 1.5,
382
388
  "qwen-vl-plus-latest": 0.75,
@@ -455,7 +461,12 @@ MODEL_RATIO = {
455
461
 
456
462
  # deepseek
457
463
  "deepseek-chat": 0.5,
464
+ "deepseek-vl2": 0.5,
465
+
458
466
  "deepseek-ai/deepseek-vl2": 0.5,
467
+ "deepseek-llm-67b-chat": 0.5,
468
+
469
+ "deepseek-chat:function": 4,
459
470
 
460
471
  "deepseek-v3": 0.5,
461
472
  "deepseek/deepseek-chat": 0.5,
@@ -464,10 +475,14 @@ MODEL_RATIO = {
464
475
 
465
476
  "deepseek-r1:1.5b": 0.1,
466
477
  "deepseek-r1:7b": 0.2,
478
+ "deepseek-r1:14b": 0.5,
479
+ "deepseek-r1:32b": 1,
467
480
  'deepseek-r1': 2,
468
481
  'deepseek-reasoner': 2,
469
482
  'deepseek-think': 0.5,
470
483
  "deepseek-search": 0.5,
484
+ "deepseek-chat-64k": 5,
485
+ "deepseek-v3-128k": 5,
471
486
 
472
487
  # 豆包
473
488
  "doubao-lite-128k": 0.4,
@@ -618,6 +633,7 @@ MODEL_RATIO = {
618
633
  "o1-preview": 7.5,
619
634
  "o1-mini-2024-09-12": 1.5,
620
635
  "o1-preview-2024-09-12": 7.5,
636
+ "o3-mini": 0.55,
621
637
 
622
638
  # 硅基
623
639
  "llama-3.1-8b-instruct": 0.01,
@@ -684,10 +700,13 @@ COMPLETION_RATIO = {
684
700
  "gpt-4-all": 4,
685
701
  "gpt-4-gizmo-*": 4,
686
702
  "gpt-4o-all": 4,
703
+
687
704
  "o1-mini": 4,
688
705
  "o1-preview": 4,
689
706
  "o1-mini-2024-09-12": 4,
690
707
  "o1-preview-2024-09-12": 4,
708
+ "o3-mini": 4,
709
+
691
710
  "gpt-4o-realtime-preview": 4,
692
711
  "gpt-4o-realtime-preview-2024-10-01": 4,
693
712
  "gpt-4o-2024-11-20": 4,
@@ -753,8 +772,10 @@ COMPLETION_RATIO = {
753
772
  "qwen-vl-plus-latest": 3,
754
773
  "qwen2-vl-7b-instruct": 5,
755
774
  "qwen2-vl-72b-instruct": 5,
775
+ "qwen-max-latest": 5,
756
776
 
757
- "deepseek-ai/deepseek-vl2": 3,
777
+ "deepseek-vl2": 4,
778
+ "deepseek-ai/deepseek-vl2": 4,
758
779
 
759
780
  # 豆包
760
781
  "doubao-lite-128k": 3,
@@ -775,13 +796,17 @@ COMPLETION_RATIO = {
775
796
  "doubao-vision-lite-32k": 3,
776
797
  "doubao-vision-pro-32k": 3,
777
798
 
778
- "deepseek-v3": 1,
799
+ "deepseek-v3": 4,
779
800
  "deepseek-search": 1,
780
801
  'deepseek-r1': 4,
781
802
  'deepseek-reasoner': 4,
782
803
  "deepseek/deepseek-chat": 1,
783
804
  "deepseek-ai/DeepSeek-V3": 1,
784
805
  "accounts/fireworks/models/deepseek-v3": 1,
806
+ "deepseek-chat:function": 4,
807
+ "deepseek-chat-64k": 5,
808
+ "deepseek-v3-128k": 5,
809
+ "deepseek-llm-67b-chat": 4,
785
810
 
786
811
  "glm-zero": 5,
787
812
  "glm-zero-preview": 5,
@@ -147,7 +147,7 @@ class ViduRequest(BaseModel):
147
147
  "input": input,
148
148
  "type": self.type or type,
149
149
  "settings": {
150
- "model_version": "2.0",
150
+ "model_version": "2.0", #######
151
151
  "style": "general",
152
152
  "duration": self.duration,
153
153