MeUtils 2024.12.19.11.28.48__py3-none-any.whl → 2024.12.23.15.45.1__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.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/METADATA +26 -26
- {MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/RECORD +23 -19
- examples/_openaisdk/4v.py +6 -3
- examples/_openaisdk/openai_baichuan.py +6 -3
- examples/_openaisdk/openai_embeddings.py +1 -4
- meutils/apis/hailuoai/videos.py +1 -1
- meutils/apis/jimeng/common.py +2 -2
- meutils/apis/jimeng/doubao.py +68 -0
- meutils/apis/jimeng/{utils.py → doubao_utils.py} +26 -28
- meutils/apis/jimeng/files.py +13 -6
- meutils/apis/utils.py +47 -0
- meutils/apis/videos/__init__.py +11 -0
- meutils/apis/videos/sora.py +16 -0
- meutils/apis/vidu/vidu_video.py +1 -1
- meutils/data/VERSION +1 -1
- meutils/data/oneapi/NOTICE.md +26 -8
- meutils/schemas/oneapi/common.py +30 -31
- meutils/schemas/request_types.py +20 -0
- meutils/schemas/vidu_types.py +43 -6
- meutils/apis/jimeng/sig.py +0 -92
- {MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/LICENSE +0 -0
- {MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/WHEEL +0 -0
- {MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/entry_points.txt +0 -0
- {MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: MeUtils
|
3
|
-
Version: 2024.12.
|
3
|
+
Version: 2024.12.23.15.45.1
|
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:
|
67
|
-
Requires-Dist:
|
68
|
-
Requires-Dist:
|
66
|
+
Requires-Dist: jieba ; extra == 'all'
|
67
|
+
Requires-Dist: pymilvus ; extra == 'all'
|
68
|
+
Requires-Dist: pretty-errors ; extra == 'all'
|
69
|
+
Requires-Dist: asyncmy ; extra == 'all'
|
69
70
|
Requires-Dist: pyarrow ; extra == 'all'
|
70
|
-
Requires-Dist:
|
71
|
+
Requires-Dist: simplejson ; extra == 'all'
|
72
|
+
Requires-Dist: thriftpy2 ; extra == 'all'
|
73
|
+
Requires-Dist: dataframe-image ; extra == 'all'
|
71
74
|
Requires-Dist: openai ; extra == 'all'
|
72
|
-
Requires-Dist:
|
75
|
+
Requires-Dist: redis-py-cluster ; extra == 'all'
|
73
76
|
Requires-Dist: fastapi ; extra == 'all'
|
77
|
+
Requires-Dist: streamlit ; extra == 'all'
|
78
|
+
Requires-Dist: gunicorn ; extra == 'all'
|
79
|
+
Requires-Dist: iteration-utilities ; extra == 'all'
|
80
|
+
Requires-Dist: reportlab ; extra == 'all'
|
74
81
|
Requires-Dist: jmespath ; extra == 'all'
|
82
|
+
Requires-Dist: thefuck ; extra == 'all'
|
83
|
+
Requires-Dist: seaborn ; extra == 'all'
|
75
84
|
Requires-Dist: pymysql ; extra == 'all'
|
85
|
+
Requires-Dist: sqlalchemy ; extra == 'all'
|
86
|
+
Requires-Dist: uvicorn ; extra == 'all'
|
76
87
|
Requires-Dist: sse-starlette ; extra == 'all'
|
77
|
-
Requires-Dist: filetype ; extra == 'all'
|
78
|
-
Requires-Dist: pandas-summary ; extra == 'all'
|
79
|
-
Requires-Dist: seaborn ; extra == 'all'
|
80
|
-
Requires-Dist: cachetools ; extra == 'all'
|
81
|
-
Requires-Dist: redis-py-cluster ; extra == 'all'
|
82
|
-
Requires-Dist: pymilvus ; extra == 'all'
|
83
|
-
Requires-Dist: pymongo ; extra == 'all'
|
84
|
-
Requires-Dist: gunicorn ; extra == 'all'
|
85
|
-
Requires-Dist: jieba ; extra == 'all'
|
86
|
-
Requires-Dist: pymupd ; extra == 'all'
|
87
|
-
Requires-Dist: simplejson ; extra == 'all'
|
88
|
-
Requires-Dist: thriftpy2 ; extra == 'all'
|
89
|
-
Requires-Dist: pretty-errors ; extra == 'all'
|
90
|
-
Requires-Dist: missingno ; extra == 'all'
|
91
88
|
Requires-Dist: fastapi[all] ; extra == 'all'
|
92
|
-
Requires-Dist:
|
93
|
-
Requires-Dist:
|
94
|
-
Requires-Dist: asyncmy ; extra == 'all'
|
89
|
+
Requires-Dist: pymongo ; extra == 'all'
|
90
|
+
Requires-Dist: polars ; extra == 'all'
|
95
91
|
Requires-Dist: faiss-cpu ; extra == 'all'
|
96
|
-
Requires-Dist: iteration-utilities ; extra == 'all'
|
97
92
|
Requires-Dist: schedule ; extra == 'all'
|
98
93
|
Requires-Dist: jinja2 ; extra == 'all'
|
94
|
+
Requires-Dist: langchain ; extra == 'all'
|
95
|
+
Requires-Dist: missingno ; extra == 'all'
|
96
|
+
Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
|
97
|
+
Requires-Dist: cachetools ; extra == 'all'
|
98
|
+
Requires-Dist: pymupd ; extra == 'all'
|
99
99
|
Requires-Dist: geopy ; extra == 'all'
|
100
|
-
Requires-Dist:
|
101
|
-
Requires-Dist:
|
100
|
+
Requires-Dist: filetype ; extra == 'all'
|
101
|
+
Requires-Dist: pandas-summary ; extra == 'all'
|
102
102
|
Provides-Extra: ann
|
103
103
|
Requires-Dist: pymilvus ; extra == 'ann'
|
104
104
|
Requires-Dist: faiss-cpu ; extra == 'ann'
|
@@ -69,7 +69,7 @@ examples/Time-Extractor/TimeUnit.py,sha256=yx-SS9sxSjSUGiu1H8eTbP4vqAHrNyQcddioM
|
|
69
69
|
examples/Time-Extractor/__init__.py,sha256=hjNi8tWPOBTke6GHlxpsOrufCRdAHmYs2yBquql9X7c,156
|
70
70
|
examples/Time-Extractor/setup.py,sha256=ENYhj1_uJ7z_F3jrz8FR8w5u2SEXrZpl5GXEELUymLk,811
|
71
71
|
examples/Time-Extractor/resource/__init__.py,sha256=0HHkZVghckIg5LkGMziooZ8TUqfSQFA6j62BN9KyFp0,91
|
72
|
-
examples/_openaisdk/4v.py,sha256=
|
72
|
+
examples/_openaisdk/4v.py,sha256=gqHVIdvh8uYkggLw8ng9PStgOIzC665NOp9Dr3j8Kgo,3422
|
73
73
|
examples/_openaisdk/__init__.py,sha256=5TNibGR-ETncXVWoevqYJ0m2yo1GOxRx3hSu2qWAQNo,271
|
74
74
|
examples/_openaisdk/baichuan.py,sha256=xmNFc64T02r9wE0VSOG0B21wJJmlrecKVVCelhs2Dt4,890
|
75
75
|
examples/_openaisdk/bpo.py,sha256=7Jw16TiKFEQvYbt4g-h7QimLBw7xY49w1MthT5OwcTM,5267
|
@@ -89,13 +89,13 @@ examples/_openaisdk/kimi_qa.py,sha256=dNBIe01vK7p-8cFnbgVXJ5H3xPSW32-cc0rwZx3K_1
|
|
89
89
|
examples/_openaisdk/minimax.py,sha256=zOshBkL1bHgRlj4z6k2FQRScNTr7ysZkfh2-OaAynkU,2116
|
90
90
|
examples/_openaisdk/open_router.py,sha256=Z4i_FJIc773JnIdYA3Hhuy1Dq5-DIOIrmkWwbp82hJE,1460
|
91
91
|
examples/_openaisdk/openai_audio.py,sha256=ZyYslH9RfdJBpNUpjKn_5x0d94_H291Qt31u_6weISc,484
|
92
|
-
examples/_openaisdk/openai_baichuan.py,sha256=
|
92
|
+
examples/_openaisdk/openai_baichuan.py,sha256=4_Gz8FeRrW5Zwnh-KFmaLOXr6sn3AxU47Qd2j8VDiQU,1527
|
93
93
|
examples/_openaisdk/openai_cache.py,sha256=89GbJ1QlqQbVxlUeuFgEbwDYHOkum7BK0zB-CqmDAZU,726
|
94
94
|
examples/_openaisdk/openai_chatfire.py,sha256=InT65qjrWflYnXW4SaZJ4lnUENta4ftcmqxJso-SnyI,17110
|
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
|
98
|
-
examples/_openaisdk/openai_embeddings.py,sha256=
|
98
|
+
examples/_openaisdk/openai_embeddings.py,sha256=cBF0bK_saOadjietR1uZ3TrlhO30H4CuYdEEC1bwV2Q,866
|
99
99
|
examples/_openaisdk/openai_files.py,sha256=gfUbKGZg5P7c3kSMfwalIThi_SEs8O-JTqx49bYFtyM,1505
|
100
100
|
examples/_openaisdk/openai_god.py,sha256=O8fbhyxiIlVR7pTvBTXgQ2QTwfcZ2MkEIyDe_jp797A,1056
|
101
101
|
examples/_openaisdk/openai_groq.py,sha256=_5Ue1yEx0Gp6theFioB_D8kepR0UlqMU96PVGH-LkVY,7363
|
@@ -308,6 +308,7 @@ meutils/apis/niutrans.py,sha256=weWjn-tUTEaAUe5RGbzcjQqPkJxGDrPwMB6CnaiZSsg,1682
|
|
308
308
|
meutils/apis/search_music.py,sha256=HBLtdterztrccnLAPZrWBlrYSx4WCRflCqz-V30fOA8,972
|
309
309
|
meutils/apis/textin.py,sha256=vkl3VI3ox-m-0UA-DBTOCZURAlD9lA7nA-057gJLMoc,4880
|
310
310
|
meutils/apis/ts.py,sha256=Q13EOS9Q-Y2-KwOG_cFMVmGj9RUmDtxk5A3E27dxbN0,1511
|
311
|
+
meutils/apis/utils.py,sha256=60kNe50UthghRm2ReJtL1ELS5iZ5-bqWjNwFHFN7B0M,1261
|
311
312
|
meutils/apis/web_search.py,sha256=6gS3leIB2iyeLtqhB0IbpL_mKzDgArRTqnR7odTWT3E,1035
|
312
313
|
meutils/apis/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
313
314
|
meutils/apis/audio/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
|
@@ -327,7 +328,7 @@ meutils/apis/hailuoai/demo.py,sha256=WTnDFL2HgVpAjcn5BljLrbf2y2aATkvvNy75zoEIQkc
|
|
327
328
|
meutils/apis/hailuoai/hasha_new.py,sha256=1sD3fxmxYrEufmPaJZGAkYJoHKO85hfLXemnY-xYIO8,9101
|
328
329
|
meutils/apis/hailuoai/music.py,sha256=S_oi-ZDbocTfbRgREdXtGx50xzUc1PCZGuxmr917E7M,265
|
329
330
|
meutils/apis/hailuoai/upload.py,sha256=22S6W6hGQhUquVKqh7QCkXb6KHDl3iMKKi6Z0AJdFEI,6501
|
330
|
-
meutils/apis/hailuoai/videos.py,sha256=
|
331
|
+
meutils/apis/hailuoai/videos.py,sha256=rahr8dBCxV9ueY4n1OhEHU60MlpIGg_Omrsv4JBmj24,19334
|
331
332
|
meutils/apis/hailuoai/yy.py,sha256=gJvr7VDa0YPEUkZuETdmCFWWheylDPoMUg8gbS_SVw8,8937
|
332
333
|
meutils/apis/hf/__init__.py,sha256=ZZoRl8yNYekoMhE__67XXBKNSYJaLgjtaa0netjJKUU,271
|
333
334
|
meutils/apis/hf/got_ocr.py,sha256=pZURFpryDh_Ak6PNiARztOzYgkjVrfScJ5-0XzMBrzI,1776
|
@@ -361,11 +362,11 @@ meutils/apis/jiema/24mail.py,sha256=GUszRtoDe3T9q-X4embwT5YhcjgQ3XnkTJMKX93sCF4,
|
|
361
362
|
meutils/apis/jiema/__init__.py,sha256=YBybggoDRYCNYcwJOypxR7MzfTjIhqO7BkGlTt7NDo4,271
|
362
363
|
meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
|
363
364
|
meutils/apis/jimeng/__init__.py,sha256=a8CE_cOl9jqal0hycwaLm4Mnga8jmZlz9nCze_9bBqA,272
|
364
|
-
meutils/apis/jimeng/common.py,sha256
|
365
|
-
meutils/apis/jimeng/
|
365
|
+
meutils/apis/jimeng/common.py,sha256=CgBSShvSCYMy9zH3r449Plqu2hTFLzAUyz-ytc1esW4,8672
|
366
|
+
meutils/apis/jimeng/doubao.py,sha256=vSEaTQHQdyhpHwCoq6CIikDZkUC9ncyTgKxGUC8cMCI,4345
|
367
|
+
meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
|
368
|
+
meutils/apis/jimeng/files.py,sha256=aFKg5iesJNVbXclaMR0yDpnKzjqW1yZxkyp9qrGTybo,5365
|
366
369
|
meutils/apis/jimeng/images.py,sha256=6oSsXOTDaZ6qkZpWM2SjzE3mX4_Z_RQEJS4bEaDOWsU,3480
|
367
|
-
meutils/apis/jimeng/sig.py,sha256=jisL1jCqWEd3PugP4KMZWVQ32OiwwEPFs1jRvxgZmfU,4068
|
368
|
-
meutils/apis/jimeng/utils.py,sha256=Ybi2DF1RSXxpxeH387iQGahJhXv5MhYUDtCpPuznP8w,6134
|
369
370
|
meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
|
370
371
|
meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
|
371
372
|
meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
|
@@ -436,8 +437,10 @@ meutils/apis/tripo3d/images.py,sha256=vb0Y3d6Zcp_NUrwC__cchoqulnDXKHzfOKQkZ3jrow
|
|
436
437
|
meutils/apis/uptime_kuma/__init__.py,sha256=w_fYxFgQDOXOfCPe0JMsgSl6zrGuYx9w4thySfAsbAE,272
|
437
438
|
meutils/apis/uptime_kuma/common.py,sha256=ZJFSEeoxD_Eb5eFL9K2xxajVJgTnTwgm7rm4fc0nv1I,1597
|
438
439
|
meutils/apis/uptime_kuma/国产分组.py,sha256=OIiUUFfjWEEJHg5fr8Vf5xSBWkbXboQ4f3jUiaTtQSI,1681
|
440
|
+
meutils/apis/videos/__init__.py,sha256=OCykr_XRIOH18Xh5hfBq5yMxbk8e9Myk4KuAtrtgAWw,272
|
441
|
+
meutils/apis/videos/sora.py,sha256=G3wGlvTYl4YfG20L2HXPhmhZ4HwrlIFSU-KYM-TdALg,295
|
439
442
|
meutils/apis/vidu/__init__.py,sha256=8nQN-RiZGJlZaZGVFbtHgK57_Ml5g_vFCiOImWwBm0I,242
|
440
|
-
meutils/apis/vidu/vidu_video.py,sha256=
|
443
|
+
meutils/apis/vidu/vidu_video.py,sha256=SBzy4E45rk6H89aEEVOoLbrCLbP5TQyXBablHao-DfY,17420
|
441
444
|
meutils/apis/vidu/x.py,sha256=UD1QlAQTtLgFiDfWYVxM-1ppfrX_LaVYASk2yNviMuk,322
|
442
445
|
meutils/apis/voice_clone/__init__.py,sha256=y7Rpn90LocHhA0ywrDP_fT4QAK7sr4JsIX5wLJgkNHA,241
|
443
446
|
meutils/apis/voice_clone/fish.py,sha256=6m8zcS2KEqmalKy2ArnOaNovyxsQp_sw4d_O1kVZR2s,7146
|
@@ -487,14 +490,14 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
487
490
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
488
491
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
489
492
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
490
|
-
meutils/data/VERSION,sha256=
|
493
|
+
meutils/data/VERSION,sha256=3VGLbEyY_DPbBqNqDl04IvcZWYCB_kMLSZ4doLZD3f4,19
|
491
494
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
492
495
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
493
496
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
494
497
|
meutils/data/coordinate.py,sha256=VbFtcdho0XG4j-rZD0DgqcIf2_LR2LlbLtfhLXbxiDY,600
|
495
498
|
meutils/data/cowboy-hat-face.webp,sha256=AHi2t-WclDVKWgGEe-oZzI4xKACNlgGWUgd622y0K-E,24814
|
496
499
|
meutils/data/oneapi/FOOTER.md,sha256=UHv39ey2ICocxPoCj-UI_PWyyWxZYLS8zG1inqtWNQ4,448
|
497
|
-
meutils/data/oneapi/NOTICE.md,sha256=
|
500
|
+
meutils/data/oneapi/NOTICE.md,sha256=kq6qJfbbJkTc00BjgvPGvNHFjO9EDxYuHzDly9annV8,4762
|
498
501
|
meutils/data/oneapi/__init__.py,sha256=cm2Kq2RDXPfdVMWcoBB77bu00zJpTDd21Rgc6bTlhws,398
|
499
502
|
meutils/db/__init__.py,sha256=HR99rqxoFTWXUHDhLVl33tzIn8M86gigHLmEzOKH1Ec,7637
|
500
503
|
meutils/db/mongo.py,sha256=B-B_t939rxtnNGt0PxhivjIUwinmHPzLUpXsjUIaTkQ,2337
|
@@ -683,6 +686,7 @@ meutils/schemas/pixverse_types.py,sha256=3mHg2KxvszV1U8K3GdzsODZz4uocLVRjEeJgYhX
|
|
683
686
|
meutils/schemas/playwright_types.py,sha256=zhZd53m1Wg4zlGtq2JM4z7Aon-u_eF6rzs-_TFYWvkU,1177
|
684
687
|
meutils/schemas/prodia_types.py,sha256=knh_lzAxMfWMoqAPmvyMweay9PmQmsoQ1X6Mj17ohWg,476
|
685
688
|
meutils/schemas/replicate_types.py,sha256=Todfo-y2Gq1MW8IyEmzz_ZlTxuQ3PvIfiF0KkrmJaYw,3160
|
689
|
+
meutils/schemas/request_types.py,sha256=GP2radX2Ixjbu8NDKihUsrSOft6WgcFYd7LXxM4mPY0,407
|
686
690
|
meutils/schemas/runwayml_types.py,sha256=q6g00kg1PYCDjpw-notgbcUGwRAlIa8kAmU52ZuXyLQ,6128
|
687
691
|
meutils/schemas/siliconflow_types.py,sha256=a8SOf-bh5ZBddqsCqJNPFfw9olxk-bD_ySqTr8d0aZw,8597
|
688
692
|
meutils/schemas/step_types.py,sha256=nGTPXZ7RwOF2RTsPBQguLLcIaBxHs4bsZkYa_LalcJ0,648
|
@@ -692,14 +696,14 @@ meutils/schemas/translator_types.py,sha256=xufNQeyim7RhkzAK_J5_JchZfqaUBDXFwMtrP
|
|
692
696
|
meutils/schemas/tripo3d_types.py,sha256=mQF65HwHYmczRgAIuXK5hGxWDWNYDq-Xu9pja7Dwy4o,1452
|
693
697
|
meutils/schemas/tryblend_types.py,sha256=glZ0diRJvZmfQotcCWYBA832inihy8TvVWxWZ64CzWA,27793
|
694
698
|
meutils/schemas/video_types.py,sha256=r4_gJPzmnX6ymCMd0RIqL8Hlx8BHpcwRh77-GA59Iu4,512
|
695
|
-
meutils/schemas/vidu_types.py,sha256=
|
699
|
+
meutils/schemas/vidu_types.py,sha256=GqmnWZaRjVduNpwm916uzjOzfBxOcKyLQ55KWRd3Kv8,5422
|
696
700
|
meutils/schemas/wechat_types.py,sha256=XtIJpMNBzkqBcU68Qno8bnUfHzDOXwFNCIL-6VYQKOA,9260
|
697
701
|
meutils/schemas/yuanbao_types.py,sha256=ZmB-7_eAuTU3QDonNgy0vcVP4YQNwA5yJ8G4mvfOmUE,11966
|
698
702
|
meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVIU,272
|
699
703
|
meutils/schemas/db/oneapi_types.py,sha256=Jtt1hXRS5C3DHf_wrkjklVcdPllsAFrzvLq9JLuTdtc,2858
|
700
704
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
701
705
|
meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
|
702
|
-
meutils/schemas/oneapi/common.py,sha256=
|
706
|
+
meutils/schemas/oneapi/common.py,sha256=AQxO-aL-Ov1EH84EOEzRSgjF5wxMa0K_KK-NkbMre4o,23238
|
703
707
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
704
708
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
705
709
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -827,9 +831,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
827
831
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
828
832
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
829
833
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
830
|
-
MeUtils-2024.12.
|
831
|
-
MeUtils-2024.12.
|
832
|
-
MeUtils-2024.12.
|
833
|
-
MeUtils-2024.12.
|
834
|
-
MeUtils-2024.12.
|
835
|
-
MeUtils-2024.12.
|
834
|
+
MeUtils-2024.12.23.15.45.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
835
|
+
MeUtils-2024.12.23.15.45.1.dist-info/METADATA,sha256=FTb38r4qfAcGEGO0syd_tBd3uSBeqkvkxXoJqnHbeQs,6202
|
836
|
+
MeUtils-2024.12.23.15.45.1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
837
|
+
MeUtils-2024.12.23.15.45.1.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
838
|
+
MeUtils-2024.12.23.15.45.1.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
839
|
+
MeUtils-2024.12.23.15.45.1.dist-info/RECORD,,
|
examples/_openaisdk/4v.py
CHANGED
@@ -16,7 +16,9 @@ from openai.types.chat.completion_create_params import ResponseFormat
|
|
16
16
|
from chatllm.schemas.openai_api_protocol import ChatCompletionRequest
|
17
17
|
|
18
18
|
base_url = os.getenv('OPENAI_BASE_URL')
|
19
|
-
openai = OpenAI(
|
19
|
+
openai = OpenAI(
|
20
|
+
# api_key=os.getenv("OPENAI_API_KEY_OPENAI")
|
21
|
+
)
|
20
22
|
# openai = OpenAI(api_key=os.getenv("SILICONFLOW_API_KEY"), base_url=os.getenv("SILICONFLOW_BASE_URL"))
|
21
23
|
# openai = OpenAI(
|
22
24
|
# # api_key=os.getenv("TOGETHER_API_KEY"),
|
@@ -72,7 +74,9 @@ messages = [
|
|
72
74
|
response = openai.chat.completions.create(
|
73
75
|
# model='gpt-4-vision-preview',
|
74
76
|
# model='gpt-4o',
|
75
|
-
model='gpt-4o-2024-08-06',
|
77
|
+
# model='gpt-4o-2024-08-06',
|
78
|
+
# model="deepseek-ai/deepseek-vl2",
|
79
|
+
model="doubao-vision-pro-32k",
|
76
80
|
|
77
81
|
# model="gemini-pro-vision",
|
78
82
|
# model='gemini-1.5-flash-latest',
|
@@ -101,5 +105,4 @@ response = openai.chat.completions.create(
|
|
101
105
|
|
102
106
|
print(response.dict())
|
103
107
|
|
104
|
-
|
105
108
|
# response = client.chat.completions.create(input='你好', model='tts-1', voice='alloy')
|
@@ -15,8 +15,8 @@ from openai import OpenAI, APIStatusError
|
|
15
15
|
from meutils.schemas.oneapi.models import BAICHUAN
|
16
16
|
|
17
17
|
client = OpenAI(
|
18
|
-
|
19
|
-
|
18
|
+
api_key=os.getenv("BAICHUAN_API_KEY"),
|
19
|
+
base_url=os.getenv("BAICHUAN_BASE_URL")
|
20
20
|
)
|
21
21
|
|
22
22
|
# tool:search
|
@@ -27,7 +27,10 @@ for model in BAICHUAN:
|
|
27
27
|
model=model,
|
28
28
|
messages=[
|
29
29
|
# {"role": "system", "content": "你是个画图工具"},
|
30
|
-
{"role": "user", "content": "你是谁"}
|
30
|
+
# {"role": "user", "content": "你是谁"},
|
31
|
+
|
32
|
+
{"role": "user", "content": "总结下 https://top.baidu.com/board?platform=pc&sa=pcindex_a_right"}
|
33
|
+
|
31
34
|
],
|
32
35
|
# top_p=0.7,
|
33
36
|
stream=True,
|
@@ -13,9 +13,8 @@ from meutils.pipe import *
|
|
13
13
|
from openai import OpenAI
|
14
14
|
|
15
15
|
client = OpenAI(
|
16
|
-
api_key="sk-iPNbgHSRkQ9VUb6iAcCa7a4539D74255A6462d29619d6519",
|
17
|
-
# api_key='sk-Gqbp2zoc71gWBVxvBd23D89f469e4e78A823357e2e625455',
|
18
16
|
|
17
|
+
api_key=os.getenv("OPENAI_API_KEY_OPENAI"),
|
19
18
|
# api_key=os.getenv("SILICONFLOW_API_KEY"),
|
20
19
|
# # api_key="sk-gcxjtocodgggxwnhqqsaqznpkpxndktwlgmgkmzljyajjsfp",
|
21
20
|
# base_url="https://api.siliconflow.cn/v1",
|
@@ -35,5 +34,3 @@ with timer("bs1"):
|
|
35
34
|
input=["查" * 1000] * 1,
|
36
35
|
model=model
|
37
36
|
)
|
38
|
-
|
39
|
-
|
meutils/apis/hailuoai/videos.py
CHANGED
@@ -114,7 +114,7 @@ async def upload(file: bytes, token: Optional[str] = None, vip: Optional[bool] =
|
|
114
114
|
# 'serviceTime': 1730083971}}
|
115
115
|
|
116
116
|
|
117
|
-
@alru_cache(ttl=
|
117
|
+
@alru_cache(ttl=1 * 24 * 60 * 60)
|
118
118
|
@retrying()
|
119
119
|
async def get_access_token(token: Optional[str] = None, vip: Optional[bool] = True):
|
120
120
|
global BASE_URL, FEISHU_URL
|
meutils/apis/jimeng/common.py
CHANGED
@@ -244,8 +244,8 @@ async def create_draft_content(request: ImageRequest, token: str):
|
|
244
244
|
if __name__ == '__main__':
|
245
245
|
token = "693701c43e477b7c405cc7e2fef0ddbd"
|
246
246
|
token = "eb4d120829cfd3ee957943f63d6152ed"
|
247
|
-
|
248
|
-
arun(check_token(token))
|
247
|
+
arun(get_credit(token))
|
248
|
+
# arun(check_token(token))
|
249
249
|
|
250
250
|
# arun(get_upload_token(token))
|
251
251
|
#
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : images
|
5
|
+
# @Time : 2024/12/16 17:46
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from openai import AsyncClient
|
12
|
+
from meutils.pipe import *
|
13
|
+
from meutils.apis.jimeng.doubao_utils import generate_cookie
|
14
|
+
|
15
|
+
from meutils.schemas.image_types import ImageRequest
|
16
|
+
from meutils.schemas.task_types import TaskResponse
|
17
|
+
from meutils.schemas.jimeng_types import BASE_URL, MODELS_MAP, FEISHU_URL
|
18
|
+
from meutils.apis.jimeng.common import create_draft_content, get_headers, check_token
|
19
|
+
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
20
|
+
|
21
|
+
|
22
|
+
async def create():
|
23
|
+
headers = {
|
24
|
+
'agw-js-conv': 'str',
|
25
|
+
'Cookie': 's_v_web_id=verify_m4t9wrdc_qgbhUw0z_07iP_4GFV_8HA7_6jr0e9lLCqQO; passport_csrf_token=8a8aa82fa109ecb3cb25e7afa10de214; passport_csrf_token_default=8a8aa82fa109ecb3cb25e7afa10de214; oauth_token=e45378cb-5afd-4495-88f5-58440e321b48; n_mh=lG4jjJNpPRqpnflIMXQoPMflNZdP31M8fFqgdR9Id5g; uid_tt=1a11a8af13cf1c878482fa862287107c; uid_tt_ss=1a11a8af13cf1c878482fa862287107c; sid_tt=de2215a7bb8e442774cf388f03fac84c; sessionid=de2215a7bb8e442774cf388f03fac84c; sessionid_ss=de2215a7bb8e442774cf388f03fac84c; is_staff_user=false; store-region=cn-js; store-region-src=uid; odin_tt=774fcc6d25d5259fd2af19858e0518c64943eb788718658b403ad8eb13ebbc6ebcb4c42620e87a48b2efb45fe78dc163b82399750898bb201c89f324b9e25b94; passport_auth_status=042935fbff60617ac0735d3ba4cfb559%2C7c535e1ccd98b367728b6560feb66a2e; passport_auth_status_ss=042935fbff60617ac0735d3ba4cfb559%2C7c535e1ccd98b367728b6560feb66a2e; sid_guard=de2215a7bb8e442774cf388f03fac84c%7C1734489199%7C5184000%7CSun%2C+16-Feb-2025+02%3A33%3A19+GMT; sid_ucp_v1=1.0.0-KGQyN2NlYjIxNTA1NTc3ZjI3NWQ2MjZkY2FhNGM3MGM0NzdkNGVjZDMKHwjAreC708zWBBDv6Ii7BhjCsR4gDDDn782qBjgIQCYaAmxxIiBkZTIyMTVhN2JiOGU0NDI3NzRjZjM4OGYwM2ZhYzg0Yw; ssid_ucp_v1=1.0.0-KGQyN2NlYjIxNTA1NTc3ZjI3NWQ2MjZkY2FhNGM3MGM0NzdkNGVjZDMKHwjAreC708zWBBDv6Ii7BhjCsR4gDDDn782qBjgIQCYaAmxxIiBkZTIyMTVhN2JiOGU0NDI3NzRjZjM4OGYwM2ZhYzg0Yw; ttwid=1%7C4rAQ216JOophOdIJRX4cHa6E8FSBjbjqHCKmFCNrQuc%7C1734510550%7C6217dce55189d102c393a4de7022e9ee2e2fa75f211108551b349a0a04532921; passport_fe_beating_status=true; tt_scid=b.csKGNI6QALEo8gG9vJu3nCfptGnLkTxVXPX.wNPQ0q9PaXuKzXfuFQC0i2U7gVa974; gd_random_1831913=eyJtYXRjaCI6ZmFsc2UsInBlcmNlbnQiOjAuMjIzMzcxMDAwNzk1MzUxNzd9.NuOx3z2e4BUOJrwTMG9F3lxrnhmz9jNR6BrhQYU4BhI; gd_random_1525008=eyJtYXRjaCI6ZmFsc2UsInBlcmNlbnQiOjAuMjIzMzcxMDAwNzk1MzUxNzd9.NuOx3z2e4BUOJrwTMG9F3lxrnhmz9jNR6BrhQYU4BhI; gd_random_1831904=eyJtYXRjaCI6ZmFsc2UsInBlcmNlbnQiOjAuMjIzMzcxMDAwNzk1MzUxNzd9.NuOx3z2e4BUOJrwTMG9F3lxrnhmz9jNR6BrhQYU4BhI; msToken=enism5q1i_XLtL8VKKjkjidcvGhyW0U3EGJBI19P3fyqk8NsW4fXW4g8s4TnlgRaF-aWS0kHrmNnENw5L4mFRyyz6A5yZbpR3nCRYJrvBi3-GrtptyOBhznILSv4OO0',
|
26
|
+
'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
|
27
|
+
'content-type': 'application/json'
|
28
|
+
}
|
29
|
+
payload = {
|
30
|
+
"messages": [
|
31
|
+
{
|
32
|
+
"content": "{\"text\":\"颜色反转\"}",
|
33
|
+
"content_type": 2009,
|
34
|
+
"attachments": [
|
35
|
+
{
|
36
|
+
"type": "image",
|
37
|
+
"key": "tos-cn-i-a9rns2rl98/b87240eb828f43f8a87952e8246f2143.png",
|
38
|
+
"extra": {
|
39
|
+
"refer_types": "style"
|
40
|
+
},
|
41
|
+
"identifier": "2c4b5ab0-bd1a-11ef-b0b0-d38662f7353b"
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}
|
45
|
+
],
|
46
|
+
"completion_option": {
|
47
|
+
"is_regen": False,
|
48
|
+
"with_suggest": False,
|
49
|
+
"need_create_conversation": False,
|
50
|
+
"launch_stage": 1,
|
51
|
+
"is_replace": False,
|
52
|
+
"is_delete": False,
|
53
|
+
"message_from": 0,
|
54
|
+
"event_id": "0"
|
55
|
+
},
|
56
|
+
"section_id": "533682637787650",
|
57
|
+
"conversation_id": "533682637787394",
|
58
|
+
"local_message_id": "71ee47b0-bd1c-11ef-b0b0-d38662f7353b"
|
59
|
+
}
|
60
|
+
|
61
|
+
client = AsyncClient(base_url="https://www.doubao.com/samantha", default_headers=headers, api_key='xx')
|
62
|
+
response = await client.post("/chat/completion", body=payload, cast_to=object, stream=True)
|
63
|
+
for i in response:
|
64
|
+
print(i)
|
65
|
+
# return response
|
66
|
+
|
67
|
+
if __name__ == '__main__':
|
68
|
+
arun(create())
|
@@ -7,7 +7,6 @@
|
|
7
7
|
# @WeChat : meutils
|
8
8
|
# @Software : PyCharm
|
9
9
|
# @Description :
|
10
|
-
import httpx
|
11
10
|
|
12
11
|
from meutils.pipe import *
|
13
12
|
import random
|
@@ -16,8 +15,6 @@ import time
|
|
16
15
|
import uuid
|
17
16
|
import secrets
|
18
17
|
import string
|
19
|
-
import hmac
|
20
|
-
import hashlib
|
21
18
|
|
22
19
|
# 常量定义
|
23
20
|
MODEL_NAME = "doubao"
|
@@ -91,6 +88,28 @@ def generate_fake_a_bogus() -> str:
|
|
91
88
|
return f"mf-{generate_random_string(34)}-{generate_random_string(6)}"
|
92
89
|
|
93
90
|
|
91
|
+
def generate_params():
|
92
|
+
params = {
|
93
|
+
"aid": "497858",
|
94
|
+
"device_id": int(DEVICE_ID),
|
95
|
+
"device_platform": "web",
|
96
|
+
"language": "zh",
|
97
|
+
"pkg_type": "release_version",
|
98
|
+
"real_aid": "497858",
|
99
|
+
"region": "CN",
|
100
|
+
"samantha_web": "1",
|
101
|
+
"sys_region": "CN",
|
102
|
+
"tea_uuid": int(WEB_ID),
|
103
|
+
"use-olympus-account": "1",
|
104
|
+
"version_code": "20800",
|
105
|
+
"web_id": int(WEB_ID),
|
106
|
+
"msToken": generate_fake_ms_token(),
|
107
|
+
"a_bogus": generate_fake_a_bogus()
|
108
|
+
}
|
109
|
+
|
110
|
+
return params
|
111
|
+
|
112
|
+
|
94
113
|
def generate_cookie(refresh_token: str, ms_token: Optional[str] = None) -> str:
|
95
114
|
"""
|
96
115
|
生成cookie
|
@@ -133,45 +152,24 @@ async def get_upload_token(): # 3600过期
|
|
133
152
|
url = "https://www.doubao.com/alice/upload/auth_token"
|
134
153
|
|
135
154
|
headers = {
|
136
|
-
'priority': 'u=1, i',
|
137
155
|
'Cookie': cookie,
|
138
|
-
|
156
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
|
139
157
|
}
|
140
158
|
payload = {
|
141
159
|
"scene": "bot_chat",
|
142
160
|
"data_type": "image"
|
143
161
|
}
|
144
162
|
|
145
|
-
async with httpx.AsyncClient() as client:
|
163
|
+
async with httpx.AsyncClient(timeout=60) as client:
|
146
164
|
response = await client.post(url, headers=headers, json=payload)
|
147
165
|
response.raise_for_status()
|
148
166
|
|
149
167
|
return response.json()
|
150
168
|
|
151
169
|
|
152
|
-
def hmac_hash256(key, msg):
|
153
|
-
if type(key) == str:
|
154
|
-
return hmac.new(key.encode('utf-8'), msg.encode('utf-8'), hashlib.sha256)
|
155
|
-
elif type(key) == hmac.HMAC:
|
156
|
-
return hmac.new(key.digest(), msg.encode('utf-8'), hashlib.sha256)
|
157
|
-
|
158
|
-
|
159
|
-
def get_signing_key(secret_access_key, r="cn-north-1", n="imagex"):
|
160
|
-
dt = str(datetime.datetime.now())[:10].replace('-', '')
|
161
|
-
o = hmac_hash256("AWS4" + secret_access_key, dt)
|
162
|
-
i = hmac_hash256(o, str(r))
|
163
|
-
s = hmac_hash256(i, str(n))
|
164
|
-
return hmac_hash256(s, "aws4_request")
|
165
|
-
|
166
|
-
def signature(secret_access_key):
|
167
|
-
r = get_signing_key(secret_access_key)
|
168
|
-
return hmac_hash256(r, self.stringToSign()).hexdigest()
|
169
|
-
|
170
|
-
# ccd4fef2cca1a114e776badad7f4b6e73f305a4dbb09e68f336759ddb6ac0025
|
171
|
-
|
172
170
|
if __name__ == '__main__':
|
173
171
|
# generate_cookie("")
|
174
172
|
|
175
173
|
# arun(get_upload_token())
|
176
|
-
|
177
|
-
print(get_signing_key('xW9YbDhTlWsXdaN7O2g1lfcyePxf5kJyg/r2mwSZG/iuSmbvVgToO6LVCLmUjVJ3'))
|
174
|
+
print(generate_params())
|
175
|
+
# print(get_signing_key('xW9YbDhTlWsXdaN7O2g1lfcyePxf5kJyg/r2mwSZG/iuSmbvVgToO6LVCLmUjVJ3'))
|
meutils/apis/jimeng/files.py
CHANGED
@@ -98,8 +98,10 @@ class JJRequest:
|
|
98
98
|
def upload(image: bytes, upload_token: dict): # oss 跨账号不知道是否可以使用
|
99
99
|
# e = auth = upload_token['data']['auth'] # 豆包
|
100
100
|
data = upload_token['data']
|
101
|
+
service_id = data.get('service_id', '3jr8j4ixpe') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
|
101
102
|
|
102
|
-
|
103
|
+
if 'auth' in data:
|
104
|
+
data = data['auth']
|
103
105
|
|
104
106
|
session_token = data['session_token']
|
105
107
|
|
@@ -170,11 +172,16 @@ def upload(image: bytes, upload_token: dict): # oss 跨账号不知道是否可
|
|
170
172
|
if __name__ == "__main__":
|
171
173
|
from meutils.apis.jimeng.common import get_upload_token
|
172
174
|
|
173
|
-
|
175
|
+
# 豆包
|
176
|
+
token = "de2215a7bb8e442774cf388f03fac84c"
|
174
177
|
|
178
|
+
# jimeng
|
179
|
+
token = "693701c43e477b7c405cc7e2fef0ddbd"
|
180
|
+
#
|
175
181
|
upload_token = arun(get_upload_token(token))
|
176
182
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
183
|
+
#
|
184
|
+
# with open("11.jpg", "rb") as f:
|
185
|
+
# file = image = f.read()
|
186
|
+
#
|
187
|
+
# upload(image, upload_token)
|
meutils/apis/utils.py
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : utils
|
5
|
+
# @Time : 2024/12/20 16:38
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from openai import AsyncClient
|
12
|
+
from meutils.pipe import *
|
13
|
+
|
14
|
+
|
15
|
+
# upstream_base_url: Optional[str] = Header(None),
|
16
|
+
# upstream_api_key: Optional[str] = Header(None),
|
17
|
+
|
18
|
+
async def make_request(
|
19
|
+
base_url: str,
|
20
|
+
path: str,
|
21
|
+
api_key: Optional[str] = None,
|
22
|
+
|
23
|
+
method: str = "GET",
|
24
|
+
headers: Optional[dict] = None,
|
25
|
+
payload: Optional[dict] = None,
|
26
|
+
params: Optional[dict] = None,
|
27
|
+
|
28
|
+
):
|
29
|
+
client = AsyncClient(base_url=base_url, api_key=api_key, default_headers=headers)
|
30
|
+
|
31
|
+
options = {}
|
32
|
+
if params:
|
33
|
+
options["params"] = params
|
34
|
+
|
35
|
+
if method == 'GET':
|
36
|
+
response = await client.get(path, options=options, cast_to=object)
|
37
|
+
return response
|
38
|
+
elif method == 'POST':
|
39
|
+
response = await client.post(path, body=payload, options=options, cast_to=object)
|
40
|
+
return response
|
41
|
+
|
42
|
+
|
43
|
+
if __name__ == '__main__':
|
44
|
+
base_url = "https://api.chatfire.cn/tasks/kling-57751135"
|
45
|
+
base_url = "https://httpbin.org"
|
46
|
+
|
47
|
+
arun(make_request(base_url=base_url, path='/ip'))
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : sora
|
5
|
+
# @Time : 2024/12/20 16:10
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
|
13
|
+
|
14
|
+
"/sora/backend/video_gen"
|
15
|
+
|
16
|
+
|
meutils/apis/vidu/vidu_video.py
CHANGED
@@ -218,7 +218,7 @@ if __name__ == '__main__':
|
|
218
218
|
# # token = "_ga=GA1.1.2058758439.1724312077; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjgzNTAzODAsImlhdCI6MTcyNzA1NDM4MCwiaXNzIjoiaWFtIiwic3ViIjoiMjQyMDA2NTAzNjA5MTgzOSJ9.PkjQqjYB56vYetYwmlagnWn_6bSCwoxCjI7BjfelBOU; Shunt=; 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_ZJBV7VYP55=GS1.1.1727080335.38.1.1727080510.0.0.0"
|
219
219
|
# token = "JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjgzNDkyNzQsImlhdCI6MTcyNzA1MzI3NCwiaXNzIjoiaWFtIiwic3ViIjoiMjQyMDg5NjA4MTIwNTkwNyJ9.MRXmSr48PifQgRN1-yTTu8d7Sq1An4OS7G5WoYpJ_PU"
|
220
220
|
|
221
|
-
token = "
|
221
|
+
token = "_ga=GA1.1.2058758439.1724312077; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzYyMjA4MzgsImlhdCI6MTczNDkyNDgzOCwiaXNzIjoiaWFtIiwic3ViIjoiMjQxODMzMTI4MjA0NTcyOCJ9.ecQl8lcH5mjueG48aZxmqUgxzffHx6l5L3QEve6Z_u0; Shunt=; sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22sSEtIIEstsASHRst%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%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlJPq0swqfcpXNJPZKSBF0IQXLzWq7lQFQzQZNcBF1SQF3EQqwIBF3MQhwswX08wFlJPq0swqfcpXKcwhzz3aMax9klWZHAiD7HDsJCWskbDskl3qmawqNJpXwhwF3Swq0AQFycpvxG%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22sSEtIIEstsASHRst%22%7D%7D; _ga_ZJBV7VYP55=GS1.1.1734923743.137.1.1734924845.54.0.0"
|
222
222
|
arun(check_token(token))
|
223
223
|
#
|
224
224
|
# FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=rxldsA"
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2024.12.
|
1
|
+
2024.12.23.15.45.01
|
meutils/data/oneapi/NOTICE.md
CHANGED
@@ -31,6 +31,32 @@
|
|
31
31
|
|
32
32
|
</details>
|
33
33
|
|
34
|
+
## 2024-12-20
|
35
|
+
- 修复SunoV4无水印版本
|
36
|
+
- [异步任务接口文档](https://api.chatfire.cn/docs/api-246593467)
|
37
|
+
- [增加视频解析模型](https://api.chatfire.cn/docs/api-246688638)
|
38
|
+
- 增加高并发mj-fast
|
39
|
+
|
40
|
+
## 2024-12-19
|
41
|
+
- 新增生图模型 SeedEdit(文生图&图生图/图片编辑): 一句话编辑你的世界:字节跳动推出革命性图片编辑工具SeedEdit
|
42
|
+
- [Chat模式接口文档](https://api.chatfire.cn/docs/api-214415540)
|
43
|
+
- [Images接口文档](https://api.chatfire.cn/docs/api-246137616)
|
44
|
+
- [异步任务接口文档](https://api.chatfire.cn/docs/api-246120232)
|
45
|
+
- 新增视觉模型
|
46
|
+
- deepseek-ai/deepseek-vl2
|
47
|
+
- doubao-vision-pro-32k
|
48
|
+
- doubao-vision-lite-32k
|
49
|
+
- 新增视频模型 Sora
|
50
|
+
- Chat模式:`sora-1:1-480p-5s`
|
51
|
+
- 异步任务接口在路上
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
---
|
56
|
+
|
57
|
+
<details markdown="1">
|
58
|
+
<summary><b>历史更新</b></summary>
|
59
|
+
|
34
60
|
## 2024-12-13
|
35
61
|
- 新增模型 混元视频(支持高并发,非逆向可商用,限时特价1毛)[接口文档](https://api.chatfire.cn/docs/api-244309840)
|
36
62
|
HunyuanVideo 是腾讯推出的开源视频生成基础模型,拥有超过 130 亿参数,是目前最大的开源视频生成模型。该模型采用统一的图像和视频生成架构,集成了数据整理、图像-视频联合模型训练和高效基础设施等关键技术。模型使用多模态大语言模型作为文本编码器,通过 3D VAE 进行空间-时间压缩,并提供提示词重写功能。根据专业人工评估结果,HunyuanVideo 在文本对齐、运动质量和视觉质量等方面的表现优于现有最先进的模型
|
@@ -46,14 +72,6 @@
|
|
46
72
|
- o1-plus: (官网 plus 版本 `逆向工程`,有思考过程显示)o1 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有 200k 上下文,目前全球最强模型,支持图片识别
|
47
73
|
- o1-pro: (官网 200刀 plus 版本 `逆向工程`,有思考过程显示)o1-pro 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有 200k 上下文,目前全球最强模型,支持图片识别
|
48
74
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
---
|
53
|
-
|
54
|
-
<details markdown="1">
|
55
|
-
<summary><b>历史更新</b></summary>
|
56
|
-
|
57
75
|
## 2024-12-05
|
58
76
|
- 新增模型gpt-4-plus/gpt-4o-plus按倍率计算
|
59
77
|
> OpenAI-plus会员 逆向工程
|
meutils/schemas/oneapi/common.py
CHANGED
@@ -14,6 +14,7 @@ from meutils.data.oneapi import NOTICE, FOOTER
|
|
14
14
|
BASE_URL = "https://api.chatfire.cn"
|
15
15
|
# BASE_URL = "https://api-dev.chatfire.cn"
|
16
16
|
FREE = 0.001
|
17
|
+
MJ = 1.5
|
17
18
|
|
18
19
|
MODEL_PRICE = {
|
19
20
|
# chatfire
|
@@ -26,6 +27,8 @@ MODEL_PRICE = {
|
|
26
27
|
"chatfire-all": 0.0001,
|
27
28
|
"chatfire-law": 0.01,
|
28
29
|
|
30
|
+
"sora-1:1-480p-5s": 1.2,
|
31
|
+
|
29
32
|
# 虚拟换衣fish
|
30
33
|
"api-kolors-virtual-try-on": 0.1,
|
31
34
|
"official-api-kolors-virtual-try-on": 0.8,
|
@@ -162,17 +165,8 @@ MODEL_PRICE = {
|
|
162
165
|
"api-translator": 0.0001,
|
163
166
|
"api-voice-clone": 0.01,
|
164
167
|
|
165
|
-
"
|
166
|
-
"
|
167
|
-
"api-sunoai-lyrics": 0.01,
|
168
|
-
"api-sunoai-cover": 0.01,
|
169
|
-
"api-sunoai-stems": 0.01,
|
170
|
-
|
171
|
-
"suno-v3": 0.1,
|
172
|
-
"suno-v3.5": 0.1,
|
173
|
-
"suno-chat": 0.1,
|
174
|
-
"chirp-v3": 0.1,
|
175
|
-
"chirp-v3.5": 0.1,
|
168
|
+
"suno_music": 0.5,
|
169
|
+
"suno_lyrics": 0.01,
|
176
170
|
|
177
171
|
"api-reranker": 0.01,
|
178
172
|
|
@@ -181,7 +175,7 @@ MODEL_PRICE = {
|
|
181
175
|
"o1-pro": 0.5,
|
182
176
|
|
183
177
|
"o1-mini-all": 0.2,
|
184
|
-
"o1-preview-all": 0.
|
178
|
+
"o1-preview-all": 0.5,
|
185
179
|
|
186
180
|
"gpt-4-all": 0.1,
|
187
181
|
"gpt-4o-all": 0.1,
|
@@ -224,24 +218,22 @@ MODEL_PRICE = {
|
|
224
218
|
"ai-search-pro": 0.1,
|
225
219
|
"ai-search-pro:scholar": 0.1,
|
226
220
|
|
227
|
-
"
|
228
|
-
|
229
|
-
"
|
230
|
-
"
|
231
|
-
"
|
232
|
-
"
|
233
|
-
"mj_pan": 0.1 * 0.6,
|
234
|
-
"mj_blend": 0.1 * 0.6,
|
221
|
+
"mj_imagine": 0.1 * MJ,
|
222
|
+
"mj_variation": 0.1 * MJ,
|
223
|
+
"mj_high_variation": 0.1 * MJ,
|
224
|
+
"mj_low_variation": 0.1 * MJ,
|
225
|
+
"mj_pan": 0.1 * MJ,
|
226
|
+
"mj_blend": 0.1 * MJ,
|
235
227
|
"mj_inpaint": 0,
|
236
|
-
"mj_reroll": 0.1 *
|
228
|
+
"mj_reroll": 0.1 * MJ,
|
237
229
|
|
238
|
-
"mj_upscale": 0.05 *
|
230
|
+
"mj_upscale": 0.05 * MJ,
|
239
231
|
"mj_custom_zoom": 0,
|
240
|
-
"mj_describe": 0.05 *
|
241
|
-
"mj_modal": 0.1 *
|
242
|
-
"mj_shorten": 0.1 *
|
243
|
-
"mj_zoom": 0.1 *
|
244
|
-
"swap_face": 0.05 *
|
232
|
+
"mj_describe": 0.05 * MJ,
|
233
|
+
"mj_modal": 0.1 * MJ,
|
234
|
+
"mj_shorten": 0.1 * MJ,
|
235
|
+
"mj_zoom": 0.1 * MJ,
|
236
|
+
"swap_face": 0.05 * MJ,
|
245
237
|
|
246
238
|
}
|
247
239
|
|
@@ -302,7 +294,7 @@ MODEL_RATIO = {
|
|
302
294
|
"glm-4-0520": 2.5,
|
303
295
|
"glm-4-airx": 10,
|
304
296
|
"glm-4v": 2.5,
|
305
|
-
"glm-4v-plus":
|
297
|
+
"glm-4v-plus": 2.5, # 2.5
|
306
298
|
"glm-4v-flash": 0.1,
|
307
299
|
"glm-4-plus": 25,
|
308
300
|
|
@@ -313,7 +305,7 @@ MODEL_RATIO = {
|
|
313
305
|
|
314
306
|
# 阿里千问 https://dashscope.console.aliyun.com/billing
|
315
307
|
"qwen-long": 0.5,
|
316
|
-
"qwen-turbo":
|
308
|
+
"qwen-turbo": 0.05,
|
317
309
|
"qwen-plus": 2,
|
318
310
|
"qwen-max": 20,
|
319
311
|
"qwen-max-longcontext": 20,
|
@@ -384,6 +376,7 @@ MODEL_RATIO = {
|
|
384
376
|
'deepseek-coder-v2-instruct': 0.5,
|
385
377
|
'deepseek-v2-chat': 0.5,
|
386
378
|
'deepseek-llm-67b-chat': 0.5,
|
379
|
+
"deepseek-ai/deepseek-vl2": 0.5,
|
387
380
|
|
388
381
|
# 豆包
|
389
382
|
"doubao-lite-128k": 0.4,
|
@@ -392,6 +385,8 @@ MODEL_RATIO = {
|
|
392
385
|
"doubao-pro-128k": 2.5,
|
393
386
|
"doubao-pro-32k": 0.4,
|
394
387
|
"doubao-pro-4k": 0.4,
|
388
|
+
"doubao-vision-lite-32k": 0.75,
|
389
|
+
"doubao-vision-pro-32k": 1.5,
|
395
390
|
|
396
391
|
# 商汤 https://platform.sensenova.cn/pricing
|
397
392
|
# https://platform.sensenova.cn/doc?path=/pricingdoc/pricing.md
|
@@ -641,6 +636,10 @@ COMPLETION_RATIO = {
|
|
641
636
|
"qwen-max": 5,
|
642
637
|
"glm-4v-flash": 5,
|
643
638
|
|
639
|
+
"deepseek-ai/deepseek-vl2": 3,
|
640
|
+
"doubao-vision-lite-32k": 3,
|
641
|
+
"doubao-vision-pro-32k": 3,
|
642
|
+
|
644
643
|
}
|
645
644
|
|
646
645
|
REDIRECT_MODEL = {
|
@@ -657,9 +656,9 @@ REDIRECT_MODEL = {
|
|
657
656
|
'glm-4-9b-chat': 'THUDM/glm-4-9b-chat', # 永久免费
|
658
657
|
'chatglm3-6b': 'THUDM/chatglm3-6b', # 永久免费
|
659
658
|
|
660
|
-
"doubao-pro-128k": "deepseek-ai/DeepSeek-V2-Chat",
|
661
659
|
# "deepseek-chat": "deepseek-ai/DeepSeek-V2-Chat",
|
662
660
|
"deepseek-chat": "deepseek-ai/DeepSeek-V2.5",
|
661
|
+
"deepseek-vl2": "deepseek-ai/deepseek-vl2",
|
663
662
|
|
664
663
|
"deepseek-coder": "deepseek-ai/DeepSeek-Coder-V2-Instruct",
|
665
664
|
'deepseek-coder-v2-instruct': 'deepseek-ai/DeepSeek-Coder-V2-Instruct',
|
@@ -706,7 +705,7 @@ REDIRECT_MODEL = {
|
|
706
705
|
"qwen2.5-coder-7b-instruct": "Qwen/Qwen2.5-Coder-7B-Instruct",
|
707
706
|
"qwen2.5-coder-32b-instruct": "Qwen/Qwen2.5-Coder-32B-Instruct",
|
708
707
|
|
709
|
-
"qwen-turbo": "Qwen/Qwen2-7B-Instruct",
|
708
|
+
"qwen-turbo": "Qwen/Qwen2.5-7B-Instruct",
|
710
709
|
'qwen2-1.5b-instruct': 'Qwen/Qwen2-1.5B-Instruct',
|
711
710
|
'qwen2-7b-instruct': 'Qwen/Qwen2-7B-Instruct',
|
712
711
|
'qwen2-72b-instruct': 'Qwen/Qwen2-72B-Instruct',
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : request_types
|
5
|
+
# @Time : 2024/12/20 16:29
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
|
13
|
+
# requests.request()
|
14
|
+
|
15
|
+
|
16
|
+
class RequestTypes(BaseModel):
|
17
|
+
method: str = "POST"
|
18
|
+
|
19
|
+
base_url: str
|
20
|
+
api_key: Optional[str] = None
|
meutils/schemas/vidu_types.py
CHANGED
@@ -59,8 +59,39 @@ EXAMPLES = [
|
|
59
59
|
]
|
60
60
|
|
61
61
|
|
62
|
+
# {
|
63
|
+
# "input": {
|
64
|
+
# "prompts": [
|
65
|
+
# {
|
66
|
+
# "type": "text",
|
67
|
+
# "content": "跳起来"
|
68
|
+
# },
|
69
|
+
# {
|
70
|
+
# "type": "image",
|
71
|
+
# "content": "https://oss.ffire.cc/files/kling_watermark.png",
|
72
|
+
# "src_imgs": [
|
73
|
+
# "https://oss.ffire.cc/files/kling_watermark.png"
|
74
|
+
# ]
|
75
|
+
# }
|
76
|
+
# ],
|
77
|
+
# "enhance": true
|
78
|
+
# },
|
79
|
+
# "type": "img2video",
|
80
|
+
# "settings": {
|
81
|
+
# "style": "general",
|
82
|
+
# "duration": 4,
|
83
|
+
# "model": "vidu-high-performance",
|
84
|
+
# "model_version": "1.0"
|
85
|
+
# }
|
86
|
+
# }
|
87
|
+
|
88
|
+
class VideoRequest(BaseModel):
|
89
|
+
pass
|
90
|
+
|
91
|
+
|
62
92
|
class ViduRequest(BaseModel):
|
63
|
-
|
93
|
+
"""quality 倍率2"""
|
94
|
+
model: Union[str, Literal['vidu-high-performance', 'vidu-high-quality']] = "vidu-high-performance" # vidu-1.5
|
64
95
|
|
65
96
|
prompt: Optional[str] = None
|
66
97
|
url: Optional[str] = None # ssupload:?id=
|
@@ -94,24 +125,30 @@ class ViduRequest(BaseModel):
|
|
94
125
|
)
|
95
126
|
type = "text2video"
|
96
127
|
if self.url:
|
128
|
+
type = "img2video" # character2video
|
129
|
+
|
97
130
|
input['prompts'].append(
|
98
131
|
{
|
99
132
|
"type": "image",
|
100
133
|
"content": self.url,
|
101
|
-
|
102
|
-
# "src_img": "ssupload:?id=2467831032322652"
|
134
|
+
"src_img": [self.url, ]
|
103
135
|
}
|
104
136
|
)
|
105
|
-
type = "img2video" # character2video
|
106
137
|
|
107
138
|
self.payload = {
|
108
139
|
"input": input,
|
109
140
|
"type": self.type or type,
|
110
141
|
"settings": {
|
142
|
+
"model": self.model,
|
143
|
+
"model_version": "1.0",
|
144
|
+
# "resolution": "512", 1.5才有的参数 先适配1.0
|
145
|
+
|
111
146
|
"style": self.style,
|
112
|
-
|
147
|
+
|
148
|
+
# "aspect_ratio": self.aspect_ratio,
|
149
|
+
|
113
150
|
"duration": self.duration,
|
114
|
-
|
151
|
+
|
115
152
|
}
|
116
153
|
}
|
117
154
|
|
meutils/apis/jimeng/sig.py
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# @Project : AI. @by PyCharm
|
4
|
-
# @File : sig
|
5
|
-
# @Time : 2024/12/18 15:36
|
6
|
-
# @Author : betterme
|
7
|
-
# @WeChat : meutils
|
8
|
-
# @Software : PyCharm
|
9
|
-
# @Description :
|
10
|
-
import hashlib
|
11
|
-
import hmac
|
12
|
-
import datetime
|
13
|
-
|
14
|
-
|
15
|
-
def sign(key, msg):
|
16
|
-
return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
|
17
|
-
|
18
|
-
|
19
|
-
def getSignatureKey(key, dateStamp, regionName, serviceName):
|
20
|
-
kDate = sign(('AWS4' + key).encode('utf-8'), dateStamp)
|
21
|
-
kRegion = sign(kDate, regionName)
|
22
|
-
kService = sign(kRegion, serviceName)
|
23
|
-
kSigning = sign(kService, 'aws4_request')
|
24
|
-
return kSigning
|
25
|
-
|
26
|
-
|
27
|
-
if __name__ == '__main__':
|
28
|
-
pass
|
29
|
-
from meutils.pipe import *
|
30
|
-
from meutils.apis.jimeng.utils import get_upload_token
|
31
|
-
|
32
|
-
# data = arun(get_upload_token())
|
33
|
-
|
34
|
-
# access_key_id = data['data']['auth']['access_key_id']
|
35
|
-
# secret_access_key = data['data']['auth']['secret_access_key']
|
36
|
-
# session_token = data['data']['auth']['session_token']
|
37
|
-
|
38
|
-
import hashlib
|
39
|
-
import hmac
|
40
|
-
import datetime
|
41
|
-
|
42
|
-
|
43
|
-
def sign(key, msg):
|
44
|
-
"""计算 HMAC-SHA256"""
|
45
|
-
return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
|
46
|
-
|
47
|
-
|
48
|
-
def getSignatureKey(key, dateStamp, regionName, serviceName):
|
49
|
-
"""生成签名密钥"""
|
50
|
-
kDate = sign(('AWS4' + key).encode('utf-8'), dateStamp)
|
51
|
-
kRegion = sign(kDate, regionName)
|
52
|
-
kService = sign(kRegion, serviceName)
|
53
|
-
kSigning = sign(kService, 'aws4_request')
|
54
|
-
return kSigning
|
55
|
-
|
56
|
-
|
57
|
-
def calculate_signature(string_to_sign, secret_key, region, service, date):
|
58
|
-
"""计算 AWS4-HMAC-SHA256 签名"""
|
59
|
-
# 生成签名密钥
|
60
|
-
signing_key = getSignatureKey(
|
61
|
-
secret_key,
|
62
|
-
date.strftime('%Y%m%d'),
|
63
|
-
region,
|
64
|
-
service
|
65
|
-
)
|
66
|
-
|
67
|
-
# 计算最终签名
|
68
|
-
signature = hmac.new(
|
69
|
-
signing_key,
|
70
|
-
string_to_sign.encode('utf-8'),
|
71
|
-
hashlib.sha256
|
72
|
-
).hexdigest()
|
73
|
-
|
74
|
-
return signature
|
75
|
-
|
76
|
-
# 示例参数
|
77
|
-
|
78
|
-
|
79
|
-
secret_key = 'AKTPN2VkZWY2MWNhNjVlNGZhZThiZmVmNzEwODA3YjM1YTY'
|
80
|
-
region = 'cn-north-1'
|
81
|
-
service = 'imagex'
|
82
|
-
date = datetime.datetime.utcnow()
|
83
|
-
print(date)
|
84
|
-
hash_of_canonical_request = {
|
85
|
-
"SessionKey": "eyJhY2NvdW50VHlwZSI6IkltYWdlWCIsImFwcElkIjoiIiwiYml6VHlwZSI6IiIsImZpbGVUeXBlIjoiaW1hZ2UiLCJsZWdhbCI6IiIsInN0b3JlSW5mb3MiOiJbe1wiU3RvcmVVcmlcIjpcInRvcy1jbi1pLWE5cm5zMnJsOTgvYmQzZGNlZWIzN2Y3NDA5NjlkMTBiZjBiZjhhMzk0NmUuanBlZ1wiLFwiQXV0aFwiOlwiU3BhY2VLZXkvYTlybnMycmw5OC8xLzp2ZXJzaW9uOnYyOmV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUpsZUhBaU9qRTNNelExTXpBd016Z3NJbk5wWjI1aGRIVnlaVWx1Wm04aU9uc2lZV05qWlhOelMyVjVJam9pWm1GclpWOWhZMk5sYzNOZmEyVjVJaXdpWW5WamEyVjBJam9pZEc5ekxXTnVMV2t0WVRseWJuTXljbXc1T0NJc0ltVjRjR2x5WlNJNk1UY3pORFV6TURBek9Dd2labWxzWlVsdVptOXpJanBiZXlKdmFXUkxaWGtpT2lKaVpETmtZMlZsWWpNM1pqYzBNRGsyT1dReE1HSm1NR0ptT0dFek9UUTJaUzVxY0dWbklpd2labWxzWlZSNWNHVWlPaUl4SW4xZExDSmxlSFJ5WVNJNmV5SmliRzlqYTE5dGIyUmxJam9pSWl3aVkyOXVkR1Z1ZEY5MGVYQmxYMkpzYjJOcklqb2llMXdpYldsdFpWOXdZM1JjSWpvd0xGd2liVzlrWlZ3aU9qQXNYQ0p0YVcxbFgyeHBjM1JjSWpwdWRXeHNMRndpWTI5dVpteHBZM1JmWW14dlkydGNJanBtWVd4elpYMGlMQ0psYm1OeWVYQjBYMkZzWjI4aU9pSWlMQ0psYm1OeWVYQjBYMnRsZVNJNklpSXNJbVY0ZEY5amIyNTBaVzUwWDNSNWNHVWlPaUpwYldGblpTOXFjR1ZuSWl3aWFYTmZhVzFoWjJWNElqcDBjblZsTENKemNHRmpaU0k2SW1FNWNtNXpNbkpzT1RnaWZYMTkueVFadDJoYWFVMDBuMTFZREJXZDBCbTNIYWdtVlNUN0UzNXMwSkNnOGpzMFwiLFwiVXBsb2FkSURcIjpcIjE3ZThiODUxNzczNDRlYjFiYmM1MDAzMWU3NzQ3NGUyXCIsXCJVcGxvYWRIZWFkZXJcIjpudWxsLFwiU3RvcmFnZUhlYWRlclwiOm51bGx9XSIsInVwbG9hZEhvc3QiOiJ0b3MtZC14LWxmLnNuc3Nkay5jb20iLCJ1cmkiOiJ0b3MtY24taS1hOXJuczJybDk4L2JkM2RjZWViMzdmNzQwOTY5ZDEwYmYwYmY4YTM5NDZlLmpwZWciLCJ1c2VySWQiOiIifQ=="
|
86
|
-
}
|
87
|
-
hash_of_canonical_request = json.dumps(hash_of_canonical_request)
|
88
|
-
string_to_sign = f'AWS4-HMAC-SHA256\n20241218T075358Z\n20241218/cn-north-1/imagex/aws4_request\n{hash_of_canonical_request}'
|
89
|
-
|
90
|
-
# 计算签名
|
91
|
-
signature = calculate_signature(string_to_sign, secret_key, region, service, date)
|
92
|
-
print(f'签名结果: {signature}')
|
File without changes
|
File without changes
|
{MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/entry_points.txt
RENAMED
File without changes
|
{MeUtils-2024.12.19.11.28.48.dist-info → MeUtils-2024.12.23.15.45.1.dist-info}/top_level.txt
RENAMED
File without changes
|