MeUtils 2024.3.4.13.4.45__py3-none-any.whl → 2025.1.16.17.15.52__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.
Files changed (582) hide show
  1. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/METADATA +38 -32
  2. MeUtils-2025.1.16.17.15.52.dist-info/RECORD +864 -0
  3. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/WHEEL +1 -1
  4. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/entry_points.txt +1 -0
  5. apps/spider.py +24 -8
  6. examples/_openaisdk/4v.py +110 -0
  7. examples/_openaisdk/__init__.py +11 -0
  8. examples/_openaisdk/baichuan.py +38 -0
  9. examples/_openaisdk/bpo.py +138 -0
  10. examples/_openaisdk/chat_latex.py +95 -0
  11. examples/_openaisdk/chattts.py +85 -0
  12. examples/_openaisdk/copilot.py +48 -0
  13. examples/_openaisdk/dalle3.py +48 -0
  14. examples/_openaisdk/deeplx.py +31 -0
  15. examples/_openaisdk/demo.py +77 -0
  16. examples/_openaisdk/embeddings.py +34 -0
  17. examples/_openaisdk/gpt4all.py +69 -0
  18. examples/_openaisdk/gpt_fc.py +23 -0
  19. examples/_openaisdk/gr_vl.py +46 -0
  20. examples/_openaisdk/json_mode.py +12 -0
  21. examples/_openaisdk/kimi.py +91 -0
  22. examples/_openaisdk/kimi_qa.py +57 -0
  23. examples/_openaisdk/minimax.py +75 -0
  24. examples/_openaisdk/open_router.py +48 -0
  25. examples/_openaisdk/openai_aiplus.py +54 -0
  26. examples/_openaisdk/openai_audio.py +20 -0
  27. examples/_openaisdk/openai_baichuan.py +59 -0
  28. examples/_openaisdk/openai_cache.py +37 -0
  29. examples/_openaisdk/openai_chatfire.py +228 -0
  30. examples/_openaisdk/openai_chatfire_all.py +166 -0
  31. examples/_openaisdk/openai_deepinfra.py +55 -0
  32. examples/_openaisdk/openai_deepseek.py +29 -0
  33. examples/_openaisdk/openai_doubao.py +43 -0
  34. examples/_openaisdk/openai_embeddings.py +36 -0
  35. examples/_openaisdk/openai_files.py +57 -0
  36. examples/_openaisdk/openai_gitee.py +33 -0
  37. examples/_openaisdk/openai_god.py +45 -0
  38. examples/_openaisdk/openai_groq.py +240 -0
  39. examples/_openaisdk/openai_images.py +203 -0
  40. examples/_openaisdk/openai_json.py +78 -0
  41. examples/_openaisdk/openai_lingyi.py +59 -0
  42. examples/_openaisdk/openai_modelscope.py +54 -0
  43. examples/_openaisdk/openai_moon.py +55 -0
  44. examples/_openaisdk/openai_oi.py +61 -0
  45. examples/_openaisdk/openai_ppu.py +47 -0
  46. examples/_openaisdk/openai_qwen.py +58 -0
  47. examples/_openaisdk/openai_search.py +42 -0
  48. examples/_openaisdk/openai_sensenova.py +81 -0
  49. examples/_openaisdk/openai_siliconflow.py +52 -0
  50. examples/_openaisdk/openai_step.py +45 -0
  51. examples/_openaisdk/openai_test.py +66 -0
  52. examples/_openaisdk/openai_together.py +57 -0
  53. examples/_openaisdk/openai_tune.py +38 -0
  54. examples/_openaisdk/openai_zhipu.py +59 -0
  55. examples/_openaisdk/ppu.py +28 -0
  56. examples/_openaisdk/rag.py +54 -0
  57. examples/_openaisdk/rag_.py +26 -0
  58. examples/_openaisdk/test.py +52 -0
  59. examples/_openaisdk/x.py +32 -0
  60. examples/_openaisdk/xx.py +29 -0
  61. examples/_openaisdk/zhipu_files.py +47 -0
  62. examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +45 -0
  63. examples/_openaisdk//345/205/234/345/272/225/346/265/213/350/257/225.py +50 -0
  64. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225.py +76 -0
  65. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225_.py +56 -0
  66. examples/_openaisdk//346/226/207/344/273/266/351/227/256/347/255/224.py +36 -0
  67. examples/_openaisdk//346/226/207/346/241/243/350/247/243/346/236/220.py +34 -0
  68. examples/_openaisdk//346/250/241/345/236/213/346/265/213/350/257/225.py +53 -0
  69. examples/_openaisdk//351/230/277/351/207/214.py +80 -0
  70. {meutils/serving/jina/__demo → examples/ann}/__init__.py +1 -1
  71. examples/ann/main.py +31 -0
  72. examples/apis/kl.py +28 -0
  73. examples/apis/x.py +17 -0
  74. examples/apis/xx.py +17 -0
  75. examples/arq_demo/demo.py +3 -0
  76. examples/backgroundtasks.py +25 -0
  77. examples/bserver.py +513 -21
  78. examples/cache_demo/HermesCache_demo.py +81 -0
  79. examples/cache_demo/acacge.py +26 -0
  80. examples/cache_demo/x.py +31 -0
  81. {meutils/docarray_utils → examples/caches}/__init__.py +1 -1
  82. examples/caches/llmcache.py +18 -0
  83. examples/celery_demo/product_task.py +2 -0
  84. examples/demo.py +17 -1
  85. examples/fastapi_caching.py +59 -0
  86. {meutils/dependencies → examples/gr}/__init__.py +1 -1
  87. examples/gr/d.py +22 -0
  88. examples/gr/demo.py +30 -0
  89. examples/ip2/345/234/260/345/214/272.py +16 -0
  90. examples/jinja2_demo/j2_demo.py +20 -1
  91. examples/json/346/240/207/345/207/206/345/214/226.py +54 -0
  92. examples/md.py +29 -0
  93. {meutils/serving/jina → examples/nesc}/__init__.py +1 -1
  94. examples/nesc/main.py +76 -0
  95. examples/orm/mysql_orm.py +113 -0
  96. examples/orm/sql_creater.py +57 -0
  97. examples/orm/sqlm.py +134 -0
  98. examples/rq_demo/fns.py +18 -0
  99. examples/rq_demo/redis/351/230/237/345/210/227.py +14 -7
  100. examples/rq_demo/redis/351/230/237/345/210/227_add_chatfire.py +30 -0
  101. examples/size_map.py +43 -0
  102. examples/test.py +59 -0
  103. examples/webs/__init__.py +11 -0
  104. examples/webs/main.py +34 -0
  105. examples/x.py +13 -0
  106. examples//345/216/273/346/260/264/345/215/260.py +20 -0
  107. examples//346/226/207/346/241/243/346/231/272/350/203/275/__init__.py +11 -0
  108. meutils/_utils.py +15 -6
  109. meutils/ai_audio/asr/__init__.py +3 -2
  110. meutils/ai_audio/asr/cf_asr.py +53 -0
  111. meutils/ai_audio/asr/de.py +11 -0
  112. meutils/ai_audio/asr/fast_asr.py +15 -7
  113. meutils/ai_audio/asr/openai_asr.py +83 -6
  114. meutils/ai_audio/fast_asr.py +8 -4
  115. meutils/ai_audio/tts/EdgeTTS.py +33 -7
  116. meutils/ai_audio/tts/openai_tts.py +24 -20
  117. meutils/ai_audio/tts/tts_ui.py +1 -0
  118. meutils/ai_audio/utils.py +9 -0
  119. meutils/ai_cv/__init__.py +0 -1
  120. meutils/ai_cv/ocr.py +3 -2
  121. meutils/ai_cv/utils.py +154 -0
  122. meutils/ai_video/avmerge.py +6 -0
  123. meutils/ai_video/video.py +11 -2
  124. meutils/{api → apis}/__init__.py +1 -1
  125. meutils/apis/ali_apis.py +60 -0
  126. meutils/apis/audio/__init__.py +10 -0
  127. meutils/apis/audio/deepinfra.py +59 -0
  128. meutils/apis/audio/fish.py +248 -0
  129. meutils/apis/baidu/__init__.py +9 -0
  130. meutils/apis/baidu/bdaitpzs.py +229 -0
  131. meutils/apis/baidu/test.py +78 -0
  132. meutils/apis/chatglm/__init__.py +11 -0
  133. meutils/apis/chatglm/glm_video.py +273 -0
  134. meutils/apis/chatglm/glm_video_api.py +116 -0
  135. meutils/apis/chatglm/images.py +63 -0
  136. meutils/apis/chatglm/temp.py +259 -0
  137. meutils/apis/chatglm/x.py +31 -0
  138. meutils/{api → apis}/common.py +10 -6
  139. meutils/apis/fal/__init__.py +11 -0
  140. meutils/apis/fal/files.py +53 -0
  141. meutils/apis/fal/images.py +57 -0
  142. meutils/apis/fal/images_.py +72 -0
  143. meutils/apis/fal/videos.py +77 -0
  144. meutils/apis/firecrawl.py +45 -0
  145. meutils/apis/gitee/__init__.py +11 -0
  146. meutils/apis/gitee/images/__init__.py +9 -0
  147. meutils/apis/gitee/images/kolors.py +99 -0
  148. meutils/apis/hailuoai/__init__.py +11 -0
  149. meutils/apis/hailuoai/demo.py +34 -0
  150. meutils/apis/hailuoai/hasha_new.py +248 -0
  151. meutils/apis/hailuoai/music.py +11 -0
  152. meutils/apis/hailuoai/upload.py +116 -0
  153. meutils/apis/hailuoai/videos.py +460 -0
  154. meutils/apis/hailuoai/yy.py +242 -0
  155. meutils/apis/hf/__init__.py +11 -0
  156. meutils/apis/hf/got_ocr.py +64 -0
  157. meutils/apis/hf/gradio.py +34 -0
  158. meutils/apis/hf/hivisionidphotos.py +80 -0
  159. meutils/apis/hf/kolors.py +68 -0
  160. meutils/apis/hf/kolors_virtual_try_on.py +107 -0
  161. meutils/apis/hf/r.py +53 -0
  162. meutils/apis/hf/x.py +26 -0
  163. meutils/apis/hf//350/257/201/344/273/266/347/205/247.py +41 -0
  164. meutils/apis/hunyuan/__init__.py +11 -0
  165. meutils/apis/hunyuan/image_tools.py +84 -0
  166. meutils/apis/images/__init__.py +11 -0
  167. meutils/apis/images/deepinfra.py +92 -0
  168. meutils/apis/images/demo.py +150 -0
  169. meutils/apis/images/eidt.py +36 -0
  170. meutils/apis/images/flux/__init__.py +11 -0
  171. meutils/apis/images/flux/fluxpro.py +108 -0
  172. meutils/apis/images/flux/mystic.py +116 -0
  173. meutils/apis/images/ideogram/__init__.py +10 -0
  174. meutils/apis/images/ideogram/ideogram_images.py +193 -0
  175. meutils/apis/images/prodia/__init__.py +12 -0
  176. meutils/apis/images/prodia/faceswap.py +76 -0
  177. meutils/apis/images/recraft.py +152 -0
  178. meutils/apis/images/virtual_try_on/__init__.py +11 -0
  179. meutils/apis/images/virtual_try_on/images.py +65 -0
  180. meutils/apis/jiema/24mail.py +96 -0
  181. meutils/apis/jiema/__init__.py +11 -0
  182. meutils/apis/jiema/yezi.py +97 -0
  183. meutils/apis/jimeng/__init__.py +11 -0
  184. meutils/apis/jimeng/common.py +328 -0
  185. meutils/apis/jimeng/doubao.py +68 -0
  186. meutils/apis/jimeng/doubao_utils.py +175 -0
  187. meutils/apis/jimeng/files.py +263 -0
  188. meutils/apis/jimeng/images.py +140 -0
  189. meutils/apis/jimeng/lip_sync.py +11 -0
  190. meutils/apis/jina.py +55 -0
  191. meutils/apis/kling/__init__.py +11 -0
  192. meutils/apis/kling/api.py +60 -0
  193. meutils/apis/kling/images.py +174 -0
  194. meutils/apis/kling/kolors_virtual_try_on.py +111 -0
  195. meutils/apis/kling/kolors_virtual_try_on_web.py +126 -0
  196. meutils/apis/kling/videos.py +67 -0
  197. meutils/apis/kling//351/211/264/346/235/203.py +34 -0
  198. meutils/apis/kuaidi.py +32 -0
  199. meutils/apis/kuaishou/__init__.py +10 -0
  200. meutils/apis/kuaishou/klingai.py +523 -0
  201. meutils/apis/kuaishou/klingai_video.py +197 -0
  202. meutils/apis/kuaishou/kolors.py +189 -0
  203. meutils/apis/llm_qa.py +55 -0
  204. meutils/apis/luma/__init__.py +11 -0
  205. meutils/apis/luma/luma.py +123 -0
  206. meutils/apis/minicpm/__init__.py +9 -0
  207. meutils/apis/minicpm/luca.py +137 -0
  208. meutils/apis/monica/__init__.py +11 -0
  209. meutils/apis/monica/llm.py +11 -0
  210. meutils/apis/napkin/__init__.py +11 -0
  211. meutils/apis/napkin/icons.py +42 -0
  212. meutils/apis/niutrans.py +73 -0
  213. meutils/apis/oneapi/__init__.py +11 -0
  214. meutils/apis/oneapi/channel.py +68 -0
  215. meutils/apis/oneapi/common.py +135 -0
  216. meutils/apis/oneapi/log.py +47 -0
  217. meutils/apis/oneapi/token.py +48 -0
  218. meutils/apis/oneapi/token_.py +112 -0
  219. meutils/apis/oneapi/user.py +100 -0
  220. meutils/apis/oneapi/utils.py +47 -0
  221. meutils/apis/pixverse/__init__.py +11 -0
  222. meutils/apis/pixverse/pixverse.py +150 -0
  223. meutils/apis/proxy/__init__.py +11 -0
  224. meutils/apis/proxy/ips.py +178 -0
  225. meutils/apis/remini/__init__.py +11 -0
  226. meutils/apis/remini/remini.py +89 -0
  227. meutils/apis/replicateai/__init__.py +11 -0
  228. meutils/apis/replicateai/images.py +79 -0
  229. meutils/apis/replicateai/raw.py +53 -0
  230. meutils/apis/runwayml/__init__.py +10 -0
  231. meutils/apis/runwayml/gen.py +143 -0
  232. meutils/apis/search/__init__.py +11 -0
  233. meutils/apis/search/baichuan.py +11 -0
  234. meutils/apis/search/metaso.py +218 -0
  235. meutils/apis/search/metaso_.py +77 -0
  236. meutils/apis/search/n.py +99 -0
  237. meutils/apis/search/searxng.py +42 -0
  238. meutils/apis/search_music.py +39 -0
  239. meutils/apis/siliconflow/__init__.py +9 -0
  240. meutils/apis/siliconflow/audio.py +63 -0
  241. meutils/apis/siliconflow/image_to_image.py +116 -0
  242. meutils/apis/siliconflow/images.py +154 -0
  243. meutils/apis/siliconflow/rerankers.py +40 -0
  244. meutils/apis/siliconflow/text_to_image.py +132 -0
  245. meutils/apis/siliconflow/utils.py +66 -0
  246. meutils/apis/siliconflow/videos.py +102 -0
  247. meutils/apis/sunoai/__init__.py +10 -0
  248. meutils/apis/sunoai/haimian.py +135 -0
  249. meutils/apis/sunoai/suno.py +373 -0
  250. meutils/apis/textcard/__init__.py +11 -0
  251. meutils/apis/textcard/demo.py +25 -0
  252. meutils/apis/textcard/hanyuxinjie.py +81 -0
  253. meutils/apis/textin.py +159 -0
  254. meutils/apis/to_image/__init__.py +11 -0
  255. meutils/apis/to_image/html2image.py +29 -0
  256. meutils/apis/to_image/md.py +29 -0
  257. meutils/apis/to_image/url2image.py +41 -0
  258. meutils/apis/together/__init__.py +11 -0
  259. meutils/apis/together/images.py +80 -0
  260. meutils/apis/translator/__init__.py +9 -0
  261. meutils/apis/translator/deeplx.py +55 -0
  262. meutils/apis/tripo3d/__init__.py +11 -0
  263. meutils/apis/tripo3d/images.py +106 -0
  264. meutils/apis/ts.py +60 -0
  265. meutils/apis/uptime_kuma/__init__.py +11 -0
  266. meutils/apis/uptime_kuma/common.py +56 -0
  267. meutils/apis/uptime_kuma//345/233/275/344/272/247/345/210/206/347/273/204.py +68 -0
  268. meutils/apis/utils.py +47 -0
  269. meutils/apis/videos/__init__.py +11 -0
  270. meutils/apis/videos/sora.py +16 -0
  271. meutils/apis/vidu/__init__.py +9 -0
  272. meutils/apis/vidu/vidu_video.py +254 -0
  273. meutils/apis/vidu/x.py +14 -0
  274. meutils/apis/voice_clone/__init__.py +10 -0
  275. meutils/apis/voice_clone/fish.py +236 -0
  276. meutils/apis/voice_clone/fish_api.py +16 -0
  277. meutils/apis/web_search.py +31 -0
  278. meutils/apis/yezi.py +97 -0
  279. meutils/async_task/__init__.py +13 -0
  280. meutils/async_task/celery_config.py +106 -0
  281. meutils/async_task/common.py +37 -0
  282. meutils/async_task/demo_create_tasks.py +73 -0
  283. meutils/async_task/tasks/__init__.py +11 -0
  284. meutils/async_task/tasks/_all.py +20 -0
  285. meutils/async_task/tasks/hailuo.py +24 -0
  286. meutils/async_task/tasks/kling.py +30 -0
  287. meutils/async_task/tasks/replicateai.py +24 -0
  288. meutils/async_task/tasks/test.py +124 -0
  289. meutils/async_task/tasks/vidu.py +28 -0
  290. meutils/async_task/utils.py +191 -0
  291. meutils/async_task//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  292. meutils/async_utils/asyncer_.py +37 -0
  293. meutils/async_utils/background.py +68 -0
  294. meutils/async_utils/common.py +136 -16
  295. meutils/async_utils/test.py +47 -0
  296. meutils/cache_utils.py +29 -23
  297. meutils/caches/__init__.py +9 -0
  298. meutils/caches/acache.py +45 -0
  299. meutils/caches/redis_cache.py +63 -0
  300. meutils/clis/check_api.py +66 -0
  301. meutils/clis/cli.py +1 -1
  302. meutils/common.py +56 -17
  303. meutils/config_utils/__init__.py +11 -0
  304. meutils/config_utils/lark_utils/__init__.py +11 -0
  305. meutils/config_utils/lark_utils/common.py +385 -0
  306. meutils/config_utils/lark_utils/demo.py +13 -0
  307. meutils/config_utils/lark_utils/x.py +50 -0
  308. meutils/config_utils/manager.py +108 -0
  309. meutils/crawlers/__init__.py +11 -0
  310. meutils/data/VERSION +1 -1
  311. meutils/data/cowboy-hat-face.webp +0 -0
  312. meutils/data/oneapi/FOOTER.md +7 -0
  313. meutils/data/oneapi/NOTICE.md +138 -0
  314. meutils/data/oneapi/__init__.py +15 -0
  315. meutils/db/orm.py +179 -0
  316. meutils/db/redis_db.py +87 -0
  317. meutils/decorators/cache.py +1 -1
  318. meutils/decorators/common.py +84 -5
  319. meutils/decorators/contextmanagers.py +17 -6
  320. meutils/decorators/fastapi_decorator.py +77 -3
  321. meutils/decorators/polling.py +46 -0
  322. meutils/decorators/retry.py +150 -26
  323. meutils/fastapi_utils/__init__.py +11 -0
  324. meutils/fastapi_utils/exceptions/http_error.py +72 -0
  325. meutils/fastapi_utils/exceptions/validation_error.py +44 -0
  326. meutils/hash_utils.py +9 -4
  327. meutils/hooks/__init__.py +11 -0
  328. meutils/hooks/hook_test.py +174 -0
  329. meutils/hooks/wechat.py +162 -0
  330. meutils/hooks/wechat_channel.py +303 -0
  331. meutils/init/evn.py +1 -1
  332. meutils/io/files_utils.py +232 -0
  333. meutils/io/image.py +148 -10
  334. meutils/io/x.py +75 -0
  335. meutils/llm/__init__.py +10 -0
  336. meutils/llm/check_api.py +109 -0
  337. meutils/llm/check_utils.py +106 -0
  338. meutils/llm/clients.py +38 -0
  339. meutils/llm/completions/__init__.py +11 -0
  340. meutils/llm/completions/agents/__init__.py +11 -0
  341. meutils/llm/completions/agents/file.py +125 -0
  342. meutils/llm/completions/cp.py +112 -0
  343. meutils/llm/completions/delilegal.py +135 -0
  344. meutils/llm/completions/dify.py +81 -0
  345. meutils/llm/completions/kimi.py +47 -0
  346. meutils/llm/completions/modelscope.py +11 -0
  347. meutils/{fileparser/filetype.py → llm/completions/oi.py} +5 -3
  348. meutils/llm/completions/rag/__init__.py +11 -0
  349. meutils/llm/completions/rag/fire.py +157 -0
  350. meutils/llm/completions/rag/qwen.py +11 -0
  351. meutils/llm/completions/rag/rag.py +41 -0
  352. meutils/llm/completions/rag.py +38 -0
  353. meutils/llm/completions/tryblend.py +201 -0
  354. meutils/llm/completions/tune.py +284 -0
  355. meutils/llm/completions/x.py +26 -0
  356. meutils/llm/completions/xx.py +61 -0
  357. meutils/llm/completions/yuanbao.py +176 -0
  358. meutils/llm/demo.py +114 -0
  359. meutils/llm/functions/__init__.py +11 -0
  360. meutils/llm/mappers.py +15 -0
  361. meutils/llm/openai_utils/__init__.py +11 -0
  362. meutils/llm/openai_utils/common.py +284 -0
  363. meutils/llm/openai_utils/tool_outputs.py +45 -0
  364. meutils/llm/output_parsers/__init__.py +80 -0
  365. meutils/llm/prompts/__init__.py +244 -0
  366. meutils/llm/prompts/demo.py +155 -0
  367. meutils/llm/prompts/html2image_test.py +19 -0
  368. meutils/llm/utils.py +133 -0
  369. meutils/llm/x.py +75 -0
  370. meutils/notice/feishu.py +40 -9
  371. meutils/notice/wechat.py +23 -21
  372. meutils/np_utils.py +10 -1
  373. meutils/office_automation/pdf.py +6 -1
  374. meutils/oss/__init__.py +20 -0
  375. meutils/oss/minio_oss.py +184 -0
  376. meutils/oss/minio_utils.py +48 -0
  377. meutils/other/__demo.py +6 -4
  378. meutils/pandas_utils/__init__.py +1 -0
  379. meutils/pandas_utils/common.py +31 -0
  380. meutils/pandas_utils/pd_utils.py +10 -6
  381. meutils/parsers/__init__.py +10 -0
  382. meutils/parsers/file_parsers.py +110 -0
  383. meutils/parsers/fileparser/demo.py +41 -0
  384. meutils/parsers/fileparser/filetype.py +41 -0
  385. meutils/pay.py +37 -0
  386. meutils/pipe.py +37 -4
  387. meutils/playwright_utils/common.py +20 -12
  388. meutils/plots/common.py +35 -34
  389. meutils/queues/demo.py +56 -0
  390. meutils/queues/smooth_queue.py +120 -0
  391. meutils/queues/uniform_queue.py +3 -1
  392. meutils/request_utils/__init__.py +26 -2
  393. meutils/request_utils/ark.py +47 -0
  394. meutils/request_utils/crawler.py +34 -5
  395. meutils/request_utils/jwt_utils/__init__.py +11 -0
  396. meutils/request_utils/jwt_utils/common.py +42 -0
  397. meutils/request_utils/volc.py +160 -0
  398. meutils/schemas/__init__.py +0 -1
  399. meutils/schemas/baidu_types.py +70 -0
  400. meutils/schemas/batch_types.py +450 -0
  401. meutils/schemas/celery_types.py +64 -0
  402. meutils/schemas/chatfire_types.py +15 -0
  403. meutils/schemas/chatglm_types.py +197 -0
  404. meutils/schemas/db/__init__.py +11 -0
  405. meutils/schemas/db/oneapi_types.py +117 -0
  406. meutils/schemas/dify_types.py +40 -0
  407. meutils/schemas/embedding.py +31 -0
  408. meutils/schemas/fal_types.py +13 -0
  409. meutils/schemas/fish_types.py +11 -0
  410. meutils/schemas/hailuo_types.py +208 -0
  411. meutils/schemas/haimian_types.py +51 -0
  412. meutils/schemas/idphoto_types.py +43 -0
  413. meutils/schemas/image_types.py +476 -0
  414. meutils/schemas/jimeng_types.py +28 -0
  415. meutils/schemas/jina_types.py +67 -0
  416. meutils/schemas/kimi_types.py +86 -0
  417. meutils/schemas/kling_types.py +235 -0
  418. meutils/schemas/kuaishou_types.py +328 -0
  419. meutils/schemas/luma_types.py +59 -0
  420. meutils/schemas/message_types.py +165 -0
  421. meutils/schemas/message_types_.py +219 -0
  422. meutils/schemas/metaso_types.py +64 -0
  423. meutils/schemas/napkin_types.py +85 -0
  424. meutils/schemas/ocr_types.py +37 -0
  425. meutils/schemas/oneapi/__init__.py +11 -0
  426. meutils/schemas/oneapi/_types.py +49 -0
  427. meutils/schemas/oneapi/common.py +883 -0
  428. meutils/schemas/oneapi/icons.py +30 -0
  429. meutils/schemas/oneapi/model_group_info.py +48 -0
  430. meutils/schemas/oneapi/model_info.py +34 -0
  431. meutils/schemas/oneapi/models.py +26 -0
  432. meutils/schemas/oneapi/x.py +26 -0
  433. meutils/schemas/oneapi//351/207/215/345/256/232/345/220/221.py +132 -0
  434. meutils/schemas/openai_api_protocol.py +411 -0
  435. meutils/schemas/openai_types.py +366 -0
  436. meutils/schemas/pixverse_types.py +88 -0
  437. meutils/schemas/playwright_types.py +57 -0
  438. meutils/schemas/prodia_types.py +19 -0
  439. meutils/schemas/replicate_types.py +112 -0
  440. meutils/schemas/request_types.py +20 -0
  441. meutils/schemas/runwayml_types.py +190 -0
  442. meutils/schemas/siliconflow_types.py +80 -0
  443. meutils/schemas/step_types.py +19 -0
  444. meutils/schemas/suno_types.py +319 -0
  445. meutils/schemas/task_types.py +192 -0
  446. meutils/schemas/translator_types.py +29 -0
  447. meutils/schemas/tripo3d_types.py +57 -0
  448. meutils/schemas/tryblend_types.py +51 -0
  449. meutils/schemas/video_types.py +62 -0
  450. meutils/schemas/vidu_types.py +350 -0
  451. meutils/schemas/wechat_types.py +316 -0
  452. meutils/schemas/yuanbao_types.py +260 -0
  453. meutils/serving/celery/__init__.py +8 -0
  454. meutils/serving/celery/config.py +115 -0
  455. meutils/serving/celery/router.py +4 -6
  456. meutils/serving/celery/tasks.py +6 -4
  457. meutils/serving/celery//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  458. meutils/serving/fastapi/common.py +27 -31
  459. meutils/serving/fastapi/dependencies/__init__.py +0 -1
  460. meutils/serving/fastapi/dependencies/auth.py +55 -2
  461. meutils/serving/fastapi/exceptions/http_error.py +67 -2
  462. meutils/serving/fastapi/exceptions/validation_error.py +18 -2
  463. meutils/serving/fastapi/lifespans.py +73 -0
  464. meutils/serving/fastapi/routers/scheduler.py +12 -0
  465. meutils/serving/fastapi/routers/screenshot.py +47 -0
  466. meutils/serving/fastapi/routers/spider.py +8 -3
  467. meutils/serving/fastapi/routers/task.py +48 -0
  468. meutils/serving/fastapi/utils.py +48 -1
  469. meutils/serving/streamlit/common.py +1 -1
  470. meutils/smooth_utils.py +3 -0
  471. meutils/str_utils/__init__.py +22 -3
  472. meutils/str_utils/json_utils.py +7 -0
  473. meutils/str_utils/regular_expression.py +102 -10
  474. meutils/templates/xx.html +21 -0
  475. meutils/templates/xxx.html +117 -0
  476. meutils/todo.py +12 -0
  477. meutils/tools/token_monitor.py +33 -0
  478. MeUtils-2024.3.4.13.4.45.dist-info/RECORD +0 -540
  479. meutils/ai_audio/asr/subtitle.srt +0 -40
  480. meutils/ai_audio/demo.ipynb +0 -1215
  481. meutils/ai_audio/example.srt +0 -348
  482. meutils/ai_audio/new.srt +0 -179
  483. meutils/ai_audio/subtitles.srt +0 -696
  484. meutils/ai_audio/tts/new.srt +0 -179
  485. meutils/ai_audio//350/247/206/351/242/221/345/220/210/345/271/266.sh +0 -32
  486. meutils/ai_cv/1.jpg +0 -0
  487. meutils/ai_cv/197.jpg +0 -0
  488. meutils/ai_cv/2.jpg +0 -0
  489. meutils/ai_cv/img.png +0 -0
  490. meutils/ai_cv/invoice.jpg +0 -0
  491. meutils/ai_cv/tbl.png +0 -0
  492. meutils/ai_cv/test.png +0 -0
  493. meutils/ann/README.md +0 -33
  494. meutils/ann/README_gensim.md +0 -47
  495. meutils/ann/examples/client.py +0 -59
  496. meutils/ann/examples/demo.py +0 -24
  497. meutils/api/deeplx.py +0 -29
  498. meutils/api/qr.png +0 -0
  499. meutils/clis/README.md +0 -29
  500. meutils/clis/__test.sh +0 -17
  501. meutils/clis/deepseek.txt +0 -8
  502. meutils/clis/deepseek_13003330042.json +0 -1
  503. meutils/clis/deepseek_13003872192.json +0 -1
  504. meutils/clis/deepseek_13852263862.json +0 -1
  505. meutils/clis/deepseek_13913898681.json +0 -1
  506. meutils/clis/deepseek_13962978617.json +0 -1
  507. meutils/clis/deepseek_15251801790.json +0 -1
  508. meutils/clis/deepseek_15720826383.json +0 -1
  509. meutils/clis/deepseek_18395563611.json +0 -1
  510. meutils/clis/deepseek_313303303@qq.com.json +0 -1
  511. meutils/clis/kimi_state.json +0 -1
  512. meutils/cmds/README.md +0 -55
  513. meutils/coding/__init__.py +0 -11
  514. meutils/coding/find132.py +0 -40
  515. meutils/db/README.md +0 -51
  516. meutils/decorators/README.md +0 -17
  517. meutils/docarray_utils/demo_es.py +0 -34
  518. meutils/docarray_utils/demo_hnsw.py +0 -55
  519. meutils/docarray_utils/in_memory.py +0 -38
  520. meutils/docarray_utils//346/224/271/351/200/240/344/270/213hnsw.py +0 -43
  521. meutils/io/file.py +0 -20
  522. meutils/io/img.png +0 -0
  523. meutils/io/x.yml +0 -1
  524. meutils/notice/img.png +0 -0
  525. meutils/notice/todo.md +0 -10
  526. meutils/office_automation//346/212/225/350/265/204/347/256/241/347/220/206/347/263/273/347/273/237O3.2_/344/272/244/346/230/223/347/273/204.pdm +0 -22469
  527. meutils/playwright_utils/__test.sh +0 -2
  528. meutils/playwright_utils/kimi1_cookies.json +0 -1
  529. meutils/playwright_utils/kimi2_cookies.json +0 -1
  530. meutils/playwright_utils/kimi_cookies.json +0 -93
  531. meutils/serving/README.md +0 -1
  532. meutils/serving/celery/_run.sh +0 -10
  533. meutils/serving/gui/run.sh +0 -9
  534. meutils/serving/jina/__demo/client.py +0 -42
  535. meutils/serving/jina/__demo/flow.svg +0 -1
  536. meutils/serving/jina/__demo/s.py +0 -34
  537. meutils/serving/jina/__demo/s2.py +0 -37
  538. meutils/serving/jina/__demo/server.py +0 -83
  539. meutils/serving/jina/__demo/test.py +0 -40
  540. meutils/serving/jina/executors/SentenceEncoder.py +0 -62
  541. meutils/serving/jina/executors/SentenceEncoder_.py +0 -63
  542. meutils/serving/jina/executors/__init__.py +0 -46
  543. meutils/serving/jina/executors/base.py +0 -40
  544. meutils/serving/jina/nlp_serving/__init__.py +0 -11
  545. meutils/serving/jina/nlp_serving/word_segmentation.py +0 -40
  546. meutils/serving/streamlit/conf.yaml +0 -5
  547. meutils/serving/streamlit/ocr.png +0 -0
  548. meutils/serving/streamlit/run.sh +0 -17
  549. meutils/serving/webui/.streamlit/_config.toml +0 -186
  550. meutils/serving/webui/.streamlit/config.toml +0 -26
  551. meutils/serving/webui/pages/_1_/345/210/206/350/257/215.py +0 -56
  552. meutils/serving/webui/pages/_2_/350/257/215/346/200/247/346/240/207/346/263/250/344/270/216/345/256/236/344/275/223/350/257/206/345/210/253.py +0 -54
  553. meutils/serving/webui/pages/_3_/346/226/207/346/234/254/345/214/271/351/205/215.py +0 -64
  554. meutils/serving/webui/run.sh +0 -9
  555. meutils/spark/__init__.py +0 -26
  556. meutils/tools/monitor.yml +0 -29
  557. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/LICENSE +0 -0
  558. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/top_level.txt +0 -0
  559. {meutils → examples}/comp_utils/__init__.py +0 -0
  560. {meutils → examples}/comp_utils/reverse_metric.py +0 -0
  561. /meutils/{fileparser/README.md → fastapi_utils/exceptions/__init__.py} +0 -0
  562. /meutils/{fileparser → parsers/fileparser}/PDF/346/212/275/345/217/226.py" +0 -0
  563. /meutils/{fileparser → parsers/fileparser}/__init__.py +0 -0
  564. /meutils/{fileparser → parsers/fileparser}/common.py +0 -0
  565. /meutils/{fileparser → parsers/fileparser}/filetype/__init__.py +0 -0
  566. /meutils/{fileparser → parsers/fileparser}/filetype/__main__.py +0 -0
  567. /meutils/{fileparser → parsers/fileparser}/filetype/filetype.py +0 -0
  568. /meutils/{fileparser → parsers/fileparser}/filetype/helpers.py +0 -0
  569. /meutils/{fileparser → parsers/fileparser}/filetype/match.py +0 -0
  570. /meutils/{fileparser → parsers/fileparser}/filetype/types/__init__.py +0 -0
  571. /meutils/{fileparser → parsers/fileparser}/filetype/types/application.py +0 -0
  572. /meutils/{fileparser → parsers/fileparser}/filetype/types/archive.py +0 -0
  573. /meutils/{fileparser → parsers/fileparser}/filetype/types/audio.py +0 -0
  574. /meutils/{fileparser → parsers/fileparser}/filetype/types/base.py +0 -0
  575. /meutils/{fileparser → parsers/fileparser}/filetype/types/document.py +0 -0
  576. /meutils/{fileparser → parsers/fileparser}/filetype/types/font.py +0 -0
  577. /meutils/{fileparser → parsers/fileparser}/filetype/types/image.py +0 -0
  578. /meutils/{fileparser → parsers/fileparser}/filetype/types/isobmff.py +0 -0
  579. /meutils/{fileparser → parsers/fileparser}/filetype/types/video.py +0 -0
  580. /meutils/{fileparser → parsers/fileparser}/filetype/utils.py +0 -0
  581. /meutils/{fileparser → parsers/fileparser}/pdf.py +0 -0
  582. /meutils/{fileparser → parsers/fileparser}//350/241/250/346/240/274/346/212/275/345/217/226.py" +0 -0
@@ -0,0 +1,190 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : runwayml_types
5
+ # @Time : 2024/7/16 10:47
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ BASE_URL = "https://api.runwayml.com/v1"
14
+
15
+ EXAMPLES = [
16
+ {
17
+ "taskType": "europa",
18
+ "internal": False,
19
+ "options": {
20
+ "name": "Gen-3 Alpha 文生视频",
21
+ "seconds": 10,
22
+ "text_prompt": "童话里的世界,如同一个缤纷的调色盘,各种色彩交织在一起,组成了一幅美丽的画卷。那里有翠绿如茵的森林、湛蓝如海的天空、缤纷如梦的城堡,还有各种各样让人惊奇的生物。",
23
+ "seed": 2319398808,
24
+ "exploreMode": True,
25
+ "watermark": False,
26
+ "enhance_prompt": True,
27
+ "width": 1280,
28
+ "height": 768,
29
+ "assetGroupName": "Generative Video"
30
+ }
31
+ },
32
+ {
33
+ "taskType": "gen2",
34
+ "internal": False,
35
+ "options": {
36
+ "name": "Gen-2 文生视频",
37
+ "seconds": 4,
38
+ "gen2Options": {
39
+ "mode": "gen2",
40
+ "seed": 2919970896,
41
+ "interpolate": False,
42
+ "upscale": False,
43
+ "watermark": False,
44
+ "width": 1366,
45
+ "height": 768,
46
+ "motion_score": 22,
47
+ "use_motion_score": True,
48
+ "use_motion_vectors": False,
49
+ "text_prompt": "童话里的世界,如同一个缤纷的调色盘,各种色彩交织在一起,组成了一幅美丽的画卷。那里有翠绿如茵的森林、湛蓝如海的天空、缤纷如梦的城堡,还有各种各样让人惊奇的生物。",
50
+ "style": "cinematic"
51
+ },
52
+ "exploreMode": True,
53
+ "assetGroupName": "Generative Video"
54
+ },
55
+ # "asTeamId": 17249553
56
+ },
57
+ {
58
+ "taskType": "gen2",
59
+ "internal": False,
60
+ "options": {
61
+ "name": "Gen-2 图生视频",
62
+ "seconds": 4,
63
+ "gen2Options": {
64
+ "mode": "gen2",
65
+ "seed": 1235659561,
66
+ "interpolate": True,
67
+ "upscale": True,
68
+ "watermark": False,
69
+ "motion_vector": {
70
+ "x": -0.5,
71
+ "y": 0,
72
+ "z": 0,
73
+ "r": 0,
74
+ "bg_x_pan": 0,
75
+ "bg_y_pan": 0
76
+ },
77
+ "use_motion_score": False,
78
+ "use_motion_vectors": True,
79
+ "text_prompt": "童话里的世界,如同一个缤纷的调色盘,各种色彩交织在一起,组成了一幅美丽的画卷。那里有翠绿如茵的森林、湛蓝如海的天空、缤纷如梦的城堡,还有各种各样让人惊奇的生物。",
80
+ "image_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/datasets/7df0aa53-334b-42d7-95c1-a054732c2166.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiODhmYTFhN2NjNjVkNjQ5ZiIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMTI2MDgwMH0.DLzXSWLnXAiL2Npm3KE9NnG1IpOzjZCksYC77_DWvlY",
81
+ "init_image": "https://d2jqrm6oza8nb6.cloudfront.net/datasets/7df0aa53-334b-42d7-95c1-a054732c2166.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiODhmYTFhN2NjNjVkNjQ5ZiIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMTI2MDgwMH0.DLzXSWLnXAiL2Npm3KE9NnG1IpOzjZCksYC77_DWvlY"
82
+ },
83
+ "exploreMode": True,
84
+ "assetGroupName": "Generative Video"
85
+ },
86
+ # "asTeamId": 17249553
87
+ }
88
+ ]
89
+
90
+ ASPECT_RATIOS = {
91
+ "1:1": "1024x1024",
92
+
93
+ "16:9": "1366x768",
94
+ "9:16": "768x1366",
95
+
96
+ "4:3": "1280x960",
97
+ "3:4": "960x1280",
98
+
99
+ "21:9": "1344x576",
100
+
101
+ }
102
+
103
+ STYLES = {
104
+ "Cinematic",
105
+ "Abandoned",
106
+ "Abstract Sculpture",
107
+ "Advertising",
108
+ "Anime"
109
+ }
110
+
111
+
112
+ class MotionVector(BaseModel):
113
+ x: float = 0
114
+ y: float = 0
115
+ z: float = 0.5
116
+ r: float = 0
117
+ bg_x_pan: float = 0
118
+ bg_y_pan: float = 0
119
+
120
+
121
+ class Gen2Options(BaseModel):
122
+ mode: str = "gen2"
123
+
124
+ image_prompt: Optional[str] = None
125
+ init_image: Optional[str] = None
126
+ text_prompt: Optional[str] = None
127
+
128
+ style: Union[str, Literal[(i for i in STYLES)]] = 'none'
129
+
130
+ motion_score: Optional[int] = None
131
+ motion_vector: Optional[MotionVector] = None
132
+
133
+ interpolate: bool = False # Smooth out your frames.
134
+ upscale: bool = False
135
+ use_motion_score: bool = False
136
+ use_motion_vectors: bool = True
137
+
138
+ watermark: bool = False
139
+ seed: Optional[int] = None
140
+
141
+ def __init__(self, /, **data: Any):
142
+ super().__init__(**data)
143
+ self.use_motion_score = True if self.motion_score else False
144
+ self.use_motion_vectors = True if self.motion_vector else False
145
+
146
+
147
+ class Options(BaseModel):
148
+ name: str = f'Gen-3 Alpha {np.random.randint(10e9)}'
149
+ assetGroupName: str = 'Generative Video'
150
+
151
+ text_prompt: Optional[str] = None # 文生视频
152
+
153
+ gen2Options: Optional[Union[Gen2Options]] = None # 图生视频 todo gen3
154
+
155
+ seconds: int = 5
156
+
157
+ watermark: bool = False
158
+ exploreMode: bool = True # 探索模式 不扣积分(看是否有积分)
159
+ enhance_prompt: bool = True
160
+ width: int = 1280
161
+ height: int = 768
162
+
163
+ seed: Optional[int] = None
164
+
165
+ def __init__(self, /, **data: Any):
166
+ super().__init__(**data)
167
+
168
+
169
+ class RunwayRequest(BaseModel):
170
+ taskType: Literal["europa", "gen2", "gen3"] = 'gen3'
171
+
172
+ options: Options
173
+
174
+ internal: bool = False
175
+ asTeamId: Optional[int] = None
176
+
177
+ def __init__(self, /, **data: Any):
178
+ super().__init__(**data)
179
+ self.taskType = "europa" if self.taskType == 'gen3' else self.taskType
180
+
181
+ class Config:
182
+ json_schema_extra = {
183
+ "examples": EXAMPLES
184
+ }
185
+
186
+
187
+ if __name__ == '__main__':
188
+ # print(RunwayRequest(**EXAMPLES[2]).model_dump_json(indent=4))
189
+ # print(RunwayRequest.Config.json_schema_extra)
190
+ print(RunwayRequest.model_config)
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : siliconflow_types
5
+ # @Time : 2024/7/8 12:20
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+
12
+ from meutils.pipe import *
13
+
14
+ BASE_URL = "https://api.siliconflow.cn/v1"
15
+
16
+ EXAMPLES = [
17
+ {
18
+ "model": "BAAI/bge-reranker-v2-m3",
19
+ "query": "Organic skincare products for sensitive skin",
20
+ "top_n": 3,
21
+ "documents": [
22
+ "Organic skincare for sensitive skin with aloe vera and chamomile: Imagine the soothing embrace of nature with our organic skincare range, crafted specifically for sensitive skin. Infused with the calming properties of aloe vera and chamomile, each product provides gentle nourishment and protection. Say goodbye to irritation and hello to a glowing, healthy complexion.",
23
+ "New makeup trends focus on bold colors and innovative techniques: Step into the world of cutting-edge beauty with this seasons makeup trends. Bold, vibrant colors and groundbreaking techniques are redefining the art of makeup. From neon eyeliners to holographic highlighters, unleash your creativity and make a statement with every look.",
24
+ "Bio-Hautpflege für empfindliche Haut mit Aloe Vera und Kamille: Erleben Sie die wohltuende Wirkung unserer Bio-Hautpflege, speziell für empfindliche Haut entwickelt. Mit den beruhigenden Eigenschaften von Aloe Vera und Kamille pflegen und schützen unsere Produkte Ihre Haut auf natürliche Weise. Verabschieden Sie sich von Hautirritationen und genießen Sie einen strahlenden Teint.",
25
+ "Neue Make-up-Trends setzen auf kräftige Farben und innovative Techniken: Tauchen Sie ein in die Welt der modernen Schönheit mit den neuesten Make-up-Trends. Kräftige, lebendige Farben und innovative Techniken setzen neue Maßstäbe. Von auffälligen Eyelinern bis hin zu holografischen Highlightern – lassen Sie Ihrer Kreativität freien Lauf und setzen Sie jedes Mal ein Statement.",
26
+ "Cuidado de la piel orgánico para piel sensible con aloe vera y manzanilla: Descubre el poder de la naturaleza con nuestra línea de cuidado de la piel orgánico, diseñada especialmente para pieles sensibles. Enriquecidos con aloe vera y manzanilla, estos productos ofrecen una hidratación y protección suave. Despídete de las irritaciones y saluda a una piel radiante y saludable.",
27
+ "Las nuevas tendencias de maquillaje se centran en colores vivos y técnicas innovadoras: Entra en el fascinante mundo del maquillaje con las tendencias más actuales. Colores vivos y técnicas innovadoras están revolucionando el arte del maquillaje. Desde delineadores neón hasta iluminadores holográficos, desata tu creatividad y destaca en cada look.",
28
+ "针对敏感肌专门设计的天然有机护肤产品:体验由芦荟和洋甘菊提取物带来的自然呵护。我们的护肤产品特别为敏感肌设计,温和滋润,保护您的肌肤不受刺激。让您的肌肤告别不适,迎来健康光彩。",
29
+ "新的化妆趋势注重鲜艳的颜色和创新的技巧:进入化妆艺术的新纪元,本季的化妆趋势以大胆的颜色和创新的技巧为主。无论是霓虹眼线还是全息高光,每一款妆容都能让您脱颖而出,展现独特魅力。",
30
+ "敏感肌のために特別に設計された天然有機スキンケア製品: アロエベラとカモミールのやさしい力で、自然の抱擁を感じてください。敏感肌用に特別に設計された私たちのスキンケア製品は、肌に優しく栄養を与え、保護します。肌トラブルにさようなら、輝く健康な肌にこんにちは。",
31
+ "新しいメイクのトレンドは鮮やかな色と革新的な技術に焦点を当てています: 今シーズンのメイクアップトレンドは、大胆な色彩と革新的な技術に注目しています。ネオンアイライナーからホログラフィックハイライターまで、クリエイティビティを解き放ち、毎回ユニークなルックを演出しましょう。"
32
+ ]
33
+ },
34
+ {
35
+ "model": "jina-reranker-v2-base-multilingual",
36
+ "query": "Organic skincare products for sensitive skin",
37
+ "top_n": 3,
38
+ "documents": [
39
+ "Organic skincare for sensitive skin with aloe vera and chamomile: Imagine the soothing embrace of nature with our organic skincare range, crafted specifically for sensitive skin. Infused with the calming properties of aloe vera and chamomile, each product provides gentle nourishment and protection. Say goodbye to irritation and hello to a glowing, healthy complexion.",
40
+ "New makeup trends focus on bold colors and innovative techniques: Step into the world of cutting-edge beauty with this seasons makeup trends. Bold, vibrant colors and groundbreaking techniques are redefining the art of makeup. From neon eyeliners to holographic highlighters, unleash your creativity and make a statement with every look.",
41
+ "Bio-Hautpflege für empfindliche Haut mit Aloe Vera und Kamille: Erleben Sie die wohltuende Wirkung unserer Bio-Hautpflege, speziell für empfindliche Haut entwickelt. Mit den beruhigenden Eigenschaften von Aloe Vera und Kamille pflegen und schützen unsere Produkte Ihre Haut auf natürliche Weise. Verabschieden Sie sich von Hautirritationen und genießen Sie einen strahlenden Teint.",
42
+ "Neue Make-up-Trends setzen auf kräftige Farben und innovative Techniken: Tauchen Sie ein in die Welt der modernen Schönheit mit den neuesten Make-up-Trends. Kräftige, lebendige Farben und innovative Techniken setzen neue Maßstäbe. Von auffälligen Eyelinern bis hin zu holografischen Highlightern – lassen Sie Ihrer Kreativität freien Lauf und setzen Sie jedes Mal ein Statement.",
43
+ "Cuidado de la piel orgánico para piel sensible con aloe vera y manzanilla: Descubre el poder de la naturaleza con nuestra línea de cuidado de la piel orgánico, diseñada especialmente para pieles sensibles. Enriquecidos con aloe vera y manzanilla, estos productos ofrecen una hidratación y protección suave. Despídete de las irritaciones y saluda a una piel radiante y saludable.",
44
+ "Las nuevas tendencias de maquillaje se centran en colores vivos y técnicas innovadoras: Entra en el fascinante mundo del maquillaje con las tendencias más actuales. Colores vivos y técnicas innovadoras están revolucionando el arte del maquillaje. Desde delineadores neón hasta iluminadores holográficos, desata tu creatividad y destaca en cada look.",
45
+ "针对敏感肌专门设计的天然有机护肤产品:体验由芦荟和洋甘菊提取物带来的自然呵护。我们的护肤产品特别为敏感肌设计,温和滋润,保护您的肌肤不受刺激。让您的肌肤告别不适,迎来健康光彩。",
46
+ "新的化妆趋势注重鲜艳的颜色和创新的技巧:进入化妆艺术的新纪元,本季的化妆趋势以大胆的颜色和创新的技巧为主。无论是霓虹眼线还是全息高光,每一款妆容都能让您脱颖而出,展现独特魅力。",
47
+ "敏感肌のために特別に設計された天然有機スキンケア製品: アロエベラとカモミールのやさしい力で、自然の抱擁を感じてください。敏感肌用に特別に設計された私たちのスキンケア製品は、肌に優しく栄養を与え、保護します。肌トラブルにさようなら、輝く健康な肌にこんにちは。",
48
+ "新しいメイクのトレンドは鮮やかな色と革新的な技術に焦点を当てています: 今シーズンのメイクアップトレンドは、大胆な色彩と革新的な技術に注目しています。ネオンアイライナーからホログラフィックハイライターまで、クリエイティビティを解き放ち、毎回ユニークなルックを演出しましょう。"
49
+ ]
50
+
51
+ },
52
+ ]
53
+
54
+
55
+ class RerankRequest(BaseModel):
56
+ model: str
57
+ query: str
58
+ documents: Tuple[str, ...] # 牛逼
59
+
60
+ top_n: int = 3
61
+
62
+ max_chunks_per_doc: int = 1024
63
+ overlap_tokens: int = 64
64
+ return_documents: bool = True
65
+
66
+ class Config:
67
+ frozen = True
68
+ json_schema_extra = {
69
+ "examples": EXAMPLES
70
+ }
71
+
72
+
73
+ class VideoRequest(BaseModel):
74
+ model: str
75
+ prompt: str
76
+ image: Optional[str] = None
77
+ seed: Optional[int] = None
78
+
79
+ class Config:
80
+ frozen = True
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : step_types
5
+ # @Time : 2024/6/19 09:29
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ BASE_URL = "https://yuewen.cn"
14
+
15
+ PASSPORT_REGISTER_DEVICE = "/passport/proto.api.passport.v1.PassportService/RegisterDevice" # 是不是一个就行 ttl=180
16
+ PASSPORT_REFRESH_TOKEN = "/passport/proto.api.passport.v1.PassportService/RefreshToken"
17
+
18
+ API_CREATE_CHAT = "/api/proto.chat.v1.ChatService/CreateChat"
19
+ API_CHAT = "/api/proto.chat.v1.ChatMessageService/SendMessageStream"
@@ -0,0 +1,319 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : suno_types
5
+ # @Time : 2024/3/28 19:21
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ _CLERK_JS_VERSION = "4.73.2"
14
+
15
+ STATUS = {"streaming", "complete", "error"} # submitted queued streaming complete/error
16
+
17
+ # 反代
18
+ BASE_URL = "https://studio-api.suno.ai"
19
+ # BASE_URL = "https://suno.chatfire.cc"
20
+
21
+ CLIENT_BASE_URL = "https://clerk.suno.com/v1/client"
22
+ CLIENT_BASE_URL = "https://clerk.chatfire.cc/v1/client"
23
+
24
+ UPLOAD_BASE_UR = "https://suno-uploads.s3.amazonaws.com/"
25
+ # UPLOAD_BASE_UR = "https://suno-uploads.chatfire.cc/"
26
+
27
+ STUDIO_BASE_URL = "https://studio-api.prod.suno.com/"
28
+ STUDIO_BASE_URL = "https://studio-api.chatfire.cc/"
29
+
30
+ API_GENERATE_V2 = "/api/generate/v2/"
31
+ API_GENERATE_LYRICS = "/api/generate/lyrics/"
32
+
33
+ API_BILLING_INFO = "/api/billing/info/"
34
+ API_FEED = "/api/feed/"
35
+ API_SESSION = "/api/session/"
36
+
37
+ MODELS = [
38
+ {
39
+ "id": "b8f595a3-f331-4424-a349-0dee6d894e3b",
40
+ "name": "v3.5",
41
+ "external_key": "chirp-v3-5",
42
+ "major_version": 3,
43
+ "description": "Newest model, better song structure, max 4 minutes"
44
+ },
45
+ {
46
+ "id": "b37ed11c-19dd-41d1-8730-9cc2b04b01af",
47
+ "name": "v3",
48
+ "external_key": "chirp-v3-0",
49
+ "major_version": 3,
50
+ "description": "Broad, versatile, max 2 minutes"
51
+ },
52
+ {
53
+ "id": "9cf36d4c-2532-455b-8f99-1985c3641dc4",
54
+ "name": "v2",
55
+ "external_key": "chirp-v2-xxl-alpha",
56
+ "major_version": 2,
57
+ "description": "Vintage Suno model, max 1.3 minutes"
58
+ }
59
+ ]
60
+
61
+
62
+ class SunoAIRequest(BaseModel): # 原始请求体
63
+
64
+ prompt: str = "" # 优先级最高
65
+
66
+ gpt_description_prompt: Optional[str] = None
67
+ gpt: Optional[str] = None
68
+
69
+ title: str = ""
70
+ tags: str = ""
71
+
72
+ continue_at: Optional[float] = None
73
+ continue_clip_id: Optional[str] = None
74
+
75
+ infill_start_s: Optional[Any] = None
76
+ infill_end_s: Optional[Any] = None
77
+
78
+ make_instrumental: bool = False
79
+
80
+ mv: str = "chirp-v3-5" # chirp-v3-5-tau
81
+ generation_type: str = "TEXT"
82
+
83
+ task: Optional[str] = None # "cover"
84
+ cover_clip_id: Optional[str] = None # "684fea1d-4480-475e-b764-3018c03b3254"
85
+
86
+ def __init__(self, /, **data: Any):
87
+ super().__init__(**data)
88
+ self.gpt_description_prompt = self.gpt_description_prompt or self.gpt
89
+
90
+ model_config = {
91
+ "json_schema_extra": {
92
+ "examples": [
93
+ {
94
+ "prompt": "",
95
+ "gpt_description_prompt": "写首中国风的歌曲",
96
+ "title": "",
97
+ "tags": "",
98
+ "continue_at": None,
99
+ "continue_clip_id": None,
100
+ "infill_start_s": None,
101
+ "infill_end_s": None,
102
+ "make_instrumental": False,
103
+ "mv": "chirp-v3-5"
104
+ },
105
+ {
106
+ "prompt": "",
107
+ "tags": "piano",
108
+ "mv": "chirp-v3-5-upload", # 只有自定义,不支持 gpt_description_prompt
109
+ "title": "",
110
+ "continue_clip_id": "7905ec2d-0e9b-4e2f-9aef-962ebf64aed4",
111
+ # 2d4c0153-8878-45f8-beef-3eee10c7d4d4.wav
112
+ "continue_at": 20.04,
113
+ "infill_start_s": None,
114
+ "infill_end_s": None
115
+ }
116
+ ]
117
+ }
118
+
119
+ }
120
+
121
+
122
+ class LyricsRequest(BaseModel):
123
+ prompt: str = ""
124
+ model: str = "suno"
125
+
126
+
127
+ class SongRequest(BaseModel):
128
+ title: str = Field(description="song title")
129
+ lyrics: str = Field(description="Enter lyrics, example: [Intro]...[Verse]...[Chorus]...")
130
+ music_style: str = Field(description="the Style of Music, Maximum 10 words", examples=['syncopated country ...'])
131
+ continue_clip_id: Optional[str] = Field(
132
+ description="Continue creating based on song id/clip_id",
133
+ examples=['8c7f666a-4df6-4657-8a83-d630b2b8ab56']
134
+ )
135
+ continue_at: Optional[int] = Field(120,
136
+ description="Continue creating based on a certain point in time, for example at 10s")
137
+
138
+
139
+ class Response(BaseModel):
140
+ code: Optional[int] = 0
141
+ msg: Optional[str] = "success"
142
+ data: Optional[Any] = None
143
+
144
+
145
+ class GenerateBase(BaseModel):
146
+ prompt: str = ""
147
+ mv: str = "chirp-v3"
148
+ title: str = ""
149
+ tags: str = ""
150
+ continue_at: Optional[str] = None
151
+ continue_clip_id: Optional[str] = None
152
+
153
+
154
+ class SunoRequest(BaseModel):
155
+ """
156
+ Welcome to Custom Mode 欢迎使用自定义模式
157
+
158
+ Start with Lyrics: Write down your thoughts, or hit “Make Random Lyrics” for spontaneous creativity. Prefer no words? Opt for “Instrumental” and let the tunes express themselves.
159
+ 从歌词开始写下你的想法,或点击 "制作随机歌词 "进行即兴创作。不喜欢歌词?选择 "乐器",让曲调来表达自己。
160
+
161
+ Choose a Style: Select your “Style of Music” to set the vibe, mood, tempo and voice. Not sure? “Use Random Style” might surprise you with the perfect genre.
162
+ 选择风格:选择您的 "音乐风格",设定氛围、情绪、节奏和声音。不确定?"使用随机风格 "可能会让你惊喜地发现完美的音乐风格。
163
+
164
+ Extend Your Song: Want to go longer? Use the more actions (…) menu, select "Continue From This Song", select the desired time to extend your song from, and press Create. Use “Get Full Song” to put the full song together.
165
+ 延长您的歌曲:想延长时间?使用 "更多操作"(...)菜单,选择 "从这首歌开始继续",选择想要延长歌曲的时间,然后按 "创建"。使用 "获取完整歌曲 "将完整歌曲放在一起。
166
+
167
+ Unleash Your Creativity: Dive into the world of music-making and let your imagination run wild. Happy composing! 🎉
168
+ 释放你的创造力:潜入音乐创作世界,尽情发挥你的想象力。祝您创作愉快🎉
169
+ """
170
+
171
+ song_description: str = "" # '一首关于在雨天寻找爱情的富有感染力的朋克歌曲' todo: gpt润色
172
+ """
173
+ Describe the style of music and topic youwant (e.g. acoustic pop about theholidays).
174
+ Use genres and vibes insteadof specific artists and songs
175
+ """
176
+
177
+ instrumental: bool = False
178
+ """创作一首没有歌词的歌曲。"""
179
+
180
+ custom_mode: bool = True
181
+ """Suno 专为创作原创音乐而设计。请确认您只提交人工智能生成的歌词、原创歌词或您有权继续使用的歌词。"""
182
+
183
+ title: str = ''
184
+
185
+ music_style: str = "R&B and soul" # 可随机
186
+ tags: str = music_style
187
+
188
+ mv: str = 'chirp-v3-5' # 模型
189
+
190
+ lyrics: Optional[str] = None # 自动生成
191
+ prompt: Optional[str] = None # 自动生成
192
+ gpt_description_prompt: Optional[str] = None # 自动生成
193
+ """
194
+ [Verse]
195
+ Wake up in the morning, feeling kind of tired
196
+ Rub my eyes, stretch my limbs, try to get inspired
197
+ Open up the cupboard, see that shiny little jar
198
+ It's my secret weapon, helps me reach the stars
199
+
200
+ [Verse 2]
201
+ Fill my favorite mug with that dark and steamy brew
202
+ Inhale the aroma, it's my daily rendezvous
203
+ Sip it nice and slow, feel the warmth flow through my veins
204
+ Oh, coffee in the morning, you're my sugar, you're my dreams
205
+
206
+ [Chorus]
207
+ Coffee in the morning, you're my lifeline, can't deny
208
+ You bring me energy when the day is looking gray
209
+ Coffee in the morning, you're my sunshine in a cup
210
+ With every sip, I'm feeling alive, ready to seize the day
211
+ """
212
+ # 继续创作
213
+ continue_at: Optional[float] = None
214
+ continue_clip_id: Optional[str] = None # "8c7f666a-4df6-4657-8a83-d630b2b8ab56"
215
+
216
+ input: dict = {}
217
+
218
+ def __init__(self, **kwargs):
219
+ super().__init__(**kwargs)
220
+ self.prompt = self.song_description
221
+
222
+ self.input.update({"mv": self.mv, })
223
+
224
+ # if self.custom_mode:
225
+ #
226
+ #
227
+ # self.input = self.input or {
228
+ # "gpt_description_prompt": self.gpt_description_prompt,
229
+ # "make_instrumental": False,
230
+ # "prompt": "",
231
+ #
232
+ # "mv": self.mv,
233
+ # }
234
+ #
235
+ # else:
236
+ #
237
+ # self.input = self.input or {
238
+ # "title": self.title,
239
+ # "tags": self.tags,
240
+ # "prompt": self.prompt,
241
+ # "continue_clip_id": self.continue_clip_id,
242
+ # "continue_at": self.continue_at,
243
+ #
244
+ # "mv": self.mv,
245
+ #
246
+ # }
247
+
248
+
249
+ if __name__ == '__main__':
250
+ pass
251
+ # d = {"input": {
252
+ # "prompt": "小嘛小儿郎\n\n背着那书包进学堂\n\n不怕太阳晒也不怕那风雨狂\n\n只怕那先生骂我懒哪\n\n没有学问\n\n无脸见爹娘\n\n郎里格郎里格郎里格郎\n\n没有学问\n\n无脸见爹娘\n\n小嘛小儿朗\n\n背着那书包进学堂\n\n不是为做官也不是为面子光\n\n只为穷人要翻身哪\n\n不受人欺负\n\n为不做牛和羊\n\n郎里格郎里格郎里格郎\n\n不受人欺负\n\n为不做牛和羊\n\n小嘛小儿郎\n\n背着那书包进学堂\n\n不怕太阳晒也不怕那风雨狂\n\n只怕先生骂我懒哪\n\n没有学问\n\n无脸见爹娘\n\n郎里格郎里格郎里格郎\n\n没有学问\n\n无脸见爹娘\n\n小嘛小儿朗\n\n背着那书包进学堂\n\n不是为做官也不是为面子光\n\n只为穷人要翻身哪\n\n不受人欺负\n\n为不做牛和羊\n\n郎里格郎里格郎里格郎\n\n不受人欺负\n\n为不做牛和羊",
253
+ # "title": "小二郎", "tags": "pop,inspirational", "continue_at": 0, "continue_clip_id": ""}, "custom_mode": True}
254
+ #
255
+ # print(SunoRequest(**d))
256
+ #
257
+ # import requests
258
+ # import json
259
+ #
260
+ # url = "http://0.0.0.0:8000/v1/suno/v1/music"
261
+ #
262
+ # payload = json.dumps({
263
+ # "custom_mode": True,
264
+ # "input": {
265
+ # "prompt": "[Verse]\nTesla riding\nBatteries flying\nElon Musk\nHe's got the future on his mind\nSolar panels shining\nRockets reaching for the skies\nInnovation's flowing\nHe's the tech wizard of our times\n\n[Verse]\nNeuralink connecting minds\nAI running wild\nMars colonization\nHe's making it his style\nFrom PayPal he came and shook the world with his touch\nElon Musk\nThe eccentric genius\nHe's too much\n\n[Chorus]\nElon Musk\nHe's the man with electric dreams\nChanging the world with his technology schemes\nFrom PayPal to SpaceX\nHe's a force to be seen\nElectric cars and rockets\nHe's living the dream",
266
+ # "title": "Electric Dreams",
267
+ # "tags": "epic reggae",
268
+ # "continue_at": 0,
269
+ # # the second that this clip started from last clip. 0 means start over. Note that only GoAPI developer or above plan can use value not zero
270
+ # "continue_clip_id": "" # the id of the clip that you need to continue; empty string means brand new clip.
271
+ # }
272
+ # })
273
+ # headers = {
274
+ # 'Authorization': "Bearer sk-VPoyeW5lRW3HRvWCBb565a441b4c4eB4Ab2560AbBa0f968f",
275
+ # 'Content-Type': 'application/json'
276
+ # }
277
+ #
278
+ # response = requests.request("POST", url, headers=headers, data=payload)
279
+ #
280
+ # print(response.text)
281
+ print(isinstance(SunoRequest(), BaseModel))
282
+
283
+ # 续写获取完整歌曲
284
+
285
+ """
286
+ curl 'https://studio-api.suno.ai/api/generate/concat/v2/' \
287
+ -H 'accept: */*' \
288
+ -H 'accept-language: zh-CN,zh;q=0.9' \
289
+ -H 'affiliate-id: undefined' \
290
+ -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImNhdCI6ImNsX0I3ZDRQRDExMUFBQSIsImtpZCI6Imluc18yT1o2eU1EZzhscWRKRWloMXJvemY4T3ptZG4iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJzdW5vLWFwaSIsImF6cCI6Imh0dHBzOi8vc3Vuby5jb20iLCJleHAiOjE3MjE2NDE2MDMsImh0dHBzOi8vc3Vuby5haS9jbGFpbXMvY2xlcmtfaWQiOiJ1c2VyXzJqWWdqUDYyNUxmUXZyTTRSdWRscmhOSXpsZyIsImh0dHBzOi8vc3Vuby5haS9jbGFpbXMvZW1haWwiOiJ3ZWRkaHJydDh5QG5idmlkYXBwLmNjIiwiaHR0cHM6Ly9zdW5vLmFpL2NsYWltcy9waG9uZSI6bnVsbCwiaWF0IjoxNzIxNjQxNTQzLCJpc3MiOiJodHRwczovL2NsZXJrLnN1bm8uY29tIiwianRpIjoiZWExOGYyOGJiMGQ3YjU2YjNjZDEiLCJuYmYiOjE3MjE2NDE1MzMsInNpZCI6InNlc3NfMmpiMENzSHZzWXRuQktQQUNtQ0c3aGF0ZGVlIiwic3ViIjoidXNlcl8yallnalA2MjVMZlF2ck00UnVkbHJoTkl6bGcifQ.NXLXVy_4rURrqjKvH4-lSkEcQde9ChXj1BsfL7hlJZGMtYv3x9b1EL9TxqZJNdlbkuYsKMLPESCWVI5P-HZQT9ID4FRW44U_YCgxbbyry7nn5wzTqSPktLVj1lNx48mEzO-RCMseUzO_6YCOj9GVq4V_soxX0whZbo68VGvCoBz8A0pKTL3CVxgmnMI4k3cAFCrm0QmCaER38A0AQTc0qBF89sFQN-2FXisHR_RPPi4qu-zkTm0_xG2wtgY-8VgFFM4ruGhQR7y4UbRKIwyK6D0mWik8dFOsWE-sOF1L-X5ZQO0gJGcqAjy1BqOgKIeO6nhafT4EJ8l0ru8oQiY3ew' \
291
+ -H 'content-type: text/plain;charset=UTF-8' \
292
+ -H 'origin: https://suno.com' \
293
+ -H 'priority: u=1, i' \
294
+ -H 'referer: https://suno.com/' \
295
+ -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
296
+ -H 'sec-ch-ua-mobile: ?0' \
297
+ -H 'sec-ch-ua-platform: "macOS"' \
298
+ -H 'sec-fetch-dest: empty' \
299
+ -H 'sec-fetch-mode: cors' \
300
+ -H 'sec-fetch-site: cross-site' \
301
+ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
302
+ --data-raw '{"clip_id":"996aad74-afbb-4e9f-bd8d-be855310fc8e","is_infill":false}'
303
+
304
+ curl 'https://studio-api.suno.ai/api/feed/v2?ids=b2c7d913-b42b-42b7-988c-89bcfaad72bf' \
305
+ -H 'accept: */*' \
306
+ -H 'accept-language: zh-CN,zh;q=0.9' \
307
+ -H 'affiliate-id: undefined' \
308
+ -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImNhdCI6ImNsX0I3ZDRQRDExMUFBQSIsImtpZCI6Imluc18yT1o2eU1EZzhscWRKRWloMXJvemY4T3ptZG4iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJzdW5vLWFwaSIsImF6cCI6Imh0dHBzOi8vc3Vuby5jb20iLCJleHAiOjE3MjE2NDE2MDMsImh0dHBzOi8vc3Vuby5haS9jbGFpbXMvY2xlcmtfaWQiOiJ1c2VyXzJqWWdqUDYyNUxmUXZyTTRSdWRscmhOSXpsZyIsImh0dHBzOi8vc3Vuby5haS9jbGFpbXMvZW1haWwiOiJ3ZWRkaHJydDh5QG5idmlkYXBwLmNjIiwiaHR0cHM6Ly9zdW5vLmFpL2NsYWltcy9waG9uZSI6bnVsbCwiaWF0IjoxNzIxNjQxNTQzLCJpc3MiOiJodHRwczovL2NsZXJrLnN1bm8uY29tIiwianRpIjoiZWExOGYyOGJiMGQ3YjU2YjNjZDEiLCJuYmYiOjE3MjE2NDE1MzMsInNpZCI6InNlc3NfMmpiMENzSHZzWXRuQktQQUNtQ0c3aGF0ZGVlIiwic3ViIjoidXNlcl8yallnalA2MjVMZlF2ck00UnVkbHJoTkl6bGcifQ.NXLXVy_4rURrqjKvH4-lSkEcQde9ChXj1BsfL7hlJZGMtYv3x9b1EL9TxqZJNdlbkuYsKMLPESCWVI5P-HZQT9ID4FRW44U_YCgxbbyry7nn5wzTqSPktLVj1lNx48mEzO-RCMseUzO_6YCOj9GVq4V_soxX0whZbo68VGvCoBz8A0pKTL3CVxgmnMI4k3cAFCrm0QmCaER38A0AQTc0qBF89sFQN-2FXisHR_RPPi4qu-zkTm0_xG2wtgY-8VgFFM4ruGhQR7y4UbRKIwyK6D0mWik8dFOsWE-sOF1L-X5ZQO0gJGcqAjy1BqOgKIeO6nhafT4EJ8l0ru8oQiY3ew' \
309
+ -H 'origin: https://suno.com' \
310
+ -H 'priority: u=1, i' \
311
+ -H 'referer: https://suno.com/' \
312
+ -H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"' \
313
+ -H 'sec-ch-ua-mobile: ?0' \
314
+ -H 'sec-ch-ua-platform: "macOS"' \
315
+ -H 'sec-fetch-dest: empty' \
316
+ -H 'sec-fetch-mode: cors' \
317
+ -H 'sec-fetch-site: cross-site' \
318
+ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
319
+ """