MeUtils 2025.1.3.14.11.44__py3-none-any.whl → 2025.1.4.11.4.46__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MeUtils
3
- Version: 2025.1.3.14.11.44
3
+ Version: 2025.1.4.11.4.46
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: seaborn ; extra == 'all'
67
- Requires-Dist: simplejson ; extra == 'all'
68
- Requires-Dist: pyarrow ; extra == 'all'
69
- Requires-Dist: openai ; extra == 'all'
70
- Requires-Dist: geopy ; extra == 'all'
71
- Requires-Dist: pandas-summary ; extra == 'all'
66
+ Requires-Dist: thriftpy2 ; extra == 'all'
67
+ Requires-Dist: pymongo ; extra == 'all'
68
+ Requires-Dist: dataframe-image ; extra == 'all'
72
69
  Requires-Dist: schedule ; extra == 'all'
73
- Requires-Dist: pretty-errors ; extra == 'all'
74
- Requires-Dist: missingno ; extra == 'all'
75
- Requires-Dist: iteration-utilities ; extra == 'all'
76
- Requires-Dist: langchain ; extra == 'all'
77
- Requires-Dist: reportlab ; extra == 'all'
70
+ Requires-Dist: seaborn ; extra == 'all'
78
71
  Requires-Dist: thefuck ; extra == 'all'
79
- Requires-Dist: redis-py-cluster ; extra == 'all'
80
- Requires-Dist: thriftpy2 ; extra == 'all'
72
+ Requires-Dist: missingno ; extra == 'all'
73
+ Requires-Dist: uvicorn ; extra == 'all'
74
+ Requires-Dist: pandas-summary ; extra == 'all'
81
75
  Requires-Dist: polars ; extra == 'all'
76
+ Requires-Dist: cachetools ; extra == 'all'
77
+ Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
82
78
  Requires-Dist: gunicorn ; extra == 'all'
83
- Requires-Dist: jmespath ; extra == 'all'
84
- Requires-Dist: uvicorn ; extra == 'all'
85
- Requires-Dist: pymysql ; extra == 'all'
79
+ Requires-Dist: reportlab ; extra == 'all'
80
+ Requires-Dist: iteration-utilities ; extra == 'all'
81
+ Requires-Dist: pymupd ; extra == 'all'
82
+ Requires-Dist: sqlalchemy ; extra == 'all'
86
83
  Requires-Dist: filetype ; extra == 'all'
84
+ Requires-Dist: sse-starlette ; extra == 'all'
85
+ Requires-Dist: faiss-cpu ; extra == 'all'
86
+ Requires-Dist: jmespath ; extra == 'all'
87
87
  Requires-Dist: fastapi[all] ; extra == 'all'
88
88
  Requires-Dist: pymilvus ; extra == 'all'
89
- Requires-Dist: sse-starlette ; extra == 'all'
89
+ Requires-Dist: langchain ; extra == 'all'
90
+ Requires-Dist: jinja2 ; extra == 'all'
91
+ Requires-Dist: simplejson ; extra == 'all'
92
+ Requires-Dist: redis-py-cluster ; extra == 'all'
93
+ Requires-Dist: geopy ; extra == 'all'
90
94
  Requires-Dist: jieba ; extra == 'all'
91
- Requires-Dist: faiss-cpu ; extra == 'all'
92
- Requires-Dist: cachetools ; extra == 'all'
95
+ Requires-Dist: openai ; extra == 'all'
93
96
  Requires-Dist: fastapi ; extra == 'all'
94
- Requires-Dist: jinja2 ; extra == 'all'
95
- Requires-Dist: pymupd ; extra == 'all'
96
97
  Requires-Dist: streamlit ; extra == 'all'
97
- Requires-Dist: pymongo ; extra == 'all'
98
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
99
- Requires-Dist: dataframe-image ; extra == 'all'
100
98
  Requires-Dist: asyncmy ; extra == 'all'
101
- Requires-Dist: sqlalchemy ; extra == 'all'
99
+ Requires-Dist: pymysql ; extra == 'all'
100
+ Requires-Dist: pretty-errors ; extra == 'all'
101
+ Requires-Dist: pyarrow ; extra == 'all'
102
102
  Provides-Extra: ann
103
103
  Requires-Dist: pymilvus ; extra == 'ann'
104
104
  Requires-Dist: faiss-cpu ; extra == 'ann'
@@ -122,7 +122,7 @@ examples/_openaisdk/test.py,sha256=Y_dP8rK-LFIBc_fy00ug-2XkilK0G_TlFDa3iuUK-iM,3
122
122
  examples/_openaisdk/x.py,sha256=IdhHsmyd-uZx5UohfWa_g467kZeR1Pkec42z3bW-3Iw,4752
123
123
  examples/_openaisdk/xx.py,sha256=DvU98YbhmFJZ3xWqK4NOAafNqOJLu2ehQycCRLEXVUg,645
124
124
  examples/_openaisdk/zhipu_files.py,sha256=HLvlM9CDcmNER5w-MBMLQPZVPJjR2UHRXYA3ru2cT2Q,1057
125
- examples/_openaisdk/zhipu_智能体.py,sha256=-aH25DEznsB7p9zbmkPINfBudR7f-H3KcA6SHsRlIiM,1211
125
+ examples/_openaisdk/zhipu_智能体.py,sha256=ghjzV0NYmbH36VpRNK9YfE8H2uvtKuVOReHeB494gKc,1210
126
126
  examples/_openaisdk/兜底测试.py,sha256=7vIOZDj-iB5dJjfJtHe_A-3D7ZUmOSiryI7ciIp0EzE,2878
127
127
  examples/_openaisdk/多模态测试.py,sha256=XNHvC9Qbw3tUZ_i8shyEx3a6T3FFDsTyIIkm3rO0R38,2559
128
128
  examples/_openaisdk/多模态测试_.py,sha256=7mh9dnpSApqmrriQ9-q4jY8uHfplsrjyGSXb8b-Zt9o,1276
@@ -367,11 +367,12 @@ meutils/apis/jiema/24mail.py,sha256=GUszRtoDe3T9q-X4embwT5YhcjgQ3XnkTJMKX93sCF4,
367
367
  meutils/apis/jiema/__init__.py,sha256=YBybggoDRYCNYcwJOypxR7MzfTjIhqO7BkGlTt7NDo4,271
368
368
  meutils/apis/jiema/yezi.py,sha256=26vhnA3lC5049Rqx-CHO-wyGKbdZAfvjEOG90W38cr0,3675
369
369
  meutils/apis/jimeng/__init__.py,sha256=a8CE_cOl9jqal0hycwaLm4Mnga8jmZlz9nCze_9bBqA,272
370
- meutils/apis/jimeng/common.py,sha256=wIduTWmtJJQWIbxDMVvQ9BlDheiGbeROPNuulfiwiNY,8819
370
+ meutils/apis/jimeng/common.py,sha256=5pH-qJsas8ocnwXWuHnBa0Pbniv6a6Q3uRyt53kjjno,11363
371
371
  meutils/apis/jimeng/doubao.py,sha256=vSEaTQHQdyhpHwCoq6CIikDZkUC9ncyTgKxGUC8cMCI,4345
372
372
  meutils/apis/jimeng/doubao_utils.py,sha256=XCHnvwfCOtJmPQuzDOCfKDMP_Pcqh-Y4w2h5f7Y2gzM,5999
373
- meutils/apis/jimeng/files.py,sha256=aFKg5iesJNVbXclaMR0yDpnKzjqW1yZxkyp9qrGTybo,5365
373
+ meutils/apis/jimeng/files.py,sha256=CBJ8W9pFy7D_GpV7buX3J9LMoqBYxl-EvrxkIYSu9s8,7523
374
374
  meutils/apis/jimeng/images.py,sha256=Z1w8Jxqvom-rBB9MSfQz4QvfPLTEoamwyb9X9_yUmBk,4641
375
+ meutils/apis/jimeng/lip_sync.py,sha256=rynQPNngltS73GmuWbpMIuuAr0srZP5kUh0FMY6Ynas,267
375
376
  meutils/apis/kling/__init__.py,sha256=pKz40SEjui1dhHBD-icyNTJOYhzLvxLxJCwszuH4vio,271
376
377
  meutils/apis/kling/api.py,sha256=AuVQ9URmrbTlz7dEv_kIyhA9fMTZPL9rF3Td6KxTIMA,2183
377
378
  meutils/apis/kling/images.py,sha256=FcCkvA4x1Po3SuugfQa8klT0Lrj7fq4N8kbzx6luUxI,5095
@@ -381,7 +382,7 @@ meutils/apis/kling/videos.py,sha256=6z3w0gQHPe3BQNid4ZO2DfYSqvry44EMehG9U0qSB3E,
381
382
  meutils/apis/kling/鉴权.py,sha256=1kR67Mb0PxEo4ZxLVJZys4Iru9BUnS_Qqo2cbpLZNCU,842
382
383
  meutils/apis/kuaishou/__init__.py,sha256=fDzJvVQl_CxHyiL3bCPH9x7gOLYfK6QuW2iQ33eez7c,243
383
384
  meutils/apis/kuaishou/klingai.py,sha256=met1N4cWo6rSSNgMTStjYMhkjLPnQyuL8k3L0OiY2rE,21262
384
- meutils/apis/kuaishou/klingai_video.py,sha256=5-f-H0QR8Mo5LR2d7VRm2_-mAmT_1DxrIrTDfyUKeTY,10061
385
+ meutils/apis/kuaishou/klingai_video.py,sha256=B_zauEMGDtWhUfSLB1dhMK4tjaJ1kzhGBsvfnpyjZMc,10066
385
386
  meutils/apis/kuaishou/kolors.py,sha256=mjPOFeM1n5FrXfs50SJYlZSHqYk-mQ1wRFs-R-LRsa0,7203
386
387
  meutils/apis/luma/__init__.py,sha256=51W483rgmMqFlRIHlkIIcKYMqggH4eY_bmV_mD3p7QI,271
387
388
  meutils/apis/luma/luma.py,sha256=dAWZj2Q4t5eJNJbbtCfmUNDb1wx_OKxxtrZr0szI6tw,6026
@@ -392,7 +393,7 @@ meutils/apis/monica/llm.py,sha256=gYyBPOTvmoNFaa1KmW3OlSsRKeN7C97EyPUa264nJ08,26
392
393
  meutils/apis/napkin/__init__.py,sha256=EWwpRJEbN46d6Dk9PHAZvsYmqD_EOK0jjKQL1kYtcKs,271
393
394
  meutils/apis/napkin/icons.py,sha256=_L8EaSeQ6ChT5w7q3jnj_AcRhKvNiBg3-qUKo9JQ12o,2217
394
395
  meutils/apis/oneapi/__init__.py,sha256=wg_kqNkFqOkP70vnOHvAeKREps57Rqliu5yKC0gsgLk,284
395
- meutils/apis/oneapi/channel.py,sha256=SdehWOlh0tLVM1CG_AT5_VpiGHXtc__AlknyLSs0jRw,1989
396
+ meutils/apis/oneapi/channel.py,sha256=ZTRXVA30IC3jrIWdY-l8XOX2ouNlVvnD_vmMSDO8b3Q,2000
396
397
  meutils/apis/oneapi/common.py,sha256=dZeuimzuZXVP_bEMYfTdZUKVJePrOVB0fWYl2dwQwcI,3556
397
398
  meutils/apis/oneapi/log.py,sha256=dOmyldX5DyJO7mMw4EzYorTIsdLKqZ3AZiV0z0tEpWE,1377
398
399
  meutils/apis/oneapi/token.py,sha256=32xR3fnsqctZLEj79RKPptQtUvBF8_QtILIbLWM3yx0,1805
@@ -496,7 +497,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
496
497
  meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
497
498
  meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
498
499
  meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
499
- meutils/data/VERSION,sha256=FQfjvQbWRKEXelG-g51ajO4vPgN2rcpyOVWQkAoRk2s,19
500
+ meutils/data/VERSION,sha256=yixHXXad2U23Mi4yr94vRu7SIQ6IWDMIx49zz1ZwIyQ,19
500
501
  meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
501
502
  meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
502
503
  meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
@@ -587,6 +588,8 @@ meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb
587
588
  meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,630
588
589
  meutils/llm/completions/xx.py,sha256=pPfVRczvXZFUvAUOAFr0MMHMb5kVPNfKVhOLKugq52M,1646
589
590
  meutils/llm/completions/yuanbao.py,sha256=aN3MwR6yORFv5pGA1ODiLqlNKCfAKQslIfpruAD6m08,5468
591
+ meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
592
+ meutils/llm/completions/agents/files.py,sha256=J8bkDykn9pd25B02RCoEU1SwVaUx27sDNH-jC4oXzVA,477
590
593
  meutils/llm/completions/rag/__init__.py,sha256=VH4g9H0pqMM1Rkjc1xefQb4Uh8f9vlTt6tjdD6G6Wc0,272
591
594
  meutils/llm/completions/rag/fire.py,sha256=0a_POkY9mEy1YwZHXOGnqf9EVyjiJwx3fWhmv_bQ54U,5743
592
595
  meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cpxu6TBg,265
@@ -683,7 +686,7 @@ meutils/schemas/jimeng_types.py,sha256=qsjtyURGsGnAGAhfZ9k4k-mtbRgjbWId75UMV1d6A
683
686
  meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
684
687
  meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
685
688
  meutils/schemas/kling_types.py,sha256=brWaREBtQeZGUuwgOW2p-vIm2WWInYkq8UfrLInT-Ik,6959
686
- meutils/schemas/kuaishou_types.py,sha256=YrRIP0KRruNHcxzPexsN-LjnQOGvxRlK7h4pNgHbe-Y,10914
689
+ meutils/schemas/kuaishou_types.py,sha256=-tvlS73TgCqLNjG9M3dBobI8sK3CLPadbXTESB2KMC8,10884
687
690
  meutils/schemas/luma_types.py,sha256=s9RZnZUpdUg8-13_WOWm3bE_e246olplFFjP8ygiDuw,1900
688
691
  meutils/schemas/message_types.py,sha256=AJc9ZT_weaTjfjmwF5CDroV0WJEJKnA3u4bnbHhBamo,6176
689
692
  meutils/schemas/message_types_.py,sha256=oL7uOsewaziSryZywfap09M5Wh9w28RJDuadFuAfCSI,6297
@@ -713,7 +716,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
713
716
  meutils/schemas/db/oneapi_types.py,sha256=U_foX82tejUT7efCqyMMTLfq-C4LXMXsmwz5pfldwNw,3734
714
717
  meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
715
718
  meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
716
- meutils/schemas/oneapi/common.py,sha256=RVftefKVkeEXeHqVrkpA27muaaHSMlt24q-doW2lZTA,24002
719
+ meutils/schemas/oneapi/common.py,sha256=3Oe6a4-a7suvonJokPzNdU8i470mFzg_K3pGfdCE9Oc,24038
717
720
  meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
718
721
  meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
719
722
  meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
@@ -841,9 +844,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
841
844
  meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
842
845
  meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
843
846
  meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
844
- MeUtils-2025.1.3.14.11.44.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
845
- MeUtils-2025.1.3.14.11.44.dist-info/METADATA,sha256=VmU_S_uKCR3JOYQq2WyChHxbkNDaH8WY6KQqyUuM2kA,6201
846
- MeUtils-2025.1.3.14.11.44.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
847
- MeUtils-2025.1.3.14.11.44.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
848
- MeUtils-2025.1.3.14.11.44.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
849
- MeUtils-2025.1.3.14.11.44.dist-info/RECORD,,
847
+ MeUtils-2025.1.4.11.4.46.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
848
+ MeUtils-2025.1.4.11.4.46.dist-info/METADATA,sha256=YJIJUQ4-qTTCH1p3ePuwd3TngoVBN2WE-cOhCap8B5w,6200
849
+ MeUtils-2025.1.4.11.4.46.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
850
+ MeUtils-2025.1.4.11.4.46.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
851
+ MeUtils-2025.1.4.11.4.46.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
852
+ MeUtils-2025.1.4.11.4.46.dist-info/RECORD,,
@@ -31,7 +31,6 @@ generate = client.assistant.conversation(
31
31
  "content": [{
32
32
  "type": "text",
33
33
  # "text": "北京未来七天气温,做个折线图",
34
-
35
34
  "text": "画条狗"
36
35
 
37
36
  }]
@@ -12,6 +12,8 @@ from openai import AsyncClient
12
12
  from meutils.pipe import *
13
13
  from meutils.hash_utils import md5
14
14
  from meutils.schemas.image_types import ImageRequest
15
+ from meutils.schemas.openai_types import TTSRequest
16
+
15
17
  from meutils.schemas.jimeng_types import BASE_URL, MODELS_MAP
16
18
  from meutils.str_utils.regular_expression import parse_url
17
19
  from meutils.apis.jimeng.files import upload
@@ -241,6 +243,76 @@ async def create_draft_content(request: ImageRequest, token: str):
241
243
  return draft_content
242
244
 
243
245
 
246
+ def create_photo_lip_sync(request: TTSRequest):
247
+ # 映射
248
+ tts_info = {
249
+ "name": request.voice or "魅力姐姐",
250
+ "text": request.input, # "永远相信美好的事情即将发生"
251
+ "speed": request.seed or 1,
252
+ "source_type": "text-to-speech",
253
+ "tone_category_id": 0,
254
+ "tone_category_key": "all",
255
+ "tone_id": "7382879492752019995",
256
+ "toneKey": request.voice or "魅力姐姐",
257
+ }
258
+ payload = {
259
+ "promptSource": "photo_lip_sync",
260
+ "generateTimes": 1,
261
+ "lipSyncInfo": tts_info,
262
+ "isUseAiGenPrompt": False,
263
+ "batchNumber": 1
264
+ }
265
+
266
+ return {
267
+ "submit_id": "",
268
+ "task_extra": json.dumps(payload),
269
+ "http_common_info": {
270
+ "aid": 513695
271
+ },
272
+ "input": {
273
+ "seed": 1834980836,
274
+ "video_gen_inputs": [
275
+ {
276
+ "v2v_opt": {},
277
+ "i2v_opt": {
278
+ "realman_avatar": {
279
+ "enable": true,
280
+ "origin_image": {
281
+ "width": 480,
282
+ "height": 270,
283
+ "image_uri": "tos-cn-i-tb4s082cfz/fae8f746367b40f5a708bf0f1e84de11",
284
+ "image_url": "" ########## https://oss.ffire.cc/files/kling_watermark.png
285
+ },
286
+ "resource_id_loopy": "34464cac-5e3e-46be-88ff-ccbc7da4d742",
287
+ "resource_id_std": "2f66b408-37c3-4de5-b8a4-ba15c104612e",
288
+ "origin_audio": {
289
+ "duration": 3.216,
290
+ "vid": "v02bc3g10000ctrpqrfog65purfpn7a0"
291
+ },
292
+ "tts_info": json.dumps(tts_info)
293
+ }
294
+ },
295
+ "audio_vid": "v02bc3g10000ctrpqrfog65purfpn7a0",
296
+ "video_mode": 4
297
+ }
298
+ ]
299
+ },
300
+ "mode": "workbench",
301
+ "history_option": {},
302
+ "commerce_info": {
303
+ "resource_id": "generate_video",
304
+ "resource_id_type": "str",
305
+ "resource_sub_type": "aigc",
306
+ "benefit_type": "lip_sync_avatar_std"
307
+ },
308
+ "scene": "lip_sync_image",
309
+ "client_trace_data": {},
310
+ "submit_id_list": [
311
+ "d4554e2c-707f-4ebe-b4e6-93aa6687d1c1"
312
+ ]
313
+ }
314
+
315
+
244
316
  if __name__ == '__main__':
245
317
  token = "693701c43e477b7c405cc7e2fef0ddbd"
246
318
  token = "eb4d120829cfd3ee957943f63d6152ed"
@@ -42,7 +42,7 @@ def u(params):
42
42
 
43
43
 
44
44
  class JJRequest:
45
- def __init__(self, e, t, api, method="GET", params=None, data=None):
45
+ def __init__(self, e, t, api, method="GET", params=None, data=None, serviceName="imagex"):
46
46
  self.t = t
47
47
  self.e = e
48
48
  self.api = api
@@ -50,14 +50,18 @@ class JJRequest:
50
50
  self.params = params
51
51
  self.data = data
52
52
 
53
+ self.serviceName = serviceName
54
+
53
55
  def getAuthorization(self):
54
- return f"AWS4-HMAC-SHA256 Credential={self.e['access_key_id']}/{self.t[0:8]}/cn-north-1/imagex/aws4_request, SignedHeaders=x-amz-date;x-amz-security-token, Signature={self.signature()}"
56
+ return f"AWS4-HMAC-SHA256 Credential={self.e['access_key_id']}/{self.t[0:8]}/cn-north-1/{self.serviceName}/aws4_request, SignedHeaders=x-amz-date;x-amz-security-token, Signature={self.signature()}"
55
57
 
56
58
  def signature(self):
57
59
  r = self.getSigningKey()
58
60
  return hmac_hash256(r, self.stringToSign()).hexdigest()
59
61
 
60
- def getSigningKey(self, r="cn-north-1", n="imagex"):
62
+ def getSigningKey(self, r="cn-north-1"):
63
+ n = self.serviceName
64
+
61
65
  o = hmac_hash256("AWS4" + self.e['secret_access_key'], str(self.t[0:8]))
62
66
  i = hmac_hash256(o, str(r))
63
67
  s = hmac_hash256(i, str(n))
@@ -71,8 +75,8 @@ class JJRequest:
71
75
  t.append(hash256(self.canonicalString()))
72
76
  return "\n".join(t)
73
77
 
74
- def credentialString(self, region="cn-north-1", serviceName="imagex"):
75
- return "/".join([self.t[0:8], region, serviceName, "aws4_request"])
78
+ def credentialString(self, region="cn-north-1"):
79
+ return "/".join([self.t[0:8], region, self.serviceName, "aws4_request"])
76
80
 
77
81
  def canonicalString(self):
78
82
  e = []
@@ -169,6 +173,77 @@ def upload(image: bytes, upload_token: dict): # oss 跨账号不知道是否可
169
173
  return oss_uri
170
174
 
171
175
 
176
+ @cache(ttl=15 * 60)
177
+ def upload_for_vod(image: bytes, upload_token: dict): # oss 跨账号不知道是否可以使用
178
+ # e = auth = upload_token['data']['auth'] # 豆包
179
+ data = upload_token['data']
180
+ service_id = data.get('service_id', '3jr8j4ixpe') # 即梦 3jr8j4ixpe 豆包 a9rns2rl98
181
+
182
+ if 'auth' in data:
183
+ data = data['auth']
184
+
185
+ session_token = data['session_token']
186
+
187
+ t = time.strftime("%Y%m%dT%H%M%SZ", time.gmtime())
188
+
189
+ params = {
190
+ "Action": "ApplyUploadInner",
191
+ "Version": "2020-11-19",
192
+ # "ServiceId": service_id,
193
+ "SpaceName": "artist_op",
194
+
195
+ "s": random_str(10),
196
+
197
+ "FileType": "video",
198
+ "FileSize": len(image),
199
+
200
+ }
201
+
202
+ r = JJRequest(data, t, "https://vod.bytedanceapi.com/", method="GET", params=params, serviceName="vod")
203
+ headers = {
204
+ 'authorization': r.getAuthorization(),
205
+ 'x-amz-date': t,
206
+ 'x-amz-security-token': session_token,
207
+ }
208
+ # logger.debug(headers)
209
+ response = requests.get(r.api, params=params, headers=headers)
210
+ response.raise_for_status()
211
+ logger.debug(response.status_code)
212
+ response = response.json()
213
+
214
+ logger.debug(bjson(response))
215
+ if "Result" not in response:
216
+ return
217
+
218
+ upload_node = response['Result']['InnerUploadAddress']['UploadNodes'][0]
219
+ store_info = upload_node['StoreInfos'][0]
220
+ logger.debug(bjson(store_info))
221
+
222
+ vid = upload_node['Vid']
223
+ upload_host = upload_node['UploadHost']
224
+
225
+ oss_uri = store_info['StoreUri']
226
+ oss_token = store_info['Auth']
227
+
228
+ headers = {
229
+ "authorization": oss_token,
230
+ "content-length": str(len(image)),
231
+ "content-Type": "image/jpeg",
232
+ "content-crc32": fileCRC32(image),
233
+ }
234
+
235
+ # upload_url = f"https://tos-hl-x.snssdk.com/upload/v1/{oss_uri}"
236
+ upload_url = f"https://{upload_host}/upload/v1/{oss_uri}"
237
+
238
+ response = requests.post(upload_url, headers=headers, data=image)
239
+ response.raise_for_status()
240
+ response = response.json()
241
+
242
+ logger.debug(response)
243
+
244
+ return oss_uri
245
+
246
+
172
247
  if __name__ == "__main__":
173
248
  from meutils.apis.jimeng.common import get_upload_token
174
249
 
@@ -176,12 +251,13 @@ if __name__ == "__main__":
176
251
  token = "de2215a7bb8e442774cf388f03fac84c"
177
252
 
178
253
  # jimeng
179
- token = "693701c43e477b7c405cc7e2fef0ddbd"
254
+ token = "eb4d120829cfd3ee957943f63d6152ed"
180
255
  #
181
256
  upload_token = arun(get_upload_token(token))
182
257
 
183
258
  #
184
- # with open("11.jpg", "rb") as f:
185
- # file = image = f.read()
186
- #
187
- # upload(image, upload_token)
259
+ with open("11.jpg", "rb") as f:
260
+ file = image = f.read()
261
+
262
+ # upload(image, upload_token)
263
+ print(upload_for_vod(image, upload_token))
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : lip_sync
5
+ # @Time : 2025/1/3 16:17
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
@@ -141,13 +141,13 @@ if __name__ == '__main__':
141
141
  # https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=v8vcZY
142
142
 
143
143
  # cookie = "_did=web_474598569404BC09;did=web_43cec8fac6fa32077f3b12bf131b77a7310f;kuaishou.ai.portal_ph=0e15bfbb51aa3d52d065602d7e566d622ba4;kuaishou.ai.portal_st=ChVrdWFpc2hvdS5haS5wb3J0YWwuc3QSsAHW9jii6pSdK5oTimSzQslDxQ5mLAW8m2j8dKFP4uptOr8aycVOX72ydltRPJhO6QbD4fGYD2pFXD_c4gqsAZPLZluo4DeIxFAWhEplxrmSA61cb-VBtCEB2bxyM1gC-sooTaSESNkekMI5WBEq1_NL5E2x-wigAGi6jm1Chpq-bJ3oTAXe9yMLV3oY4qilfoV9M77nn3cY-r76Z2Z9G-3JICGNjTmN2OAQSf_q3EXtMRoSITGi7VYyBd022GVFnVcqtiPoIiDjv6HmF2lhkn6FgvYhjgLMGinYaZxZj84kbjL8GfxuiygFMAE;userId=415950813"
144
- token = "weblogger_did=web_9665177505014D12; _gcl_au=1.1.961392860.1725442018; did=web_d77db05423a7f37445a28355351bf2736bf0; anonymous-message-release-notice-1=true; userId=5138238; ksi18n.ai.portal_st=ChNrc2kxOG4uYWkucG9ydGFsLnN0EqABA02dJVaF0Q5XvWFZVNWLa-7fNeGjTJZ_BP3zPN4JN1Ct8LRrLlT8ZAtqXZa0X_fOBXuQFiOqfoIuTziI8bNUaIKPNjhfcCT2CUcLv9bIVdYkwlJGlzMai8-2o2MoF9yopDzeYfwphWxBh575DrMjMjnPoNp0MqSq3iDIIA9glYGxEOYRcotovl63JPPI1Vy4mSX46S1Omh1X0suF2oWKCBoSPFqCkp3UokbKTh0UPCIW9AgsIiBZRgCwD_UpSF1elCUq5jwFhe-Wr2hErFmS73Zc4GyXOSgFMAE; ksi18n.ai.portal_ph=c52b0d2188bc0e0d209a401f9cb4c4889227"
144
+ # token = "weblogger_did=web_9665177505014D12; _gcl_au=1.1.961392860.1725442018; did=web_d77db05423a7f37445a28355351bf2736bf0; anonymous-message-release-notice-1=true; userId=5138238; ksi18n.ai.portal_st=ChNrc2kxOG4uYWkucG9ydGFsLnN0EqABA02dJVaF0Q5XvWFZVNWLa-7fNeGjTJZ_BP3zPN4JN1Ct8LRrLlT8ZAtqXZa0X_fOBXuQFiOqfoIuTziI8bNUaIKPNjhfcCT2CUcLv9bIVdYkwlJGlzMai8-2o2MoF9yopDzeYfwphWxBh575DrMjMjnPoNp0MqSq3iDIIA9glYGxEOYRcotovl63JPPI1Vy4mSX46S1Omh1X0suF2oWKCBoSPFqCkp3UokbKTh0UPCIW9AgsIiBZRgCwD_UpSF1elCUq5jwFhe-Wr2hErFmS73Zc4GyXOSgFMAE; ksi18n.ai.portal_ph=c52b0d2188bc0e0d209a401f9cb4c4889227"
145
145
  request = KlingaiVideoRequest(prompt="一只可爱的黑白边境牧羊犬,头伸出车窗,毛发被风吹动,微笑着伸出舌头",
146
146
  duration=5) # 27638649
147
147
  # e = KlingaiVideoRequest.Config.json_schema_extra.get('examples')[-1] # 尾帧
148
148
  # request = KlingaiVideoRequest(**e)
149
149
  #
150
- # pprint(arun(create_task(request, cookie)))
150
+ print(arun(create_task(request, vip=True)))
151
151
  # arun(get_task("31298981", cookie))
152
152
  # arun(get_task("vip-47426519", token))
153
153
 
@@ -191,7 +191,7 @@ if __name__ == '__main__':
191
191
  #
192
192
  #
193
193
  #
194
- arun(get_reward(token)) # 签到
194
+ # arun(get_reward(token)) # 签到
195
195
  # arun(get_point(token)) # 签到
196
196
 
197
- arun(get_task_plus('60909700', token=token))
197
+ # arun(get_task_plus('60909700', token=token))
@@ -15,7 +15,7 @@ from meutils.schemas.oneapi import BASE_URL, GROUP_RATIO
15
15
  async def edit_channel(models, token: Optional[str] = None):
16
16
  token = token or os.environ.get("CHATFIRE_ONEAPI_TOKEN")
17
17
 
18
- models = ','.join(filter(lambda model: model.startswith(("api", "official-api", "ppu")), models))
18
+ models = ','.join(filter(lambda model: model.startswith(("api", "official-api", "ppu", "kling-v")), models))
19
19
 
20
20
  payload = {
21
21
  "id": 289,
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.01.03.14.11.44
1
+ 2025.01.04.11.04.46
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : __init__.py
5
+ # @Time : 2025/1/3 15:38
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : files
5
+ # @Time : 2025/1/3 15:38
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description : 支持文档、图片、音频、视频问答
10
+ """单一智能体
11
+ 任意模型支持文档、图片、音频、视频问答
12
+ api形式
13
+ - /agents/v1
14
+ - /v1 前缀区分 agents-{model}【底层调用 /agents/v1】
15
+
16
+ """
17
+
18
+ from meutils.pipe import *
@@ -225,7 +225,6 @@ class KlingaiVideoRequest(BaseModel):
225
225
  kling_version = '1.5'
226
226
  if self.model == 'kling-v1.6':
227
227
  kling_version = "1.6"
228
- self.mode = 'pro'
229
228
  arguments.append({"name": "camera_control_enabled", "value": "false"}) # 暂不支持
230
229
  else:
231
230
  arguments.append({"name": "camera_control_enabled", "value": "true"})
@@ -153,10 +153,10 @@ MODEL_PRICE = {
153
153
 
154
154
  "api-kling": 0.1,
155
155
  "api-kling-vip": 0.5,
156
- "api-kling-v1.6-std-5s": 1,
157
- "api-kling-v1.6-std-10s": 2,
158
- "api-kling-v1.6-pro-5s": 1.5,
159
- "api-kling-v1.6-pro-10s": 3,
156
+ "api-kling-v1.6-std-5s": 1 * 0.8,
157
+ "api-kling-v1.6-std-10s": 2 * 0.8,
158
+ "api-kling-v1.6-pro-5s": 1 * 0.8 * 1.75,
159
+ "api-kling-v1.6-pro-10s": 2 * 0.8 * 1.75,
160
160
 
161
161
  "api-vidu": 0.09,
162
162
  "api-vidu-vip": 0.3,