MeUtils 2024.12.26.22.14.1__py3-none-any.whl → 2024.12.31.17.51.53__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: 2024.12.26.22.14.1
3
+ Version: 2024.12.31.17.51.53
4
4
  Summary: description
5
5
  Home-page: https://github.com/yuanjie-ai/MeUtils
6
6
  Author: yuanjie
@@ -63,42 +63,42 @@ Requires-Dist: sse-starlette ; extra == 'ai'
63
63
  Requires-Dist: openai ; extra == 'ai'
64
64
  Requires-Dist: langchain ; extra == 'ai'
65
65
  Provides-Extra: all
66
+ Requires-Dist: pymongo ; extra == 'all'
67
+ Requires-Dist: jmespath ; extra == 'all'
68
+ Requires-Dist: thriftpy2 ; extra == 'all'
69
+ Requires-Dist: simplejson ; extra == 'all'
70
+ Requires-Dist: schedule ; extra == 'all'
66
71
  Requires-Dist: thefuck ; extra == 'all'
67
- Requires-Dist: sse-starlette ; extra == 'all'
72
+ Requires-Dist: pymilvus ; extra == 'all'
68
73
  Requires-Dist: filetype ; extra == 'all'
69
- Requires-Dist: pymupd ; extra == 'all'
70
- Requires-Dist: jieba ; extra == 'all'
71
74
  Requires-Dist: pandas-summary ; extra == 'all'
72
- Requires-Dist: gunicorn ; extra == 'all'
73
- Requires-Dist: reportlab ; extra == 'all'
75
+ Requires-Dist: geopy ; extra == 'all'
76
+ Requires-Dist: polars ; extra == 'all'
77
+ Requires-Dist: seaborn ; extra == 'all'
78
+ Requires-Dist: cachetools ; extra == 'all'
74
79
  Requires-Dist: faiss-cpu ; extra == 'all'
75
- Requires-Dist: missingno ; extra == 'all'
76
- Requires-Dist: schedule ; extra == 'all'
77
- Requires-Dist: simplejson ; extra == 'all'
78
- Requires-Dist: openai ; extra == 'all'
80
+ Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
81
+ Requires-Dist: pyarrow ; extra == 'all'
79
82
  Requires-Dist: uvicorn ; extra == 'all'
80
- Requires-Dist: fastapi[all] ; extra == 'all'
83
+ Requires-Dist: pymysql ; extra == 'all'
81
84
  Requires-Dist: langchain ; extra == 'all'
82
- Requires-Dist: pymongo ; extra == 'all'
83
- Requires-Dist: seaborn ; extra == 'all'
84
- Requires-Dist: redis-py-cluster ; extra == 'all'
85
- Requires-Dist: sqlalchemy ; extra == 'all'
86
- Requires-Dist: pymilvus ; extra == 'all'
87
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
88
- Requires-Dist: polars ; extra == 'all'
89
- Requires-Dist: jmespath ; extra == 'all'
90
- Requires-Dist: geopy ; extra == 'all'
91
- Requires-Dist: iteration-utilities ; extra == 'all'
92
85
  Requires-Dist: pretty-errors ; extra == 'all'
93
- Requires-Dist: thriftpy2 ; extra == 'all'
86
+ Requires-Dist: sqlalchemy ; extra == 'all'
87
+ Requires-Dist: missingno ; extra == 'all'
88
+ Requires-Dist: gunicorn ; extra == 'all'
89
+ Requires-Dist: sse-starlette ; extra == 'all'
90
+ Requires-Dist: jieba ; extra == 'all'
94
91
  Requires-Dist: jinja2 ; extra == 'all'
95
- Requires-Dist: pymysql ; extra == 'all'
96
92
  Requires-Dist: streamlit ; extra == 'all'
97
- Requires-Dist: cachetools ; extra == 'all'
98
- Requires-Dist: pyarrow ; extra == 'all'
99
- Requires-Dist: fastapi ; extra == 'all'
93
+ Requires-Dist: openai ; extra == 'all'
94
+ Requires-Dist: fastapi[all] ; extra == 'all'
95
+ Requires-Dist: reportlab ; extra == 'all'
96
+ Requires-Dist: redis-py-cluster ; extra == 'all'
100
97
  Requires-Dist: dataframe-image ; extra == 'all'
101
98
  Requires-Dist: asyncmy ; extra == 'all'
99
+ Requires-Dist: iteration-utilities ; extra == 'all'
100
+ Requires-Dist: pymupd ; extra == 'all'
101
+ Requires-Dist: fastapi ; extra == 'all'
102
102
  Provides-Extra: ann
103
103
  Requires-Dist: pymilvus ; extra == 'ann'
104
104
  Requires-Dist: faiss-cpu ; extra == 'ann'
@@ -91,7 +91,7 @@ examples/_openaisdk/open_router.py,sha256=Z4i_FJIc773JnIdYA3Hhuy1Dq5-DIOIrmkWwbp
91
91
  examples/_openaisdk/openai_audio.py,sha256=ZyYslH9RfdJBpNUpjKn_5x0d94_H291Qt31u_6weISc,484
92
92
  examples/_openaisdk/openai_baichuan.py,sha256=4_Gz8FeRrW5Zwnh-KFmaLOXr6sn3AxU47Qd2j8VDiQU,1527
93
93
  examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
94
- examples/_openaisdk/openai_chatfire.py,sha256=XYiluw1SF-4-OVREsUuh-DVr-kmPC7aKoFxAdmydBO8,17211
94
+ examples/_openaisdk/openai_chatfire.py,sha256=nuaGDz1ANW2AAYxyfKD8Glr-n1C2-l1GmFw_Ea56xT0,17303
95
95
  examples/_openaisdk/openai_chatfire_all.py,sha256=DaiI1NfDeK655QvXyczkgXK9Awxp7NBe71LHA7trxGE,4831
96
96
  examples/_openaisdk/openai_deepseek.py,sha256=-1WyTX5EfB8bdVhZ-y2yZQ04fVzujp4OPmOQR6i3QxI,660
97
97
  examples/_openaisdk/openai_doubao.py,sha256=dp0SLvDBYpIJPNs_vnV2GBIEFa9FglNtYvfGKtJ9Bqk,1053
@@ -110,7 +110,7 @@ examples/_openaisdk/openai_siliconflow.py,sha256=A2CMev2Bw5OwEJQNXGXQKrNs0DzlvrV
110
110
  examples/_openaisdk/openai_step.py,sha256=rwXrGRs5CHhWpNl9oeIHltErp1Or_B3PVKNAoMGY-0c,1054
111
111
  examples/_openaisdk/openai_test.py,sha256=OdtT8qxKbh4S8H2T_zgMShn8VMQ_xSWttfqNSYT2hNw,1905
112
112
  examples/_openaisdk/openai_tune.py,sha256=D8n3mnlvVpDB_P11sErlibSyYtoFT5aKPUDQhtIANWE,1237
113
- examples/_openaisdk/openai_zhipu.py,sha256=NplKPhtA5A8O7o9YkjL8YULzsBDBl341D8Gji7fCnw4,1628
113
+ examples/_openaisdk/openai_zhipu.py,sha256=UCj9aCtjmN0gexfzo65VL0EKi_CpF27v2dpx3wN4ItY,1630
114
114
  examples/_openaisdk/ppu.py,sha256=jPBufoYt2ZrqNKjgbHr49YZI5vBM-32eBYbhbYduhnY,602
115
115
  examples/_openaisdk/rag.py,sha256=NwNHhfi5FZ2XKCmsScjmM5cxCSfJuqx2jV-69ZXh244,1372
116
116
  examples/_openaisdk/rag_.py,sha256=rNTCO83JK6zqQAiY0vlHZRN5DQNT9_nCYtjeh8lTijU,121217
@@ -118,6 +118,7 @@ examples/_openaisdk/test.py,sha256=Y_dP8rK-LFIBc_fy00ug-2XkilK0G_TlFDa3iuUK-iM,3
118
118
  examples/_openaisdk/x.py,sha256=IdhHsmyd-uZx5UohfWa_g467kZeR1Pkec42z3bW-3Iw,4752
119
119
  examples/_openaisdk/xx.py,sha256=DvU98YbhmFJZ3xWqK4NOAafNqOJLu2ehQycCRLEXVUg,645
120
120
  examples/_openaisdk/zhipu_files.py,sha256=HLvlM9CDcmNER5w-MBMLQPZVPJjR2UHRXYA3ru2cT2Q,1057
121
+ examples/_openaisdk/zhipu_智能体.py,sha256=f6uCVVLkIq_YKydwvnlzsEZ9jf10BXwtmmo860_uS7M,1100
121
122
  examples/_openaisdk/兜底测试.py,sha256=7vIOZDj-iB5dJjfJtHe_A-3D7ZUmOSiryI7ciIp0EzE,2878
122
123
  examples/_openaisdk/多模态测试.py,sha256=XNHvC9Qbw3tUZ_i8shyEx3a6T3FFDsTyIIkm3rO0R38,2559
123
124
  examples/_openaisdk/多模态测试_.py,sha256=7mh9dnpSApqmrriQ9-q4jY8uHfplsrjyGSXb8b-Zt9o,1276
@@ -224,7 +225,7 @@ examples/wget/demo.py,sha256=b-wASDBKND8_TtdIorNXV45sMjbWnfsYCBVk6XXee3o,438
224
225
  examples/wget/progress_bar/__init__.py,sha256=mlmNLOEplBy1h_Me-UWbgidVNrkie5okV1A8HQ0Ihy8,271
225
226
  examples/文档智能/__init__.py,sha256=JKHlkF5vTvwFJnFLIT7raQxsvBoK12b8lvVz-c03Uec,271
226
227
  meutils/__init__.py,sha256=X_i77Bvnt4-c4XUwuzGZTvXP2doPtTBqQsHl9DE455E,348
227
- meutils/_utils.py,sha256=WGToRl9L6zrvDAW4CLcP8XyQf0YUnVOqBVNdOz9xv84,1768
228
+ meutils/_utils.py,sha256=5oL-s4vM0DZSyI9j1Qoo999PcJagMKNZ9ZPaXFo9tp4,1999
228
229
  meutils/cache_utils.py,sha256=6vz3G8wZ5iOXH91J-dp7ciU_BuLDzjjQUi4Hl8rrzOY,8425
229
230
  meutils/common.py,sha256=4iFOr2iNyijMdtvJa-a32owTJNQjwTZ9cQ2xjX5vVw0,16542
230
231
  meutils/date_utils.py,sha256=--rh58qfa2iagLjgA0eh1myyvaZ0hgxHiy-WCsrNsuk,2497
@@ -344,7 +345,7 @@ meutils/apis/hunyuan/image_tools.py,sha256=o_Q8_-kp4F11bmZ-VA4_wmI_S5xdH8Dw6VIDb
344
345
  meutils/apis/images/__init__.py,sha256=hs7HUJZvw_3DAtoapPnbZsEb4ng1p0a6fJGFFWwUcUk,272
345
346
  meutils/apis/images/deepinfra.py,sha256=N7IDJ9dubojOY--R30uQlzSBbuuy4OXkCkRB1ey0kcQ,3241
346
347
  meutils/apis/images/demo.py,sha256=Cjk-EKMKbp44czykW_44qR0TzElX8nNCALqXBBw5sJA,4405
347
- meutils/apis/images/recraft.py,sha256=fqSXLuyhoy6u1uEwvGl0CISOHab_wVLWVdX3NFziamM,10140
348
+ meutils/apis/images/recraft.py,sha256=XWB2F6bH7fVZ31Mc4JcWxR6Oy8KBmjYt2c9FqegAuBU,4455
348
349
  meutils/apis/images/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
349
350
  meutils/apis/images/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
350
351
  meutils/apis/images/fal/images.py,sha256=VdobSRcMuU32Q1dEdTJCy68oXTjomz-yzLLLVE2F7WM,1774
@@ -366,7 +367,7 @@ meutils/apis/jimeng/common.py,sha256=wIduTWmtJJQWIbxDMVvQ9BlDheiGbeROPNuulfiwiNY
366
367
  meutils/apis/jimeng/doubao.py,sha256=vSEaTQHQdyhpHwCoq6CIikDZkUC9ncyTgKxGUC8cMCI,4345
367
368
  meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
368
369
  meutils/apis/jimeng/files.py,sha256=aFKg5iesJNVbXclaMR0yDpnKzjqW1yZxkyp9qrGTybo,5365
369
- meutils/apis/jimeng/images.py,sha256=Ey4_9eU7i7VbgY3VSXKTq0REsydIU9MCva6rT7oMszg,4017
370
+ meutils/apis/jimeng/images.py,sha256=Z1w8Jxqvom-rBB9MSfQz4QvfPLTEoamwyb9X9_yUmBk,4641
370
371
  meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
371
372
  meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
372
373
  meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
@@ -491,14 +492,14 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
491
492
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
492
493
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
493
494
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
494
- meutils/data/VERSION,sha256=zqr6yaz0tAmphjpfJAUxC29MpvkVkCUkq8ScIUfBEv4,19
495
+ meutils/data/VERSION,sha256=HUI0nXKG7VC_0piEI6rPcyOH30DsgRP25TKMBx3ldSk,19
495
496
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
496
497
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
497
498
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
498
499
  meutils/data/coordinate.py,sha256=VbFtcdho0XG4j-rZD0DgqcIf2_LR2LlbLtfhLXbxiDY,600
499
500
  meutils/data/cowboy-hat-face.webp,sha256=AHi2t-WclDVKWgGEe-oZzI4xKACNlgGWUgd622y0K-E,24814
500
501
  meutils/data/oneapi/FOOTER.md,sha256=UHv39ey2ICocxPoCj-UI_PWyyWxZYLS8zG1inqtWNQ4,448
501
- meutils/data/oneapi/NOTICE.md,sha256=0R7Gnh2yE9p_MRFx-a3Z4-UgRCJ3USCl0b86cOcc82Q,5220
502
+ meutils/data/oneapi/NOTICE.md,sha256=dpIf30sW98468255_n6t-rdHFszMU7nX2kQyNRUmEl0,5345
502
503
  meutils/data/oneapi/__init__.py,sha256=cm2Kq2RDXPfdVMWcoBB77bu00zJpTDd21Rgc6bTlhws,398
503
504
  meutils/db/__init__.py,sha256=HR99rqxoFTWXUHDhLVl33tzIn8M86gigHLmEzOKH1Ec,7637
504
505
  meutils/db/mongo.py,sha256=B-B_t939rxtnNGt0PxhivjIUwinmHPzLUpXsjUIaTkQ,2337
@@ -554,7 +555,7 @@ meutils/hooks/hook_test.py,sha256=dLNm_ngK9MV3c0ofLUBZF0dhGJXHuTg4V9k-ry_9wQU,69
554
555
  meutils/hooks/wechat.py,sha256=vFnL4jUzCwX1jTcO1-6QehzSUmsfzmWfyna5USMLIF8,5897
555
556
  meutils/hooks/wechat_channel.py,sha256=pB96BzjsMSTdVkDMgXO7HbQO4e2a2cSSnXLXFPoMdQc,12467
556
557
  meutils/init/__init__.py,sha256=J_ApVNdTQAHsIfSLrMRZhwJ8rdgiOfeyiXGSymvZSng,242
557
- meutils/init/evn.py,sha256=z-2SGOL2SzDUdaQMEFpazXNjkyV1CLYGML-rNEZZ5a0,1588
558
+ meutils/init/evn.py,sha256=GPw9Un8YbgYJmjwd-uYWQ8JeVr6pRxwyYbDv3W8fb1s,1588
558
559
  meutils/init/oo.py,sha256=jXWaCWWFYVPGgTIas47Z3J7sIq-CD7DyK6fKDBsq8GA,12884
559
560
  meutils/io/__init__.py,sha256=uW43ZfdWu7adRvwvcTzUGtn4CseRmbzEJdlZV-oqHEA,2107
560
561
  meutils/io/files_utils.py,sha256=KLG4230KhNfdZjhjZJo-jVtbR3RQNpPlp028u8hQUQ4,6979
@@ -562,8 +563,6 @@ meutils/io/image.py,sha256=lY8vhmf7_5hW5UPh1QjDfeZZOyvSGKDGpJo9k8-s5N4,6136
562
563
  meutils/io/minio_utils.py,sha256=i1YuxwDJzLse0smMXuPqnD1wirBBb8psmB_kd1oPoVU,1274
563
564
  meutils/io/tf_io.py,sha256=vEZZS4pCf4Dt3A-FtIVMfhC3FJUUpQCK2OoEvXrBWos,8605
564
565
  meutils/io/x.py,sha256=NyDhVhZ9poPPxaK-W5G8qWAnxjZ5NEz-kv32tK8qNvA,2665
565
- meutils/jwt_utils/__init__.py,sha256=hU1CYBK90Q9QKVrf1s6VFKZwWjHioHa6bO2AuDn7_eo,272
566
- meutils/jwt_utils/common.py,sha256=MBIKj4N8nMVAg_qQ9ki3U74Q7ZxFYsZDLi7xgTvWGsA,858
567
566
  meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
568
567
  meutils/llm/check_api.py,sha256=Vlan35FGvjPLP-dZu_Gfgmki-G89YPV96-x1oXji79I,3566
569
568
  meutils/llm/check_utils.py,sha256=wA7mHaWEqcN-GBeoqUw2ee_54G-Bht-m1opqZkAEFss,3354
@@ -585,12 +584,12 @@ meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,
585
584
  meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M,1646
586
585
  meutils/llm/completions/yuanbao.py,sha256=aN3MwR6yORFv5pGA1ODiLqlNKCfAKQslIfpruAD6m08,5468
587
586
  meutils/llm/completions/rag/__init__.py,sha256=VH4g9H0pqMM1Rkjc1xefQb4Uh8f9vlTt6tjdD6G6Wc0,272
588
- meutils/llm/completions/rag/fire.py,sha256=7JzDpSBSeW6RQxfExdNwePkyLCnPWoWwjr6lqTcLfqk,4525
587
+ meutils/llm/completions/rag/fire.py,sha256=0a_POkY9mEy1YwZHXOGnqf9EVyjiJwx3fWhmv_bQ54U,5743
589
588
  meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cpxu6TBg,265
590
589
  meutils/llm/completions/rag/rag.py,sha256=mnC4bZUMuNYuPFXMBqXMofj_ms8uP5MMw1leJ5jXA_k,1209
591
590
  meutils/llm/functions/__init__.py,sha256=It6pcNwRBSh3Em45ooi61lc5tFg8eOYv0BvEFuRjSGQ,271
592
591
  meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
593
- meutils/llm/openai_utils/common.py,sha256=GnrwigxzjlRmiyEeNZOKL2CKWvpo14YU_ujgVnIR6NE,9208
592
+ meutils/llm/openai_utils/common.py,sha256=rBA2EQB6xGfjbboX1x44vwwPSS7EXuA0BbhAULv7JBI,9206
594
593
  meutils/llm/openai_utils/tool_outputs.py,sha256=6mNkm4btgy0uzF98gdmcah1bYmoflXdLz2Sqm0KC_LQ,1224
595
594
  meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayzsXVmBuQxw,3474
596
595
  meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
@@ -649,14 +648,18 @@ meutils/queues/demo.py,sha256=gAjGRlJhM6Q-OlQkNuow5qrHuakngYPCfKOg4EVCaR8,1491
649
648
  meutils/queues/smooth_queue.py,sha256=hZubxQYP603-aL-_MAW8llGICBpJ7j-9IQG4y-Jo8eY,3513
650
649
  meutils/queues/uniform_queue.py,sha256=fKZw-xc9RBY0VoN6uRwQWEds8o5U0nxBz7SQhAVzq-I,1576
651
650
  meutils/request_utils/__init__.py,sha256=wqP3vkDJ2wFMawvx4XyT-5pNf-Jr81PYTQ14FCcG-Pw,4053
651
+ meutils/request_utils/ark.py,sha256=n7U89XlESpVJ-gErJIi1fvslkULLJEjAQQoEORGusr4,1012
652
652
  meutils/request_utils/a爬虫.py,sha256=PTsl0RuNB7IByErMpGZj5WwSZeHBRR53YqRNx1J0_EU,1894
653
653
  meutils/request_utils/crawler.py,sha256=7jSZGg2hWmKjLF1Sp1onH28-FGPV5EoygNlfG5ScKSk,2311
654
654
  meutils/request_utils/download.py,sha256=qFGt79Jp1f8n681x0kHWN3S70E-l46PlM2xqSdUDNm8,1767
655
655
  meutils/request_utils/results.py,sha256=i422B66FHc7fzAyyORpQEkO0QO_dk38d1K0i8XYuixk,1334
656
656
  meutils/request_utils/tiangong.py,sha256=l5t4pAWxxYvFxvyo-jJ-R6efKWMHjYPiPjrPUGMZLiU,3057
657
+ meutils/request_utils/volc.py,sha256=9kHyZDjLqFpFpSsDoGfeRE1Kd0UYrkg8EtotersSlWc,5885
657
658
  meutils/request_utils/wechat.py,sha256=LSI2diHs0IOXQiicUEMOtKnpQFTK7jLk-j-OTSwekGU,417
658
659
  meutils/request_utils/公网ip.py,sha256=eK7NdsvHnSXcUIOASl1g8loWlfLl0YzoRU_sYEC0HZQ,646
659
660
  meutils/request_utils/爬虫.py,sha256=pgbSAuxrpWFmKL_9xikjsz5L3b-bWhe-Fh-uoP7drxo,1735
661
+ meutils/request_utils/jwt_utils/__init__.py,sha256=hU1CYBK90Q9QKVrf1s6VFKZwWjHioHa6bO2AuDn7_eo,272
662
+ meutils/request_utils/jwt_utils/common.py,sha256=sD9-T_JXnlubXJJkFNg1d5oUKzhQ-sq1bRFubLVeu6A,859
660
663
  meutils/schemas/__init__.py,sha256=LOdt8C4mTa6rjd6ijvEW7mHuGTNXOhwxQ0gbhWxfrmA,244
661
664
  meutils/schemas/baidu_api.py,sha256=iq1-Iztp6d8k-yhRdvHRVfqKKuSnIkBLumBf52qoHdY,484
662
665
  meutils/schemas/baidu_types.py,sha256=mYExWrhdoB6Z1fHsp_ftbGF9qWhWMb0lA5k0mao2wDQ,19661
@@ -671,7 +674,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
671
674
  meutils/schemas/hailuo_types.py,sha256=hmkjFPID5HS26Ayk80xS2a38XcubokEHxzg86cC0Ki8,6150
672
675
  meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
673
676
  meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
674
- meutils/schemas/image_types.py,sha256=kcYdL7f-UsixSltsnfytSHn6W4OtAmIMMGBdVmV20k8,11594
677
+ meutils/schemas/image_types.py,sha256=n6WaN4U1557tsXzarLRlYwSsaffNf8NobNVM-p46sDY,11619
675
678
  meutils/schemas/jimeng_types.py,sha256=qsjtyURGsGnAGAhfZ9k4k-mtbRgjbWId75UMV1d6AiE,851
676
679
  meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
677
680
  meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
@@ -684,7 +687,7 @@ meutils/schemas/metaso_types.py,sha256=YD5Xrquxibi3911ZkjODFXqPp9vqxbQXKLdMe8dCq
684
687
  meutils/schemas/napkin_types.py,sha256=Kp0MbpRxzMBz4HWW4DrfcgOvHZVEF3N7P5yNeC1XGI4,2664
685
688
  meutils/schemas/ocr_types.py,sha256=fZWYQAKii7HaTlSU9DS0wHyiEoOHuLnhvgoiH4Cn498,1381
686
689
  meutils/schemas/openai_api_protocol.py,sha256=0GhmhUTEr54N_XCVuZI1MSxJldvwMNJjUAAAdWznw58,12716
687
- meutils/schemas/openai_types.py,sha256=45vL6STgObZawq_b1MIw9BW5l6NltmQTL2r9VAOep-0,11867
690
+ meutils/schemas/openai_types.py,sha256=fm4x-hnRIjKdLOu32ECqpa796_Gg9N_kRDFa86BoVJE,12358
688
691
  meutils/schemas/pixverse_types.py,sha256=3mHg2KxvszV1U8K3GdzsODZz4uocLVRjEeJgYhX0Xmw,2347
689
692
  meutils/schemas/playwright_types.py,sha256=zhZd53m1Wg4zlGtq2JM4z7Aon-u_eF6rzs-_TFYWvkU,1177
690
693
  meutils/schemas/prodia_types.py,sha256=knh_lzAxMfWMoqAPmvyMweay9PmQmsoQ1X6Mj17ohWg,476
@@ -706,7 +709,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
706
709
  meutils/schemas/db/oneapi_types.py,sha256=U_foX82tejUT7efCqyMMTLfq-C4LXMXsmwz5pfldwNw,3734
707
710
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
708
711
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
709
- meutils/schemas/oneapi/common.py,sha256=dvnibDVAtLKHurh2zzHC5E4vJCtkY20FRrVT7KGJUQU,23443
712
+ meutils/schemas/oneapi/common.py,sha256=YCDlNNcqzWYrNpuiUN9yjD_cqFQ4v8lMG_kHz8NZSPg,23512
710
713
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
711
714
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
712
715
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -834,9 +837,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
834
837
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
835
838
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
836
839
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
837
- MeUtils-2024.12.26.22.14.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
838
- MeUtils-2024.12.26.22.14.1.dist-info/METADATA,sha256=_P4-wAoIdxW8us12y6oIFwNqjos1ZKHmW7GWGIFbTLE,6202
839
- MeUtils-2024.12.26.22.14.1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
840
- MeUtils-2024.12.26.22.14.1.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
841
- MeUtils-2024.12.26.22.14.1.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
842
- MeUtils-2024.12.26.22.14.1.dist-info/RECORD,,
840
+ MeUtils-2024.12.31.17.51.53.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
841
+ MeUtils-2024.12.31.17.51.53.dist-info/METADATA,sha256=CLAH86V5oAsouo57VlPjVb3lAaRlavNSEAtI8AzrRyE,6203
842
+ MeUtils-2024.12.31.17.51.53.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
843
+ MeUtils-2024.12.31.17.51.53.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
844
+ MeUtils-2024.12.31.17.51.53.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
845
+ MeUtils-2024.12.31.17.51.53.dist-info/RECORD,,
@@ -202,7 +202,10 @@ if __name__ == '__main__':
202
202
  "ppu-1"
203
203
  ]
204
204
  # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
205
- check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
205
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
206
+
207
+ check_models(models, api_key="sk-iPNbgHSRkQ9VUb6iAcCa7a4539D74255A6462d29619d6519")
208
+
206
209
 
207
210
  #
208
211
  # for i in range(5):
@@ -24,6 +24,8 @@ client = OpenAI(
24
24
  # base_url="https://any2chat.chatfire.cn/glm/v1"
25
25
  )
26
26
 
27
+
28
+
27
29
  try:
28
30
  completion = client.chat.completions.create(
29
31
  model="glm-4-flash",
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : zhipu_智能体
5
+ # @Time : 2024/12/30 17:34
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ from zhipuai import ZhipuAI
14
+ api_key = "YOUR API KEY"
15
+ url = "https://open.bigmodel.cn/api/paas/v4"
16
+ client = ZhipuAI(
17
+ api_key="e21bd630f681c4d90b390cd609720483.WSFVgA3KkwNCX0mN",
18
+ base_url="https://open.bigmodel.cn/api/paas/v4/"
19
+ )
20
+
21
+ print(bjson(client.assistant.query_support()))
22
+ generate = client.assistant.conversation(
23
+ # assistant_id="65a265419d72d299a9230616",
24
+ assistant_id="65940acff94777010aa6b796",
25
+ conversation_id=None,
26
+ model="glm-4-assistant",
27
+ messages=[
28
+ {
29
+ "role": "user",
30
+ "content": [{
31
+ "type": "text",
32
+ # "text": "北京未来七天气温,做个折线图",
33
+
34
+ "text": "画条狗"
35
+
36
+ }]
37
+ }
38
+ ],
39
+ stream=True,
40
+ attachments=None,
41
+ metadata=None
42
+ )
43
+
44
+ for resp in generate:
45
+ print(resp)
meutils/_utils.py CHANGED
@@ -10,6 +10,7 @@
10
10
 
11
11
  import json
12
12
  import base64
13
+ from pydantic import BaseModel
13
14
 
14
15
 
15
16
  # bytes/string
@@ -39,8 +40,21 @@ def list_intersection(l1, l2):
39
40
 
40
41
  list4log = lambda ls: "\n\t" + "\n\t".join(ls)
41
42
 
43
+
42
44
  # 字典
43
- dict2json = bjson = lambda dic: json.dumps(dic, indent=4, ensure_ascii=False)
45
+
46
+
47
+ def bjson(json_data):
48
+ if isinstance(json_data, dict):
49
+ return json.dumps(json_data, indent=4, ensure_ascii=False)
50
+ elif isinstance(json_data, BaseModel):
51
+ return json_data.model_dump_json(indent=4)
52
+
53
+ else:
54
+ return json_data
55
+
56
+
57
+ dict2json = bjson
44
58
  json2dict = lambda s: json.loads(s.replace("'", '"'))
45
59
 
46
60
 
@@ -122,6 +122,5 @@ if __name__ == '__main__':
122
122
 
123
123
  tokens = list(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0]) | xfilter_
124
124
 
125
- # tokens = "__Host-next-auth.csrf-token=78920fc4c6bf5aef5c2063e3a4397b1e41074713e35020cf7049156e02d53355%7C2c8e6897101210b68ba31cec5c6232d8ab76a3e070cda7b82ad051680ab93fe0; _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; x-recraft-referral-code=3h7wfOgFGn; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2Fprojects; _clck=uflztg%7C2%7Cfra%7C0%7C1765; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..OMh8sDyFkAVpghZU.iIKkMX3OhmwVyO8CjwCH-8YFQE-J8zE52SImLqu-imuV9q0jNKxBDr9Zo-n2I-TdREv4ffj0FFagny27pL7vjMyp04X2VD_Lh5rv9OMAObho9TsX8AzyLZOu_xbXR1ip98ZSv432BcDq5ppm5ava-ZVqm0Tp0hvJGSWD1yq4S7XjqiIAGeKZfR5Efm1k85fO6CHp-nNiIFVc6f2sw0Y_DcfdAzB4tMxKmJPoa4VHteErM2n41XUA9TvftKK5xVLHDWi0poRXkfB6Tol2xF83jUi2f2Il1BzQ-7q-MsRD-kkxJkEbv2Zcex_HFsaFWN9ohDB_wttuDxBZYCwdjflE-XyLwurtLO4XwbZTRKOR0Jgl6SdF-tBgsKSUrDUdmPGt9oiZv-MzMpTiOYRhTFjTap34rjUOpqlCoPXtiI-YExDCuKs2Dy57wRHF5GHldb3-vuaxKV5tVIq3Uj0Z2uq1SRn2hFhbvcuywlHcyF9HnGur9M6-JBxDaS0W3hrhtHgegIj_kbe6Zl1KBT5knx_IDcVu3KXhiZaLI4kfn_3EQI5zZN9Ay6412fqjP1atd0BpeS5joJl_7O0ni8-0k1I6bRxhnD3uHD5dlQxBJXXHjyisoXTckUXNUKnRbc0x3pL0ObMP7VJ4-mov1KCc_YB3Msh0yfcIa_CXRTJCWH5Q-jkO0pJCVtWjfRegN8G-UpT9k3IDfu6z59O5qFYHM0SjFeee4yJNdAHJRpbuxxNBSBS8aIOey-UN-I2UDme_iGoQnkF9nvOI1zrVHtIhhazxc5YLOyDnVuyhI9ghm2PfYYIxp8sM-Y9VNPjuAKJvg6_q1tSVyiej-qHjV3um1n44AaChgrJ0JXU0gxQV_--xL2n28Tm4sOWb5VUGYAmI32Mvo5bC-kBatusIlkFvnfiQkZT-9fNPAfDiarG-W6T9VsLKhWn2UVBqSJtJgj56uCaw1QilqaKUSYGyUkStWEn0YXsye9vxKSDjm4LJTJdGlkKW0v4qElfwzzV0d9ErjohWN915IzVY-hTRSo8tgt_QHafO3hsyiTpGqalDuT_-BMBShRLozMvGhlQ9jA0QsDueosaNt9OWyk7ZliVSuyt17lI4ApFnaTf3MBjcrnUmk7aejOAQzuy5atNo-HmxxclEYsMuMblcp9kkAsrtx87RHrPYe7DmOorGqJRiKk27S2Nog5ZlBc8RAkq4u4eub9ezwMhFUAYKsv5tnaS6NiggXVbhNiN33uwk2jI7R9ZmJtCnw-b0Nnk2ln4_9CCSa8Ds9VMkiyS6S0QLaPlkmaBzgCYPM7sxTzyuw9BryOlo3akvYJHWegVvxWfN3ap8DdqgXE87zFPE3K3PmJodcv2lVz9FfwUtI81bwRkVpt4VNY7yqGNu33637cufapQsmZJilp5GfHv1FY1lXfrm0LQ19SUjgBHobZ6SrQPUcauypDNFOOAAt9MeVVScsY_5xcyRlPglsA31piiYnDcsBFwOIf-h5GxxYtqf8pDmvUMmXf1zn-97DLpa0D83rKFFA6BralkFCMq0gbBzH4CIeYW35-q1P9Ghq4FIxVxgreueSa5KP96BtFuzIuGEccN478JnsO-DkJWRzTToYTiNUieDjjuhQXFdOFooAHvTrEyvt0HM-ZchJcto4F6xKM3tuJAk2Ng9HCYiIy7rlYzW-gL0v07gI_hwKQ-8dOungh3ggfjooGSayAbsnLeRpAm3P9sTgKrnPp3fyBzzLDkpPj4wBxADpg4sYDyJk3hTa0ec9Kg4ssReU5K77vKg4-YkDAvKvYeQbX69FjXcHf1_XtBQVh2T-teb9G-0kAy6kLVarSJLjp6Mw_Uj3eYV9gbgmNiyBrCcHmUATA6FJkuxVH5W6YVChgEZgIYS1K-PZj-3uchfa6VoSCab1VnreJ6f5aYeY-4ZI5-vDwGJDpd2XkVIrf8zWPFqUkZRpyJHYRwXAGf8MCBFTRXBqzNgPnVjkh_iP9tbmb4_pbgBaTz3Izubx9lWUmso-y0_SPAn1M6x4V2zNHZR6ZVJKAxuNCQrqfIk0Q6-zFHdAHJFPrJSVjKMIDadIpxqQ5zkMeR0O6T204oVwfrtsMnuiAo3dk4ve5qa-MlaFyc0SpfxQkhzCTA3YVXKWo9G5Jp8OYBRmZwDhg4MTvgBeri-hyMsiS025J9vreey3BSyJun7IQJhzDZ6-PVO35qpVB65CNfNSDCO8rI_kAD8xKf893nHBovBumEU_FGC4xz6Yen-7W5TX4yR_2U2CBYX5Iplw5UXHgjXymPbfHjETIh_dyKnuN9fonl8fgi2xk5DDc-oyDaE1qq4g3oBMmXeFA8XpRvcOyXeDyYs5j-KiH0yMlel0xbFluk_UsuiElluUKx5IhnAf04-TX5SCmwubvssyTjs4bWeTw3rjwpvDV9EpLDgPt_WJnHgbbT7e9zRLqQWYnCGro8tnBVsLej-j73L4KdWJQeM8b-Q95l5TfhPrkmbUI-6qyV5tRawBO3ie-c836Bz7YUY1CnopG4qzUfZasJZ8ltrAr7qtwI1c-IJ6CAwDhT_SjhQwyMVUQb7OhvCryf5trtl29kVwsRCeuw8K9uVWmrAKIk5nf3IczDeKNpR0EEnpPMfblkEAaeCSz1KX2fSiURQ2GDUUAOICnhXEhJ9-NcNTHj4ssjU_8RAltnHxTiecwhsLX1qmxi0mrjf-32el6TgQ95FsNDRITKaZ1807lFiQnj3Um9Bqb8ZPxzBBEqJh0WKoD4xT1dqLc1f4HdebodGJva35Nw1Qc9ssNihz2Tziq56J1Zx8vOtz8ibmSJ6Gm3gzWD09h2CQN9Vxwx8kxmF_LECGwgkUsI77029-bayN_t2Mv_s3jeEOAQl-BBNMGHbPPPkcZi5siduzjpphVOAX8wOiqau0MqECstDqh8nemuSvhlomElxmU9mHiRTnUqlAfbO_P1581AUfyOh_InN3ydLnkgrziI58OEWIbHKXXEhRAcCGQrX4nynwOTymiWuzIR0OqhIyi3cLfz3e51uEVmBVVSZfbZuDySiY4yOzA2cMExG1te_NjjhEsvBZ8m3Fjf-PEwBJhrXDQgXlXFp80ERZQ6xVNzt7dVd0GzsQT1-03JaLR6S9tJYXO4QOf9sgXp-R4nvP7mZDuhP-kXbI0rzAmnuPA-eR4joGugTgbH0RWHnZ6z2a8k2kBD_VdjYdbxSZ1vRXtSIpNohuaun4rzXNbRz9kwNNK_Fz-q84fAJ_J1Yb1XHBMrJYQxwVdhRqvSh_jW5zroDFjTFNKwFruMaGa4KESccnTKy8mUH7Cd6S2OCjzDrcl4mQcXBu90FKOH-pYhobFNefJq6LooejPhdN_XBdfm2kQrcTRBYbMk4vekzZxs-wPrlgZkQYSAxKj4i_XTiqztmroaNRYdfFoq4hoArBBsISxRagLukwyL2yvSKnHiqMo9T7whwYF_tXQFGk1T8dQ_9ospLy9EMBMP7tdqw7UX5S051rqADt9q2Rozx7hRuAMHWeAyfRCFgMx0lR3B2txRxxRVWrBNJAqulmG3hJk9px8LpWmlm9CorOkN7cZT6CJKIJdSClkj0VDFiDUjWsZWJLiN_DSRaqcCpgwdkXJKZ4zpUKjH6xQSKzhvbmom9ZkFkNPWO35Vf7e_rLKLCyltHmsTDlgRylqPMkigL6Rds9S07c7fCwcr4d5xWvlV78iKjmg_c4RdxrmGsqeQZl4EmbnmwZfQj3qllIEn7MJ7N5_jE_BO1huH522Ds6hTRFTn_RmA4FtIbqyuvbK1v5MlCoToKiYgBwPI79PzQSEjM4LMMbeUiJx0E5C2Wd3bpTnbc-mfY8uIpFfxnK2_0Mk7rSbm8rqtomgPyqcmAT2mwQS-; __Secure-next-auth.session-token.1=DfJBMjFpUwPYqCIaGMxrX_WtlNau_0B5y61DkoPxCwi6_MziMSz6KUgDB9o4d6xXg5mn-UBR0gXWjPFrIXzP0kdNvCSF9pSGCyiOLmdtKfi3BscGIK70dpfUfKwY972YF6TTb6tXOdLkf3JFyN0cjLd5pcBfSKFAKRt5shH4iNMu6ZwgwZd0guK8IcIddc9KTGxTZlHc6dJ1Rc-QHfBm_DPgYUvf9yKjGSguPuYFqnHwA2T91Ughu9VT2lAuCKjvEX13KOsHB-Vr1i7Ts3TrQtIoS9pMM_NnhdILOp3Od5NGfkJGqAbsfFLYU193V3cK4cib9QisQmKm4hxvlMflKA1IQNlz_isB1vi2JN04AQg.z8GHyaN7ezsgo22MdsiVvQ; _uetsid=84c52090adf211efb65c0dc3b78a1976; _uetvid=a8a766f0975f11ef9b7921e48a0cd258; _ga_ME15C3DGRL=GS1.1.1732844258.46.1.1732845589.0.0.0; _clsk=c52eh1%7C1732845591268%7C3%7C0%7Ce.clarity.ms%2Fcollect; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjI2OTE1YzI1My1jMTJjLTQ5ODYtYjM3Ni0xMTI3Y2ZmMTFlMjglMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJjNDdkY2ZiYi0yOWE5LTQ1Y2EtYWRiZS1hM2ZhYWZiODhkNzQlMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzMyODQ0MjU3NzEzJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczMjg0NTY0OTcyNSUyQyUyMmxhc3RFdmVudElkJTIyJTNBOTA1JTJDJTIycGFnZUNvdW50ZXIlMjIlM0E0JTdE"
126
- #
127
- arun(check_token(tokens))
125
+
126
+ r = arun(check_token(tokens))
@@ -72,7 +72,17 @@ async def get_task(task_id, token):
72
72
  data = response.json()
73
73
  logger.debug(bjson(data))
74
74
  # {'ret': '1015', 'errmsg': 'login error', 'systime': '1734524280', 'logid': '20241218201800AC3267447B287E9E6C46', 'data': None}
75
- item_list = (data.get("data") or {}).get(task_id, {}).get("item_list")
75
+ task_info = (data.get("data") or {}).get(task_id, {})
76
+ item_list = task_info.get("item_list") # "status": 30,
77
+
78
+ status_code = task_info.get("status")
79
+ logger.debug(f"status: {status_code}")
80
+
81
+ """
82
+ "status": 30, # 内容审核
83
+ "status": 50,
84
+ """
85
+
76
86
  image_data = map(lambda x: x.get("image", {}).get("large_images"), item_list)
77
87
 
78
88
  task_data = sum(image_data, []) | xmap_(lambda x: {"url": x.get("image_url")})
@@ -80,8 +90,9 @@ async def get_task(task_id, token):
80
90
  return TaskResponse(
81
91
  task_id=task_id,
82
92
  data=task_data,
83
- message=data.get("errmsg"),
84
- status="success" if task_data else None,
93
+ message=data.get("errmsg") if status_code!=30 else "触发内容审核451",
94
+ status="success" if item_list else 'processing',
95
+ code=status_code,
85
96
  )
86
97
 
87
98
 
@@ -117,4 +128,13 @@ if __name__ == '__main__':
117
128
 
118
129
  # arun(get_task(task.task_id, task.system_fingerprint))
119
130
 
120
- arun(generate(ImageRequest(prompt="做一个圣诞节的海报")))
131
+ task_id = "10184295086338"
132
+ system_fingerprint = "eb4d120829cfd3ee957943f63d6152ed"
133
+
134
+ t1 = ("10184295086338", "eb4d120829cfd3ee957943f63d6152ed")
135
+ t2 = ("10184877310722", "dcf7bbc31faed9740b0bf748cd4d2c74")
136
+ t3 = ("10186352959490", "eb4d120829cfd3ee957943f63d6152ed")
137
+
138
+ arun(get_task(*t3))
139
+
140
+ # arun(generate(ImageRequest(prompt="做一个圣诞节的海报")))
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2024.12.26.22.14.01
1
+ 2024.12.31.17.51.53
@@ -31,6 +31,11 @@
31
31
 
32
32
  </details>
33
33
 
34
+ ## 2024-12-27
35
+ - deepseek-v3
36
+ - deepseek-r1:deepseek-v3的思考模型
37
+ - deepseek-search:deepseek-v3的联网模型
38
+
34
39
  ## 2024-12-24
35
40
  - 上线新模型
36
41
  - doubao-pro-256k:相比Doubao-pro-128k/240628,长文任务效果显著提升10%以上,要点提取、字数遵循、多轮对话上文记忆等能力大幅提升
meutils/init/evn.py CHANGED
@@ -35,7 +35,7 @@ os.environ['PROMPT_TEMPLATE'] = """
35
35
  # 如果无法从中得到答案,请回答“根据已知信息无法回答该问题”或“没有提供足够的信息”。请使用中文回答,不允许添加编造内容。
36
36
  # """
37
37
 
38
- # MODELSCOPE_CACHE
38
+ # modelscope_cache
39
39
  # PPNLP
40
40
  if __name__ == '__main__':
41
41
  from pprint import pprint
@@ -12,6 +12,7 @@ import mimetypes
12
12
  from meutils.pipe import *
13
13
  from meutils.io.files_utils import to_bytes
14
14
  from meutils.llm.openai_utils import to_openai_params
15
+ from meutils.str_utils.regular_expression import parse_url
15
16
 
16
17
  from openai import OpenAI, AsyncOpenAI
17
18
  from meutils.schemas.openai_types import chat_completion, chat_completion_chunk, ChatCompletionRequest, CompletionUsage
@@ -66,6 +67,22 @@ class Completions(object):
66
67
 
67
68
  request.messages = request.system_messages + [{'role': 'user', 'content': request.last_content}]
68
69
 
70
+ elif isinstance(request.last_content, str) and (urls := parse_url(request.last_content)):
71
+ logger.debug(urls)
72
+
73
+ url = urls[-1]
74
+ request.last_content = request.last_content.replace(url, '')
75
+
76
+ files = await asyncio.gather(*map(self.file_extract, urls))
77
+
78
+ for file_content in files:
79
+ request.system_messages.append({
80
+ "role": "system",
81
+ "content": file_content,
82
+ })
83
+
84
+ request.messages = request.system_messages + [{'role': 'user', 'content': request.last_content}]
85
+
69
86
  logger.debug(request)
70
87
 
71
88
  data = to_openai_params(request)
@@ -78,30 +95,43 @@ if __name__ == '__main__':
78
95
 
79
96
  request = ChatCompletionRequest(
80
97
  # model="qwen-turbo-2024-11-01",
81
- model="claude-3-5-sonnet-20241022",
98
+ # model="claude-3-5-sonnet-20241022",
99
+ model="gpt-4o-mini",
100
+
82
101
  messages=[
83
102
  {
84
103
  'role': 'system',
85
104
  'content': '你是一个文件问答助手'
86
105
  },
106
+ # {
107
+ # 'role': 'user',
108
+ # # 'content': {
109
+ # # "type": "file_url",
110
+ # # "file_url": {"url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf", "detai": "auto"}
111
+ # # },
112
+ # 'content': [
113
+ # {
114
+ # "type": "text",
115
+ # "text": "这个文件讲了什么?"
116
+ # },
117
+ # # 多轮的时候要剔除
118
+ # {
119
+ # "type": "file_url",
120
+ # "file_url": {"url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf", "detai": "auto"}
121
+ # }
122
+ # ]
123
+ # },
124
+
87
125
  {
88
126
  'role': 'user',
89
127
  # 'content': {
90
128
  # "type": "file_url",
91
129
  # "file_url": {"url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf", "detai": "auto"}
92
130
  # },
93
- 'content': [
94
- {
95
- "type": "text",
96
- "text": "这个文件讲了什么?"
97
- },
98
- # 多轮的时候要剔除
99
- {
100
- "type": "file_url",
101
- "file_url": {"url": "https://oss.ffire.cc/files/招标文件备案表(第二次).pdf", "detai": "auto"}
102
- }
103
- ]
131
+ '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 这个文件讲了什么?",
132
+
104
133
  },
134
+
105
135
  # {'role': 'assistant', 'content': "好的"},
106
136
  # {
107
137
  # 'role': 'user',
@@ -266,7 +266,7 @@ if __name__ == '__main__':
266
266
  with timer():
267
267
  try:
268
268
  async with ppu_flow(api_key="sk-OYK4YxtTlWauT2TdGR5FTAJpkRmSnDwPly4cve0cAvMcrBkZ", post="api-oss",
269
- n=10000):
269
+ n=100):
270
270
  logger.debug("消费了哦")
271
271
 
272
272
  except Exception as e:
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : ark
5
+ # @Time : 2024/12/31 13:44
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import json
11
+ import os
12
+
13
+ from meutils.pipe import *
14
+ import volcenginesdkcore
15
+ from volcenginesdkcore.signv4 import SignerV4
16
+ import volcenginesdkark
17
+
18
+ # sign(path, method, headers, body, query, ak, sk, region, service)
19
+
20
+ headers = {}
21
+ payload = {
22
+ "Prompt": "关于星空的歌",
23
+ "Genre": "R&B/Soul",
24
+ "Mood": "Dynamic/Energetic",
25
+ "Gender": "Male",
26
+ "ModelVersion": "v4.0"
27
+ }
28
+ params = {"Action": "GenLyrics", "Version": "2024-08-12"}
29
+ SignerV4.sign(
30
+ path="/",
31
+ method="POST",
32
+ query=params,
33
+ body=json.dumps(payload),
34
+ headers=headers,
35
+ ak=os.getenv("ARK_ACCESS_KEY"),
36
+ sk=os.getenv("ARK_SECRET_ACCESS_KEY"),
37
+ region="cn-beijing",
38
+ service="imagination"
39
+ )
40
+
41
+ print(headers)
42
+
43
+ s = ''
44
+ for k, v in headers.items():
45
+ s += f"{k}:{v}\n"
46
+
47
+ print(s)
@@ -33,6 +33,7 @@ payload = {
33
33
  # Your secret key
34
34
  secret = ""
35
35
 
36
+
36
37
  # Create the JWT
37
38
  token = jwt.encode(payload, secret, algorithm="HS256", headers=header)
38
39
 
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : volc
5
+ # @Time : 2024/12/31 13:20
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+
12
+ import hashlib
13
+ import hmac
14
+ import os
15
+ from urllib.parse import quote
16
+
17
+ from meutils.pipe import *
18
+
19
+ # 以下参数视服务不同而不同,一个服务内通常是一致的
20
+ Service = "iam"
21
+ Version = "2018-01-01"
22
+ Region = "cn-beijing"
23
+ Host = "iam.volcengineapi.com"
24
+ ContentType = "application/x-www-form-urlencoded"
25
+
26
+ # 请求的凭证,从IAM或者STS服务中获取
27
+ AK = os.getenv("ARK_ACCESS_KEY")
28
+ SK = os.getenv("ARK_SECRET_ACCESS_KEY")
29
+ # 当使用临时凭证时,需要使用到SessionToken传入Header,并计算进SignedHeader中,请自行在header参数中添加X-Security-Token头
30
+ # SessionToken = ""
31
+
32
+
33
+ def norm_query(params):
34
+ query = ""
35
+ for key in sorted(params.keys()):
36
+ if type(params[key]) == list:
37
+ for k in params[key]:
38
+ query = (
39
+ query + quote(key, safe="-_.~") + "=" + quote(k, safe="-_.~") + "&"
40
+ )
41
+ else:
42
+ query = (query + quote(key, safe="-_.~") + "=" + quote(params[key], safe="-_.~") + "&")
43
+ query = query[:-1]
44
+ return query.replace("+", "%20")
45
+
46
+
47
+ # 第一步:准备辅助函数。
48
+ # sha256 非对称加密
49
+ def hmac_sha256(key: bytes, content: str):
50
+ return hmac.new(key, content.encode("utf-8"), hashlib.sha256).digest()
51
+
52
+
53
+ # sha256 hash算法
54
+ def hash_sha256(content: str):
55
+ return hashlib.sha256(content.encode("utf-8")).hexdigest()
56
+
57
+
58
+ # 第二步:签名请求函数
59
+ def request(method, date, query, header, ak, sk, action, body):
60
+ # 第三步:创建身份证明。其中的 Service 和 Region 字段是固定的。ak 和 sk 分别代表
61
+ # AccessKeyID 和 SecretAccessKey。同时需要初始化签名结构体。一些签名计算时需要的属性也在这里处理。
62
+ # 初始化身份证明结构体
63
+ credential = {
64
+ "access_key_id": ak,
65
+ "secret_access_key": sk,
66
+ "service": Service,
67
+ "region": Region,
68
+ }
69
+ # 初始化签名结构体
70
+ request_param = {
71
+ "body": body,
72
+ "host": Host,
73
+ "path": "/",
74
+ "method": method,
75
+ "content_type": ContentType,
76
+ "date": date,
77
+ "query": {"Action": action, "Version": Version, **query},
78
+ }
79
+ if body is None:
80
+ request_param["body"] = ""
81
+ # 第四步:接下来开始计算签名。在计算签名前,先准备好用于接收签算结果的 signResult 变量,并设置一些参数。
82
+ # 初始化签名结果的结构体
83
+ x_date = request_param["date"].strftime("%Y%m%dT%H%M%SZ")
84
+ short_x_date = x_date[:8]
85
+ x_content_sha256 = hash_sha256(request_param["body"])
86
+ sign_result = {
87
+ "Host": request_param["host"],
88
+ "X-Content-Sha256": x_content_sha256,
89
+ "X-Date": x_date,
90
+ "Content-Type": request_param["content_type"],
91
+ }
92
+ # 第五步:计算 Signature 签名。
93
+ signed_headers_str = ";".join(
94
+ ["content-type", "host", "x-content-sha256", "x-date"]
95
+ )
96
+ # signed_headers_str = signed_headers_str + ";x-security-token"
97
+ canonical_request_str = "\n".join(
98
+ [request_param["method"].upper(),
99
+ request_param["path"],
100
+ norm_query(request_param["query"]),
101
+ "\n".join(
102
+ [
103
+ "content-type:" + request_param["content_type"],
104
+ "host:" + request_param["host"],
105
+ "x-content-sha256:" + x_content_sha256,
106
+ "x-date:" + x_date,
107
+ ]
108
+ ),
109
+ "",
110
+ signed_headers_str,
111
+ x_content_sha256,
112
+ ]
113
+ )
114
+
115
+ # 打印正规化的请求用于调试比对
116
+ print(canonical_request_str)
117
+ hashed_canonical_request = hash_sha256(canonical_request_str)
118
+
119
+ # 打印hash值用于调试比对
120
+ print(hashed_canonical_request)
121
+ credential_scope = "/".join([short_x_date, credential["region"], credential["service"], "request"])
122
+ string_to_sign = "\n".join(["HMAC-SHA256", x_date, credential_scope, hashed_canonical_request])
123
+
124
+ # 打印最终计算的签名字符串用于调试比对
125
+ print(string_to_sign)
126
+ k_date = hmac_sha256(credential["secret_access_key"].encode("utf-8"), short_x_date)
127
+ k_region = hmac_sha256(k_date, credential["region"])
128
+ k_service = hmac_sha256(k_region, credential["service"])
129
+ k_signing = hmac_sha256(k_service, "request")
130
+ signature = hmac_sha256(k_signing, string_to_sign).hex()
131
+
132
+ sign_result["Authorization"] = "HMAC-SHA256 Credential={}, SignedHeaders={}, Signature={}".format(
133
+ credential["access_key_id"] + "/" + credential_scope,
134
+ signed_headers_str,
135
+ signature,
136
+ )
137
+ header = {**header, **sign_result}
138
+ # header = {**header, **{"X-Security-Token": SessionToken}}
139
+ # 第六步:将 Signature 签名写入 HTTP Header 中,并发送 HTTP 请求。
140
+ r = requests.request(method=method,
141
+ url="https://{}{}".format(request_param["host"], request_param["path"]),
142
+ headers=header,
143
+ params=request_param["query"],
144
+ data=request_param["body"],
145
+ )
146
+ return r.json()
147
+
148
+
149
+ if __name__ == "__main__":
150
+ # response_body = request("Get", datetime.datetime.utcnow(), {}, {}, AK, SK, "ListUsers", None)
151
+ # print(response_body)
152
+
153
+ now = datetime.datetime.utcnow()
154
+
155
+ # Body的格式需要配合Content-Type,API使用的类型请阅读具体的官方文档,如:json格式需要json.dumps(obj)
156
+ # response_body = request("GET", now, {"Limit": "2"}, {}, AK, SK, "ListUsers", None)
157
+ # print(response_body)
158
+
159
+ response_body = request("POST", now, {"Limit": "10"}, {}, AK, SK, "ListUsers", "UnUseParam=ASDF")
160
+ print(response_body)
@@ -82,6 +82,8 @@ class ImageRequest(BaseModel): # openai
82
82
  self.size = self.size if 'x' in self.size else '512x512'
83
83
 
84
84
  class Config:
85
+ extra = "allow"
86
+
85
87
  # frozen = True
86
88
  # populate_by_name = True
87
89
 
@@ -294,7 +294,7 @@ MODEL_RATIO = {
294
294
  "glm-4-0520": 2.5,
295
295
  "glm-4-airx": 10,
296
296
  "glm-4v": 2.5,
297
- "glm-4v-plus": 2.5, # 2.5
297
+ "glm-4v-plus": 5,
298
298
  "glm-4v-flash": 0.1,
299
299
  "glm-4-plus": 25,
300
300
 
@@ -373,18 +373,19 @@ MODEL_RATIO = {
373
373
 
374
374
  # deepseek
375
375
  "deepseek-chat": 0.5,
376
- "deepseek-coder": 0.5,
377
- 'deepseek-coder-v2-instruct': 0.5,
378
- 'deepseek-v2-chat': 0.5,
379
- 'deepseek-llm-67b-chat': 0.5,
380
376
  "deepseek-ai/deepseek-vl2": 0.5,
381
377
 
378
+ "deepseek-v3": 0.5,
379
+ 'deepseek-r1': 0.5,
380
+ 'deepseek-think': 0.5,
381
+ "deepseek-search": 0.5,
382
+
382
383
  # 豆包
383
384
  "doubao-lite-128k": 0.4,
384
385
  "doubao-lite-32k": 0.15,
385
386
  "doubao-lite-4k": 0.15,
386
387
 
387
- "doubao-pro-256k": 0.01,
388
+ "doubao-pro-256k": 5,
388
389
 
389
390
  "doubao-pro-128k": 2.5,
390
391
  "doubao-pro-32k": 0.4,
@@ -651,6 +652,11 @@ COMPLETION_RATIO = {
651
652
  "doubao-vision-lite-32k": 3,
652
653
  "doubao-vision-pro-32k": 3,
653
654
 
655
+ "deepseek-v3": 1,
656
+ 'deepseek-r1': 1,
657
+ 'deepseek-think': 1,
658
+ "deepseek-search": 1,
659
+
654
660
  }
655
661
 
656
662
  REDIRECT_MODEL = {
@@ -716,7 +722,7 @@ REDIRECT_MODEL = {
716
722
  "qwen2.5-coder-7b-instruct": "Qwen/Qwen2.5-Coder-7B-Instruct",
717
723
  "qwen2.5-coder-32b-instruct": "Qwen/Qwen2.5-Coder-32B-Instruct",
718
724
 
719
- "qwen-turbo": "Qwen/Qwen2.5-7B-Instruct",
725
+ "qwen-turbo": "Qwen/Qwen2.5-7B-Instruct", # 兜底
720
726
  'qwen2-1.5b-instruct': 'Qwen/Qwen2-1.5B-Instruct',
721
727
  'qwen2-7b-instruct': 'Qwen/Qwen2-7B-Instruct',
722
728
  'qwen2-72b-instruct': 'Qwen/Qwen2-72B-Instruct',
@@ -312,7 +312,6 @@ class STTRequest(BaseModel): # ASR
312
312
  if __name__ == '__main__':
313
313
  pass
314
314
 
315
-
316
315
  # print(ChatCompletion(choices=[Choice(message=ChatCompletionMessage(content="ChatCompletion"))]))
317
316
  # print(ChatCompletionChunk(choices=[ChunkChoice(delta=ChoiceDelta(content="ChatCompletionChunk"))]))
318
317
  #
@@ -348,8 +347,20 @@ if __name__ == '__main__':
348
347
  # print(req1.model_dump()) # 输出: {'guidance_scale': 5.0}
349
348
  # print(req1.model_dump(by_alias=True)) # 输出: {'guidance': 5.0}
350
349
 
351
- class A(BaseModel):
352
- n: int = Field(1, ge=1, le=0)
353
-
354
-
355
- print(A(n=11))
350
+ # class A(BaseModel):
351
+ # n: int = Field(1, ge=1, le=0)
352
+ #
353
+ #
354
+ # print(A(n=11))
355
+ messages = [
356
+ {
357
+ "role": "user",
358
+ "content": [{'role': 'user', 'content': [{"type": "image_url", "image_url": "这是个图片链接"}]}]
359
+ },
360
+
361
+ # {'role': 'user', 'content': [{"type": "image_url", "image_url": {"url": "这是个图片链接"}}]},
362
+ ]
363
+
364
+ r = ChatCompletionRequest(model="gpt-3.5-turbo", messages=messages)
365
+ r.messages[-1]['content'] = [{"type": "image_url", "image_url": {"url": r.urls[-1]}}]
366
+ print(r)