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.
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/METADATA +26 -26
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/RECORD +24 -21
- examples/_openaisdk/openai_chatfire.py +4 -1
- examples/_openaisdk/openai_zhipu.py +2 -0
- examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +45 -0
- meutils/_utils.py +15 -1
- meutils/apis/images/recraft.py +2 -3
- meutils/apis/jimeng/images.py +24 -4
- meutils/data/VERSION +1 -1
- meutils/data/oneapi/NOTICE.md +5 -0
- meutils/init/evn.py +1 -1
- meutils/llm/completions/rag/fire.py +42 -12
- meutils/llm/openai_utils/common.py +1 -1
- meutils/request_utils/ark.py +47 -0
- meutils/{jwt_utils → request_utils/jwt_utils}/common.py +1 -0
- meutils/request_utils/volc.py +160 -0
- meutils/schemas/image_types.py +2 -0
- meutils/schemas/oneapi/common.py +13 -7
- meutils/schemas/openai_types.py +17 -6
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/LICENSE +0 -0
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/WHEEL +0 -0
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/entry_points.txt +0 -0
- {MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/top_level.txt +0 -0
- /meutils/{jwt_utils → request_utils/jwt_utils}/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: MeUtils
|
3
|
-
Version: 2024.12.
|
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:
|
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:
|
73
|
-
Requires-Dist:
|
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:
|
76
|
-
Requires-Dist:
|
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:
|
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:
|
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:
|
98
|
-
Requires-Dist:
|
99
|
-
Requires-Dist:
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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.
|
838
|
-
MeUtils-2024.12.
|
839
|
-
MeUtils-2024.12.
|
840
|
-
MeUtils-2024.12.
|
841
|
-
MeUtils-2024.12.
|
842
|
-
MeUtils-2024.12.
|
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):
|
@@ -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
|
-
|
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
|
|
meutils/apis/images/recraft.py
CHANGED
@@ -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
|
-
|
126
|
-
|
127
|
-
arun(check_token(tokens))
|
125
|
+
|
126
|
+
r = arun(check_token(tokens))
|
meutils/apis/jimeng/images.py
CHANGED
@@ -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
|
-
|
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
|
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
|
-
|
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.
|
1
|
+
2024.12.31.17.51.53
|
meutils/data/oneapi/NOTICE.md
CHANGED
meutils/init/evn.py
CHANGED
@@ -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',
|
@@ -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)
|
@@ -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)
|
meutils/schemas/image_types.py
CHANGED
meutils/schemas/oneapi/common.py
CHANGED
@@ -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":
|
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":
|
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',
|
meutils/schemas/openai_types.py
CHANGED
@@ -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
|
-
|
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)
|
File without changes
|
File without changes
|
{MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/entry_points.txt
RENAMED
File without changes
|
{MeUtils-2024.12.26.22.14.1.dist-info → MeUtils-2024.12.31.17.51.53.dist-info}/top_level.txt
RENAMED
File without changes
|
File without changes
|