MeUtils 2025.2.11.18.25.28__py3-none-any.whl → 2025.2.13.20.50.5__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.2.11.18.25.28
3
+ Version: 2025.2.13.20.50.5
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: geopy ; extra == 'all'
68
- Requires-Dist: jinja2 ; extra == 'all'
69
- Requires-Dist: cachetools ; extra == 'all'
67
+ Requires-Dist: iteration-utilities ; extra == 'all'
70
68
  Requires-Dist: thefuck ; extra == 'all'
71
69
  Requires-Dist: seaborn ; extra == 'all'
70
+ Requires-Dist: geopy ; extra == 'all'
71
+ Requires-Dist: missingno ; extra == 'all'
72
72
  Requires-Dist: thriftpy2 ; extra == 'all'
73
- Requires-Dist: pyarrow ; extra == 'all'
74
- Requires-Dist: pymupd ; extra == 'all'
75
- Requires-Dist: pretty-errors ; extra == 'all'
76
- Requires-Dist: pymilvus ; extra == 'all'
77
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
73
+ Requires-Dist: reportlab ; extra == 'all'
78
74
  Requires-Dist: openai ; extra == 'all'
79
- Requires-Dist: uvicorn ; extra == 'all'
75
+ Requires-Dist: pandas-summary ; extra == 'all'
76
+ Requires-Dist: fastapi ; extra == 'all'
80
77
  Requires-Dist: langchain ; extra == 'all'
81
78
  Requires-Dist: fastapi[all] ; extra == 'all'
82
- Requires-Dist: jieba ; extra == 'all'
83
- Requires-Dist: asyncmy ; extra == 'all'
84
- Requires-Dist: schedule ; extra == 'all'
85
- Requires-Dist: faiss-cpu ; extra == 'all'
86
- Requires-Dist: pymongo ; extra == 'all'
87
- Requires-Dist: filetype ; extra == 'all'
88
- Requires-Dist: fastapi ; extra == 'all'
89
- Requires-Dist: gunicorn ; extra == 'all'
79
+ Requires-Dist: pymilvus ; extra == 'all'
90
80
  Requires-Dist: polars ; extra == 'all'
91
- Requires-Dist: reportlab ; extra == 'all'
92
- Requires-Dist: redis-py-cluster ; extra == 'all'
93
- Requires-Dist: missingno ; extra == 'all'
94
- Requires-Dist: sqlalchemy ; extra == 'all'
81
+ Requires-Dist: sse-starlette ; extra == 'all'
82
+ Requires-Dist: pyarrow ; extra == 'all'
95
83
  Requires-Dist: dataframe-image ; extra == 'all'
96
- Requires-Dist: iteration-utilities ; extra == 'all'
97
- Requires-Dist: simplejson ; extra == 'all'
84
+ Requires-Dist: jieba ; extra == 'all'
85
+ Requires-Dist: cachetools ; extra == 'all'
86
+ Requires-Dist: redis-py-cluster ; extra == 'all'
87
+ Requires-Dist: filetype ; extra == 'all'
88
+ Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
98
89
  Requires-Dist: streamlit ; extra == 'all'
99
- Requires-Dist: pandas-summary ; extra == 'all'
100
- Requires-Dist: sse-starlette ; extra == 'all'
101
90
  Requires-Dist: pymysql ; extra == 'all'
91
+ Requires-Dist: schedule ; extra == 'all'
92
+ Requires-Dist: sqlalchemy ; extra == 'all'
93
+ Requires-Dist: jinja2 ; extra == 'all'
94
+ Requires-Dist: pretty-errors ; extra == 'all'
95
+ Requires-Dist: gunicorn ; extra == 'all'
96
+ Requires-Dist: pymupd ; extra == 'all'
97
+ Requires-Dist: faiss-cpu ; extra == 'all'
98
+ Requires-Dist: asyncmy ; extra == 'all'
99
+ Requires-Dist: uvicorn ; extra == 'all'
100
+ Requires-Dist: simplejson ; 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'
@@ -94,7 +94,7 @@ examples/_openaisdk/openai_audio.py,sha256=ZyYslH9RfdJBpNUpjKn_5x0d94_H291Qt31u_
94
94
  examples/_openaisdk/openai_baichuan.py,sha256=-xhHovkFmWOTX25CJjIon0my-ocmwfAZJu1C0eS80Xs,1614
95
95
  examples/_openaisdk/openai_baidu.py,sha256=qnrxP66lY7Qf2jEbFEHrt0FrR5_Aji1AgwSI_46IabY,1969
96
96
  examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
97
- examples/_openaisdk/openai_chatfire.py,sha256=zVkaIKifO71IkBW0dIkNJrobyKrSCfioeCW766kiWNU,18799
97
+ examples/_openaisdk/openai_chatfire.py,sha256=Zxp3J3fq24CvNB44b76Es6Ylb-lAyilCmw2Rcgh-Wo0,18824
98
98
  examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
99
99
  examples/_openaisdk/openai_dashscope.py,sha256=m9SjQpaNgYwr4Qd3XusWbJBGp5ZTtpuB40QopejxPKQ,1029
100
100
  examples/_openaisdk/openai_deepinfra.py,sha256=innI4BT15dZEqheqDHG4lHDczY1QC7t2Whcavi1pcz0,1195
@@ -108,6 +108,7 @@ examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp
108
108
  examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
109
109
  examples/_openaisdk/openai_images.py,sha256=mJQGbue_ka9kjsNx1TRfIRab9HgC0h5i0O_6U7kxb_c,5676
110
110
  examples/_openaisdk/openai_json.py,sha256=M4tq_IkzYbmtgbFilGQHmRdJhH0OltiwGk7cK7uc-sQ,1850
111
+ examples/_openaisdk/openai_kindo.py,sha256=dRQd8BOUDlWo4xp2l1s3BeP7qv19i7CUjx14NRv1fxM,741
111
112
  examples/_openaisdk/openai_lingyi.py,sha256=l2GcNxhwfLv7MfMF-cdRWGGvX-dRaZyb8IRlXLPACMw,1834
112
113
  examples/_openaisdk/openai_luchentech.py,sha256=Jy0JxpL1u3pXcmslViPvrbwSysVBV-Dz8wSKqv6QtxY,1960
113
114
  examples/_openaisdk/openai_modelscope.py,sha256=C7QG1KCK7-F0Hm-MlvMJ5FQoJg9-LGGagXUJf_Nkhng,1446
@@ -124,7 +125,7 @@ examples/_openaisdk/openai_test.py,sha256=gjPveJYkI_MqCePoVZ6kNlEEChRgedE2hzMkN7
124
125
  examples/_openaisdk/openai_together.py,sha256=o9FQKDdLwx8L0zMxrceIakymT2GqFfZ2v4UjVaLyB8M,1591
125
126
  examples/_openaisdk/openai_tune.py,sha256=D8n3mnlvVpDB_P11sErlibSyYtoFT5aKPUDQhtIANWE,1237
126
127
  examples/_openaisdk/openai_v.py,sha256=bVfMM86VpRy85patn1eDF9Y-Ojxd2w4GAx3NIUPVzC0,999
127
- examples/_openaisdk/openai_x.py,sha256=Ny2qe94r0dc_uh_M-EoY1q6DG7XUVq5RxGIlRMuVCXA,779
128
+ examples/_openaisdk/openai_x.py,sha256=kRa7xiQJuCeVbJDrQK1Ce0n2WWhX_dW-Ncx3weHBuSM,777
128
129
  examples/_openaisdk/openai_zhipu.py,sha256=_1OO6lYKgXqVmZVrD5tTPwfaMM0zcF_VNgl3xOP1hyU,2316
129
130
  examples/_openaisdk/ppu.py,sha256=jPBufoYt2ZrqNKjgbHr49YZI5vBM-32eBYbhbYduhnY,602
130
131
  examples/_openaisdk/rag.py,sha256=NwNHhfi5FZ2XKCmsScjmM5cxCSfJuqx2jV-69ZXh244,1372
@@ -246,7 +247,7 @@ meutils/cache_utils.py,sha256=6vz3G8wZ5iOXH91J-dp7ciU_BuLDzjjQUi4Hl8rrzOY,8425
246
247
  meutils/common.py,sha256=Q67tijaVW0J5bpGi1dZ9DY53ilMAf1lQtxTVn3QJlE4,16559
247
248
  meutils/date_utils.py,sha256=--rh58qfa2iagLjgA0eh1myyvaZ0hgxHiy-WCsrNsuk,2497
248
249
  meutils/dist_utils.py,sha256=3U9VXuVf4_iWtXn6C5Dd5yDDDpzdZxZaokuQmuUcUwY,3640
249
- meutils/hash_utils.py,sha256=FwM5f1uuOJD6ePlC8nbzKd4J83ZmZ-If7v5Sv91FlQ4,2514
250
+ meutils/hash_utils.py,sha256=u_rM8QvgSl5Num8MljXD8tqEuxhEvHInWawor8tgac8,2563
250
251
  meutils/import_utils.py,sha256=2oSFYLR5XPesElO96uBHA_ziKA97WabcK84_BmVpgTE,969
251
252
  meutils/jinja_utils.py,sha256=YneMn9FjXhrUe0WKhwSROCVIGd31dJd74JXUY5gycmY,708
252
253
  meutils/np_utils.py,sha256=JzernZr0aj93l-hS49W1Wt07Sjuw_6_u9ytNiLt-wO4,3726
@@ -393,7 +394,7 @@ meutils/apis/jimeng/common.py,sha256=o6qMyic9jbgD_tmOcGDPn9tcOctMyLP9Y3XW5rIwsZs
393
394
  meutils/apis/jimeng/doubao.py,sha256=5OdnBpmZQOCLIb6lnN8YrL7J7E0XF47q0UF-z6asSuI,4295
394
395
  meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
395
396
  meutils/apis/jimeng/files.py,sha256=afwWvN6gSRjBGVMjV3CMpMwnuJ1cAVYBiFc6wamc570,9547
396
- meutils/apis/jimeng/images.py,sha256=QoFTQj-M_I0K1TnBuxT41Nb0stn6u4kBVrWnfINJEbs,11501
397
+ meutils/apis/jimeng/images.py,sha256=dAEL-lanpm9Q38KBkfwGDCP04AJ50sf13TxGWpUZSIA,11528
397
398
  meutils/apis/jimeng/videos.py,sha256=x-PDOYNBN-yTmNvMbyDbwm_E2LXZ6A4hcVzEahV_Hvc,10813
398
399
  meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
399
400
  meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
@@ -469,7 +470,7 @@ meutils/apis/uptime_kuma/国产分组.py,sha256=OIiUUFfjWEEJHg5fr8Vf5xSBWkbXboQ4
469
470
  meutils/apis/videos/__init__.py,sha256=OCykr_XRIOH18Xh5hfBq5yMxbk8e9Myk4KuAtrtgAWw,272
470
471
  meutils/apis/videos/sora.py,sha256=G3wGlvTYl4YfG20L2HXPhmhZ4HwrlIFSU-KYM-TdALg,295
471
472
  meutils/apis/vidu/__init__.py,sha256=8nQN-RiZGJlZaZGVFbtHgK57_Ml5g_vFCiOImWwBm0I,242
472
- meutils/apis/vidu/vidu_video.py,sha256=8u4fz9kTT9z-Y0ORMHBPade_CQh9fjD-szQiATVaJIM,18177
473
+ meutils/apis/vidu/vidu_video.py,sha256=ecBAwwzCQ6efOezNzVF_lbb1dNa0jvCd_8jANjRGs4c,18189
473
474
  meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
474
475
  meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
475
476
  meutils/apis/voice_clone/fish_api.py,sha256=pDpE-B8HFiGIOV3NVd1HmFrCC2GQc3wH-81oNbTS0mY,307
@@ -523,7 +524,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
523
524
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
524
525
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
525
526
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
526
- meutils/data/VERSION,sha256=hbCpCzheOblIrhWhXLNOBq_WICS_vTTVe-CBOj9xWak,19
527
+ meutils/data/VERSION,sha256=ng6_lnhX9OPaQA_XSk3lHJgfA1y9bG6uiyHKU_7GfDU,19
527
528
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
528
529
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
529
530
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -590,15 +591,15 @@ meutils/llm/completions/modelscope.py,sha256=umPlJuHSL2RR0oNdTIAqts8iqEmGp_MR6Vh
590
591
  meutils/llm/completions/oi.py,sha256=DmvzxJfdLA_I3MWcULhFtiUdo90j7V2dLvYvmZ-Tm9U,293
591
592
  meutils/llm/completions/qwenllm.py,sha256=d3E51-iKSCuL2HrVO4aUmGN_fa5Jwz5K1ENbK7MtXEE,2043
592
593
  meutils/llm/completions/rag.py,sha256=cpQ1aZX2QI1QDfFpODTxWHPYglK6_3qrlUM_KHLBNhc,1112
593
- meutils/llm/completions/reasoner.py,sha256=VBft00syNuEE_ivIF6E_fLJRXZDSFrAyrnqGinphAKw,5922
594
+ meutils/llm/completions/reasoner.py,sha256=5yA4DehGG1FAjRa9f_x0e76ROVhdiP3VZ2gZFnfVn_c,6165
594
595
  meutils/llm/completions/tryblend.py,sha256=NfVRktn1QiE2k60PzEI-LmKuxZCc7mtL_KlsrVcZg4k,8957
595
596
  meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb_E,10138
596
597
  meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,630
597
598
  meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M,1646
598
- meutils/llm/completions/yuanbao.py,sha256=aN3MwR6yORFv5pGA1ODiLqlNKCfAKQslIfpruAD6m08,5468
599
+ meutils/llm/completions/yuanbao.py,sha256=UA85J0bXwNFtEx76ccKLVqwBgB4qDRdgeT-e2Is9S40,5625
599
600
  meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
600
601
  meutils/llm/completions/agents/file.py,sha256=4SGCkHSBEdAB6NbxPaViXYUJq5giGtEF9FEgq2WxyBY,4934
601
- meutils/llm/completions/agents/search.py,sha256=uNSQlE6hmk9yPiHf5vPeM41RvSFMOteQT011uxubWSI,4764
602
+ meutils/llm/completions/agents/search.py,sha256=GbNRI94Pnj65jXtzmeGCDtEqEnUDu0a417tyRgUp6QE,5012
602
603
  meutils/llm/completions/rag/__init__.py,sha256=VH4g9H0pqMM1Rkjc1xefQb4Uh8f9vlTt6tjdD6G6Wc0,272
603
604
  meutils/llm/completions/rag/fire.py,sha256=0a_POkY9mEy1YwZHXOGnqf9EVyjiJwx3fWhmv_bQ54U,5743
604
605
  meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cpxu6TBg,265
@@ -742,14 +743,14 @@ meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrP
742
743
  meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
743
744
  meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
744
745
  meutils/schemas/video_types.py,sha256=shXriVG_HMVkUCwNQl7H6vTmZ2SXkjzDHJJ5uWfXKcQ,2519
745
- meutils/schemas/vidu_types.py,sha256=NIJn4RKZqFu1qp5T4bcPELwp5eeFh8WSphVda2lpqDY,8974
746
+ meutils/schemas/vidu_types.py,sha256=xky2xQLtRP_T-2ydU5Ps2Q2ZVqPtfLi5I7_-UXg3jnI,9022
746
747
  meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
747
- meutils/schemas/yuanbao_types.py,sha256=ZmB-7_eAuTU3QDonNgy0vcVP4YQNwA5yJ8G4mvfOmUE,11966
748
+ meutils/schemas/yuanbao_types.py,sha256=NVL0N-GN227J0bI4OfSFz-7rw3bd2Ny_ip80lOKIBL8,12175
748
749
  meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
749
750
  meutils/schemas/db/oneapi_types.py,sha256=YanT0q9pU7dva2ZBPWjCpwGNUuifnJh0zUJJCQ9070c,3848
750
751
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
751
752
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
752
- meutils/schemas/oneapi/common.py,sha256=saTw0EwQzg4QsDuAENgZUOEJrIygSeUFzUL_17gD2gs,29873
753
+ meutils/schemas/oneapi/common.py,sha256=_EBf27Bp1m5vB8MZ6OuK87oJRrXF3pkCLuEmKP0IQAQ,29922
753
754
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
754
755
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
755
756
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -877,9 +878,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
877
878
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
878
879
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
879
880
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
880
- MeUtils-2025.2.11.18.25.28.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
881
- MeUtils-2025.2.11.18.25.28.dist-info/METADATA,sha256=eAcLVw3eon3APpz73Io1tTY7ZxH3SlLI8I7GjB2zTB0,6143
882
- MeUtils-2025.2.11.18.25.28.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
883
- MeUtils-2025.2.11.18.25.28.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
884
- MeUtils-2025.2.11.18.25.28.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
885
- MeUtils-2025.2.11.18.25.28.dist-info/RECORD,,
881
+ MeUtils-2025.2.13.20.50.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
882
+ MeUtils-2025.2.13.20.50.5.dist-info/METADATA,sha256=lSR0jO8ji1bVjQWAyQGoOflnqFwzByw3n29i4QzsNMc,6142
883
+ MeUtils-2025.2.13.20.50.5.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
884
+ MeUtils-2025.2.13.20.50.5.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
885
+ MeUtils-2025.2.13.20.50.5.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
886
+ MeUtils-2025.2.13.20.50.5.dist-info/RECORD,,
@@ -234,8 +234,10 @@ if __name__ == '__main__':
234
234
  # "deepseek-v3"
235
235
  # "deepseek-r1"
236
236
  # "qwen2.5-max"
237
- "deepseek-r1-distill-qwen-7b",
238
- "deepseek-r1-distill-qwen-32b"
237
+ # "deepseek-r1-distill-qwen-7b",
238
+ # "deepseek-r1-distill-qwen-32b"
239
+
240
+ "o1"
239
241
 
240
242
  ]
241
243
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
@@ -256,7 +258,7 @@ if __name__ == '__main__':
256
258
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN") + "-725")
257
259
 
258
260
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY") + "-743")
259
- check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
261
+ check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
260
262
 
261
263
 
262
264
  #############神奇 #############reasoning_content 神奇
@@ -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
+ # base_url="https://free.chatfire.cn/v1",
19
+ api_key="d17beace-2d47-432a-8d2e-89a03237b7d4-4c228b83994398b9",
20
+ base_url="https://all.chatfire.cc/kindo/v1"
21
+
22
+ )
23
+
24
+ try:
25
+ client.chat.completions.create(
26
+ messages=[
27
+ {"role": "user", "content": "你是谁"}
28
+ ],
29
+ model="azure/gpt-4o-mini",
30
+ )
31
+ except Exception as e:
32
+ print(e)
@@ -24,7 +24,7 @@ r = client.chat.completions.create(
24
24
  # model="DeepSeek-R1-Distill-Qwen-1.5B",
25
25
  model="deepseek-r1-Distill-Qwen-1.5B",
26
26
 
27
- # stream=True,
27
+ stream=True,
28
28
  messages=[
29
29
  {"role": "user", "content": "Hello!"}
30
30
  ]
@@ -43,7 +43,7 @@ async def create_draft_content(request: ImageRequest, token: str):
43
43
  image_uri = await upload_for_image(url, token)
44
44
 
45
45
  request.prompt = request.prompt.replace(url, '')
46
- request.model = "high_aes_general_v20_L:general_v2.0_L" # 2.1不支持图片编辑
46
+ request.model = "high_aes_general_v20_L:general_v2.0_L" # 2.1不支持图片编辑 某些不支持
47
47
 
48
48
  component = {
49
49
  "type": "image_base_component",
@@ -75,7 +75,7 @@ async def create_draft_content(request: ImageRequest, token: str):
75
75
  {
76
76
  "type": "",
77
77
  "id": str(uuid.uuid4()),
78
- "name": "byte_edit",
78
+ "name": "byte_edit", # bg_paint
79
79
  "image_uri_list": [
80
80
  image_uri
81
81
  ],
@@ -197,7 +197,6 @@ async def create_task(request: ImageRequest, token: Optional[str] = None):
197
197
  }
198
198
  }
199
199
 
200
-
201
200
  async with httpx.AsyncClient(base_url=BASE_URL, headers=headers, timeout=60) as client:
202
201
  response = await client.post(url, json=payload)
203
202
  response.raise_for_status()
@@ -32,12 +32,7 @@ send_message = partial(
32
32
 
33
33
 
34
34
  async def upload(file, token: Optional[str] = None, vip: bool = False): # todo: 统一到 file object
35
- token = token or await get_next_token_for_polling(
36
- FEISHU_URL_VIP if vip else FEISHU_URL,
37
- check_token=check_token,
38
- from_redis=True,
39
- min_points=4 # 最小消耗
40
- )
35
+ token = token or await get_next_token_for_polling(FEISHU_URL_VIP)
41
36
 
42
37
  token = token.strip(";Shunt=").strip("; Shunt=")
43
38
  logger.debug(token)
@@ -80,6 +75,9 @@ async def create_task(request: ViduRequest, token: Optional[str] = None, vip: bo
80
75
  token = token.strip(";Shunt=").strip("; Shunt=")
81
76
 
82
77
  task_type = TaskType.vidu_vip if vip else TaskType.vidu
78
+ if vip:
79
+ request.payload['settings']['schedule_mode'] = "nopeak"
80
+ request.payload['settings']['resolution'] = "720p"
83
81
 
84
82
  headers = {
85
83
  "Cookie": token
@@ -214,7 +212,7 @@ if __name__ == '__main__':
214
212
  }
215
213
  token = None
216
214
  # print(bjson(ViduRequest(**d).payload))
217
- arun(create_task(ViduRequest(**d)))
215
+ arun(create_task(ViduRequest(**d), vip=True))
218
216
  # arun(create_task(ViduRequest(**d), vip=False))
219
217
  # # pass
220
218
  # token = "sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22sSsAAnHAInAGEtIG%22%2C%22gae28_aV%22%3A%22EGEuAnststSEirt-ARSAigSVHIiHVs-EtHsHnIR-sARInAA-EGEuAnststHsIti%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%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlJPq0swqfcpXNJPZKSBF0IQXLzWq7lQFQzQZNcBF1SQF3EQqwIBF3MQhwswX08wFlJPq0swqfcpXKcwhzz3aMax9klWZHAiD7HDsJCWskbDskl3qmawqNcwX0sQF0hQq0HwFfhp4xG%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22sSsAAnHAInAGEtIG%22%7D%7D;_ga=GA1.1.2058758439.1724312077;_ga_ZJBV7VYP55=GS1.1.1727080335.38.1.1727080510.0.0.0;JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjgzNTAzODAsImlhdCI6MTcyNzA1NDM4MCwiaXNzIjoiaWFtIiwic3ViIjoiMjQyMDA2NTAzNjA5MTgzOSJ9.PkjQqjYB56vYetYwmlagnWn_6bSCwoxCjI7BjfelBOU;Shunt="
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.02.11.18.25.28
1
+ 2025.02.13.20.50.05
meutils/hash_utils.py CHANGED
@@ -88,3 +88,7 @@ if __name__ == '__main__':
88
88
  r = {'expid': 'expid'}
89
89
 
90
90
  print(ABTest(**r, ranger=(0, 99)).is_hit('id'))
91
+
92
+
93
+ import uuid
94
+ print(uuid.uuid3('1', '1'))
@@ -90,6 +90,13 @@ class Completions(object):
90
90
  completion = await client.chat.completions.create(**data)
91
91
  return completion
92
92
 
93
+ elif request.model.startswith("search"): # 智谱
94
+ data = to_openai_params(request)
95
+
96
+ search_completion = await zhipuai_client.chat.completions.create(**data)
97
+ search_completion.model_dump_json(indent=4)
98
+
99
+
93
100
  else:
94
101
  # 搜索
95
102
  data = to_openai_params(request)
@@ -65,13 +65,15 @@ class Completions(object):
65
65
  completion_chunks = await self.client.chat.completions.create(**data)
66
66
 
67
67
  is_reasoning_content = True
68
- reasoning_prefix = "> Reasoning\n"
69
- reasoning_suffix = "Reasoned for "
68
+ # reasoning_prefix = "> Reasoning\n"
69
+ # reasoning_suffix = "Reasoned for "
70
+ reasoning_prefix = "```reasoning\n"
71
+ reasoning_suffix = "\n```\n"
70
72
 
71
73
  async for chunk in completion_chunks:
72
74
  # chunk.model = "deepseek-reasoner"
73
75
  message = chunk.choices[0].delta
74
- message.content = message.content or "" ########## 损失了?message chunk #########应该是很多值未带进chunk
76
+ message.content = message.content or "" ########## 损失了?message chunk #########应该是很多值未带进chunk 中转站自定义渠道bug 参数放请求头吧
75
77
 
76
78
  # logger.debug(message)
77
79
  if not hasattr(message, 'reasoning_content'): # 标准化 finish_reason
@@ -96,14 +98,15 @@ class Completions(object):
96
98
 
97
99
  elif message.content: # 思考结束
98
100
  if reasoning_suffix:
99
- message.content = f"{reasoning_suffix} {time.perf_counter() - s:.0f} seconds.\n{message.content}"
101
+ message.content = f"{message.content.rstrip()}{reasoning_suffix}"
102
+ # message.content = f"{reasoning_suffix} {time.perf_counter() - s:.0f} seconds.\n{message.content}"
100
103
  reasoning_suffix = ""
101
104
 
102
105
  yield chunk
103
- logger.debug(chunk)
106
+ # logger.debug(chunk)
104
107
  else:
105
108
  yield chunk
106
- logger.debug(chunk)
109
+ # logger.debug(chunk)
107
110
 
108
111
 
109
112
  else: # 非流
@@ -43,6 +43,7 @@ class Completions(object):
43
43
  self,
44
44
  request: Optional[ChatCompletionRequest] = None,
45
45
  image_request: Optional[HunyuanImageRequest] = None,
46
+ enable_search: bool = False,
46
47
  token: Optional[str] = None
47
48
  ):
48
49
  token = token or await get_next_token_for_polling(FEISHU_URL, check_token=check_token)
@@ -53,8 +54,9 @@ class Completions(object):
53
54
 
54
55
  payload = {
55
56
  "model": "gpt_175B_0404",
57
+ "chatModelId": "deep_seek",
56
58
  "version": "v2",
57
- "supportHint": 2,
59
+ "supportHint": 2, # 1
58
60
 
59
61
  "prompt": prompt,
60
62
  # "displayPrompt": "画条可爱的狗狗",
@@ -94,6 +96,11 @@ class Completions(object):
94
96
  }
95
97
  )
96
98
 
99
+ if enable_search:
100
+ payload['supportFunctions'] = [
101
+ "supportInternetSearch"
102
+ ]
103
+
97
104
  headers = {
98
105
  'cookie': token
99
106
  }
@@ -112,6 +119,7 @@ class Completions(object):
112
119
  yield sse.image
113
120
 
114
121
  if request:
122
+
115
123
  yield sse.content
116
124
 
117
125
  def generate_id(self, random: bool = True):
@@ -140,33 +148,34 @@ async def check_token(token):
140
148
 
141
149
 
142
150
  if __name__ == '__main__':
143
- # chatid = generate_id()
144
- # print(chatid)
145
- # print(delete_conv(chatid))
146
- # payload = {
147
- # # "model": "gpt_175B_0404",
148
- # # "prompt": "1+1",
149
- # "prompt": "错了",
150
- #
151
- # # "plugin": "Adaptive",
152
- # # "displayPrompt": "1+1",
153
- # # "displayPromptType": 1,
154
- # # "options": {},
155
- # # "multimedia": [],
156
- # # "agentId": "naQivTmsDa",
157
- # # "version": "v2"
158
- # }
159
- # chat(payload)
160
-
161
- # async2sync_generator(Completions(api_key).achat('画条狗')) | xprint
162
- request = HunyuanImageRequest(prompt='画条狗', size='16:9')
163
-
164
- # arun(Completions().create(
165
- # ChatCompletionRequest(messages=[{'role': 'user', 'content': '南京天气如何'}]),
166
- # # image_request=request,
167
- # # token=token
168
- # ))
169
- arun(Completions.generate(request))
151
+ # chatid = generate_id()
152
+ # print(chatid)
153
+ # print(delete_conv(chatid))
154
+ # payload = {
155
+ # # "model": "gpt_175B_0404",
156
+ # # "prompt": "1+1",
157
+ # "prompt": "错了",
158
+ #
159
+ # # "plugin": "Adaptive",
160
+ # # "displayPrompt": "1+1",
161
+ # # "displayPromptType": 1,
162
+ # # "options": {},
163
+ # # "multimedia": [],
164
+ # # "agentId": "naQivTmsDa",
165
+ # # "version": "v2"
166
+ # }
167
+ # chat(payload)
168
+
169
+ # async2sync_generator(Completions(api_key).achat('画条狗')) | xprint
170
+ # request = HunyuanImageRequest(prompt='画条狗', size='16:9')
171
+
172
+ arun(Completions().create(
173
+ ChatCompletionRequest(messages=[{'role': 'user', 'content': '南京天气如何'}]),
174
+ # image_request=request,
175
+ # token=token
176
+ enable_search=True
177
+ ))
178
+ # arun(Completions.generate(request))
170
179
 
171
180
  # df = arun(aget_spreadsheet_values(feishu_url=FEISHU__URL, to_dataframe=True))
172
181
  #
@@ -18,6 +18,8 @@ MJ_RELAX = 1
18
18
  STEP = 2
19
19
 
20
20
  MODEL_PRICE = {
21
+ "o1:free": FREE,
22
+
21
23
  "black-forest-labs/FLUX.1-dev": 0.0001,
22
24
  "black-forest-labs/FLUX.1-pro": 0.0001,
23
25
 
@@ -484,9 +486,9 @@ MODEL_RATIO = {
484
486
  "abab5.5s-chat": 2.5,
485
487
 
486
488
  # deepseek
487
- "deepseek-v3": 2,
489
+ "deepseek-v3": 1,
488
490
  "deepseek-v3-128k": 5,
489
- "deepseek-chat": 2,
491
+ "deepseek-chat": 1,
490
492
  "deepseek-chat-64k": 5,
491
493
  "deepseek-chat-164k": 5,
492
494
  "deepseek-chat:function": 4,
@@ -620,7 +622,7 @@ MODEL_RATIO = {
620
622
 
621
623
  "gemini-2.0-flash": 0.075,
622
624
  "gemini-2.0-flash-001": 0.075,
623
- "gemini-2.0-flash-lite-preview-02-05": 0.625,
625
+ "gemini-2.0-flash-lite-preview-02-05": 0.075,
624
626
 
625
627
  "gemini-2.0-pro": 1.25,
626
628
  "gemini-2.0-pro-exp-02-05": 1.25,
@@ -674,6 +676,8 @@ MODEL_RATIO = {
674
676
  "gpt-4o-2024-11-20": 1.25,
675
677
 
676
678
  "o1": 7.5,
679
+ "o1-2024-12-17": 7.5,
680
+
677
681
  "o1-mini": 1.5,
678
682
  "o1-preview": 7.5,
679
683
  "o1-mini-2024-09-12": 1.5,
@@ -10,7 +10,8 @@
10
10
 
11
11
  from meutils.pipe import *
12
12
 
13
- BASE_URL = "https://api.vidu.studio/vidu/v1"
13
+ # BASE_URL = "https://api.vidu.studio/vidu/v1"
14
+ BASE_URL = "https://service.vidu.com/vidu/v1"
14
15
  UPLOAD_BASE_URL = "https://api.vidu.studio/tools/v1" # /files/uploads
15
16
 
16
17
  EXAMPLES = [
@@ -220,12 +220,17 @@ class SSEData(BaseModel):
220
220
  # data: [DONE]
221
221
 
222
222
  content: str = ""
223
+ reasoning_content: str = ""
224
+
223
225
  image: Optional[str] = None
224
226
 
225
227
  chunk: str = ""
226
228
 
227
229
  def __init__(self, **data):
228
230
  super().__init__(**data)
231
+
232
+ logger.debug(self.chunk)
233
+
229
234
  chunk = self.chunk.lstrip("data:")
230
235
 
231
236
  if '"type":"progress"' in chunk:
@@ -248,6 +253,9 @@ class SSEData(BaseModel):
248
253
  # df['title'] = "[" + df['title'] + "](" + df['url'] + ")"
249
254
  # df['image'] = "![](" + df['image'] + ")"
250
255
 
256
+ elif '{"type":"think"' in chunk: # 思考中...
257
+ content = self.reasoning_content = json.loads(chunk).get("content", "")
258
+
251
259
  else:
252
260
  content = ""
253
261
  # chunk.strip() or logger.debug(chunk) # debug