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.
- {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/METADATA +38 -32
- MeUtils-2025.1.16.17.15.52.dist-info/RECORD +864 -0
- {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/WHEEL +1 -1
- {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/entry_points.txt +1 -0
- apps/spider.py +24 -8
- examples/_openaisdk/4v.py +110 -0
- examples/_openaisdk/__init__.py +11 -0
- examples/_openaisdk/baichuan.py +38 -0
- examples/_openaisdk/bpo.py +138 -0
- examples/_openaisdk/chat_latex.py +95 -0
- examples/_openaisdk/chattts.py +85 -0
- examples/_openaisdk/copilot.py +48 -0
- examples/_openaisdk/dalle3.py +48 -0
- examples/_openaisdk/deeplx.py +31 -0
- examples/_openaisdk/demo.py +77 -0
- examples/_openaisdk/embeddings.py +34 -0
- examples/_openaisdk/gpt4all.py +69 -0
- examples/_openaisdk/gpt_fc.py +23 -0
- examples/_openaisdk/gr_vl.py +46 -0
- examples/_openaisdk/json_mode.py +12 -0
- examples/_openaisdk/kimi.py +91 -0
- examples/_openaisdk/kimi_qa.py +57 -0
- examples/_openaisdk/minimax.py +75 -0
- examples/_openaisdk/open_router.py +48 -0
- examples/_openaisdk/openai_aiplus.py +54 -0
- examples/_openaisdk/openai_audio.py +20 -0
- examples/_openaisdk/openai_baichuan.py +59 -0
- examples/_openaisdk/openai_cache.py +37 -0
- examples/_openaisdk/openai_chatfire.py +228 -0
- examples/_openaisdk/openai_chatfire_all.py +166 -0
- examples/_openaisdk/openai_deepinfra.py +55 -0
- examples/_openaisdk/openai_deepseek.py +29 -0
- examples/_openaisdk/openai_doubao.py +43 -0
- examples/_openaisdk/openai_embeddings.py +36 -0
- examples/_openaisdk/openai_files.py +57 -0
- examples/_openaisdk/openai_gitee.py +33 -0
- examples/_openaisdk/openai_god.py +45 -0
- examples/_openaisdk/openai_groq.py +240 -0
- examples/_openaisdk/openai_images.py +203 -0
- examples/_openaisdk/openai_json.py +78 -0
- examples/_openaisdk/openai_lingyi.py +59 -0
- examples/_openaisdk/openai_modelscope.py +54 -0
- examples/_openaisdk/openai_moon.py +55 -0
- examples/_openaisdk/openai_oi.py +61 -0
- examples/_openaisdk/openai_ppu.py +47 -0
- examples/_openaisdk/openai_qwen.py +58 -0
- examples/_openaisdk/openai_search.py +42 -0
- examples/_openaisdk/openai_sensenova.py +81 -0
- examples/_openaisdk/openai_siliconflow.py +52 -0
- examples/_openaisdk/openai_step.py +45 -0
- examples/_openaisdk/openai_test.py +66 -0
- examples/_openaisdk/openai_together.py +57 -0
- examples/_openaisdk/openai_tune.py +38 -0
- examples/_openaisdk/openai_zhipu.py +59 -0
- examples/_openaisdk/ppu.py +28 -0
- examples/_openaisdk/rag.py +54 -0
- examples/_openaisdk/rag_.py +26 -0
- examples/_openaisdk/test.py +52 -0
- examples/_openaisdk/x.py +32 -0
- examples/_openaisdk/xx.py +29 -0
- examples/_openaisdk/zhipu_files.py +47 -0
- examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +45 -0
- examples/_openaisdk//345/205/234/345/272/225/346/265/213/350/257/225.py +50 -0
- examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225.py +76 -0
- examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225_.py +56 -0
- examples/_openaisdk//346/226/207/344/273/266/351/227/256/347/255/224.py +36 -0
- examples/_openaisdk//346/226/207/346/241/243/350/247/243/346/236/220.py +34 -0
- examples/_openaisdk//346/250/241/345/236/213/346/265/213/350/257/225.py +53 -0
- examples/_openaisdk//351/230/277/351/207/214.py +80 -0
- {meutils/serving/jina/__demo → examples/ann}/__init__.py +1 -1
- examples/ann/main.py +31 -0
- examples/apis/kl.py +28 -0
- examples/apis/x.py +17 -0
- examples/apis/xx.py +17 -0
- examples/arq_demo/demo.py +3 -0
- examples/backgroundtasks.py +25 -0
- examples/bserver.py +513 -21
- examples/cache_demo/HermesCache_demo.py +81 -0
- examples/cache_demo/acacge.py +26 -0
- examples/cache_demo/x.py +31 -0
- {meutils/docarray_utils → examples/caches}/__init__.py +1 -1
- examples/caches/llmcache.py +18 -0
- examples/celery_demo/product_task.py +2 -0
- examples/demo.py +17 -1
- examples/fastapi_caching.py +59 -0
- {meutils/dependencies → examples/gr}/__init__.py +1 -1
- examples/gr/d.py +22 -0
- examples/gr/demo.py +30 -0
- examples/ip2/345/234/260/345/214/272.py +16 -0
- examples/jinja2_demo/j2_demo.py +20 -1
- examples/json/346/240/207/345/207/206/345/214/226.py +54 -0
- examples/md.py +29 -0
- {meutils/serving/jina → examples/nesc}/__init__.py +1 -1
- examples/nesc/main.py +76 -0
- examples/orm/mysql_orm.py +113 -0
- examples/orm/sql_creater.py +57 -0
- examples/orm/sqlm.py +134 -0
- examples/rq_demo/fns.py +18 -0
- examples/rq_demo/redis/351/230/237/345/210/227.py +14 -7
- examples/rq_demo/redis/351/230/237/345/210/227_add_chatfire.py +30 -0
- examples/size_map.py +43 -0
- examples/test.py +59 -0
- examples/webs/__init__.py +11 -0
- examples/webs/main.py +34 -0
- examples/x.py +13 -0
- examples//345/216/273/346/260/264/345/215/260.py +20 -0
- examples//346/226/207/346/241/243/346/231/272/350/203/275/__init__.py +11 -0
- meutils/_utils.py +15 -6
- meutils/ai_audio/asr/__init__.py +3 -2
- meutils/ai_audio/asr/cf_asr.py +53 -0
- meutils/ai_audio/asr/de.py +11 -0
- meutils/ai_audio/asr/fast_asr.py +15 -7
- meutils/ai_audio/asr/openai_asr.py +83 -6
- meutils/ai_audio/fast_asr.py +8 -4
- meutils/ai_audio/tts/EdgeTTS.py +33 -7
- meutils/ai_audio/tts/openai_tts.py +24 -20
- meutils/ai_audio/tts/tts_ui.py +1 -0
- meutils/ai_audio/utils.py +9 -0
- meutils/ai_cv/__init__.py +0 -1
- meutils/ai_cv/ocr.py +3 -2
- meutils/ai_cv/utils.py +154 -0
- meutils/ai_video/avmerge.py +6 -0
- meutils/ai_video/video.py +11 -2
- meutils/{api → apis}/__init__.py +1 -1
- meutils/apis/ali_apis.py +60 -0
- meutils/apis/audio/__init__.py +10 -0
- meutils/apis/audio/deepinfra.py +59 -0
- meutils/apis/audio/fish.py +248 -0
- meutils/apis/baidu/__init__.py +9 -0
- meutils/apis/baidu/bdaitpzs.py +229 -0
- meutils/apis/baidu/test.py +78 -0
- meutils/apis/chatglm/__init__.py +11 -0
- meutils/apis/chatglm/glm_video.py +273 -0
- meutils/apis/chatglm/glm_video_api.py +116 -0
- meutils/apis/chatglm/images.py +63 -0
- meutils/apis/chatglm/temp.py +259 -0
- meutils/apis/chatglm/x.py +31 -0
- meutils/{api → apis}/common.py +10 -6
- meutils/apis/fal/__init__.py +11 -0
- meutils/apis/fal/files.py +53 -0
- meutils/apis/fal/images.py +57 -0
- meutils/apis/fal/images_.py +72 -0
- meutils/apis/fal/videos.py +77 -0
- meutils/apis/firecrawl.py +45 -0
- meutils/apis/gitee/__init__.py +11 -0
- meutils/apis/gitee/images/__init__.py +9 -0
- meutils/apis/gitee/images/kolors.py +99 -0
- meutils/apis/hailuoai/__init__.py +11 -0
- meutils/apis/hailuoai/demo.py +34 -0
- meutils/apis/hailuoai/hasha_new.py +248 -0
- meutils/apis/hailuoai/music.py +11 -0
- meutils/apis/hailuoai/upload.py +116 -0
- meutils/apis/hailuoai/videos.py +460 -0
- meutils/apis/hailuoai/yy.py +242 -0
- meutils/apis/hf/__init__.py +11 -0
- meutils/apis/hf/got_ocr.py +64 -0
- meutils/apis/hf/gradio.py +34 -0
- meutils/apis/hf/hivisionidphotos.py +80 -0
- meutils/apis/hf/kolors.py +68 -0
- meutils/apis/hf/kolors_virtual_try_on.py +107 -0
- meutils/apis/hf/r.py +53 -0
- meutils/apis/hf/x.py +26 -0
- meutils/apis/hf//350/257/201/344/273/266/347/205/247.py +41 -0
- meutils/apis/hunyuan/__init__.py +11 -0
- meutils/apis/hunyuan/image_tools.py +84 -0
- meutils/apis/images/__init__.py +11 -0
- meutils/apis/images/deepinfra.py +92 -0
- meutils/apis/images/demo.py +150 -0
- meutils/apis/images/eidt.py +36 -0
- meutils/apis/images/flux/__init__.py +11 -0
- meutils/apis/images/flux/fluxpro.py +108 -0
- meutils/apis/images/flux/mystic.py +116 -0
- meutils/apis/images/ideogram/__init__.py +10 -0
- meutils/apis/images/ideogram/ideogram_images.py +193 -0
- meutils/apis/images/prodia/__init__.py +12 -0
- meutils/apis/images/prodia/faceswap.py +76 -0
- meutils/apis/images/recraft.py +152 -0
- meutils/apis/images/virtual_try_on/__init__.py +11 -0
- meutils/apis/images/virtual_try_on/images.py +65 -0
- meutils/apis/jiema/24mail.py +96 -0
- meutils/apis/jiema/__init__.py +11 -0
- meutils/apis/jiema/yezi.py +97 -0
- meutils/apis/jimeng/__init__.py +11 -0
- meutils/apis/jimeng/common.py +328 -0
- meutils/apis/jimeng/doubao.py +68 -0
- meutils/apis/jimeng/doubao_utils.py +175 -0
- meutils/apis/jimeng/files.py +263 -0
- meutils/apis/jimeng/images.py +140 -0
- meutils/apis/jimeng/lip_sync.py +11 -0
- meutils/apis/jina.py +55 -0
- meutils/apis/kling/__init__.py +11 -0
- meutils/apis/kling/api.py +60 -0
- meutils/apis/kling/images.py +174 -0
- meutils/apis/kling/kolors_virtual_try_on.py +111 -0
- meutils/apis/kling/kolors_virtual_try_on_web.py +126 -0
- meutils/apis/kling/videos.py +67 -0
- meutils/apis/kling//351/211/264/346/235/203.py +34 -0
- meutils/apis/kuaidi.py +32 -0
- meutils/apis/kuaishou/__init__.py +10 -0
- meutils/apis/kuaishou/klingai.py +523 -0
- meutils/apis/kuaishou/klingai_video.py +197 -0
- meutils/apis/kuaishou/kolors.py +189 -0
- meutils/apis/llm_qa.py +55 -0
- meutils/apis/luma/__init__.py +11 -0
- meutils/apis/luma/luma.py +123 -0
- meutils/apis/minicpm/__init__.py +9 -0
- meutils/apis/minicpm/luca.py +137 -0
- meutils/apis/monica/__init__.py +11 -0
- meutils/apis/monica/llm.py +11 -0
- meutils/apis/napkin/__init__.py +11 -0
- meutils/apis/napkin/icons.py +42 -0
- meutils/apis/niutrans.py +73 -0
- meutils/apis/oneapi/__init__.py +11 -0
- meutils/apis/oneapi/channel.py +68 -0
- meutils/apis/oneapi/common.py +135 -0
- meutils/apis/oneapi/log.py +47 -0
- meutils/apis/oneapi/token.py +48 -0
- meutils/apis/oneapi/token_.py +112 -0
- meutils/apis/oneapi/user.py +100 -0
- meutils/apis/oneapi/utils.py +47 -0
- meutils/apis/pixverse/__init__.py +11 -0
- meutils/apis/pixverse/pixverse.py +150 -0
- meutils/apis/proxy/__init__.py +11 -0
- meutils/apis/proxy/ips.py +178 -0
- meutils/apis/remini/__init__.py +11 -0
- meutils/apis/remini/remini.py +89 -0
- meutils/apis/replicateai/__init__.py +11 -0
- meutils/apis/replicateai/images.py +79 -0
- meutils/apis/replicateai/raw.py +53 -0
- meutils/apis/runwayml/__init__.py +10 -0
- meutils/apis/runwayml/gen.py +143 -0
- meutils/apis/search/__init__.py +11 -0
- meutils/apis/search/baichuan.py +11 -0
- meutils/apis/search/metaso.py +218 -0
- meutils/apis/search/metaso_.py +77 -0
- meutils/apis/search/n.py +99 -0
- meutils/apis/search/searxng.py +42 -0
- meutils/apis/search_music.py +39 -0
- meutils/apis/siliconflow/__init__.py +9 -0
- meutils/apis/siliconflow/audio.py +63 -0
- meutils/apis/siliconflow/image_to_image.py +116 -0
- meutils/apis/siliconflow/images.py +154 -0
- meutils/apis/siliconflow/rerankers.py +40 -0
- meutils/apis/siliconflow/text_to_image.py +132 -0
- meutils/apis/siliconflow/utils.py +66 -0
- meutils/apis/siliconflow/videos.py +102 -0
- meutils/apis/sunoai/__init__.py +10 -0
- meutils/apis/sunoai/haimian.py +135 -0
- meutils/apis/sunoai/suno.py +373 -0
- meutils/apis/textcard/__init__.py +11 -0
- meutils/apis/textcard/demo.py +25 -0
- meutils/apis/textcard/hanyuxinjie.py +81 -0
- meutils/apis/textin.py +159 -0
- meutils/apis/to_image/__init__.py +11 -0
- meutils/apis/to_image/html2image.py +29 -0
- meutils/apis/to_image/md.py +29 -0
- meutils/apis/to_image/url2image.py +41 -0
- meutils/apis/together/__init__.py +11 -0
- meutils/apis/together/images.py +80 -0
- meutils/apis/translator/__init__.py +9 -0
- meutils/apis/translator/deeplx.py +55 -0
- meutils/apis/tripo3d/__init__.py +11 -0
- meutils/apis/tripo3d/images.py +106 -0
- meutils/apis/ts.py +60 -0
- meutils/apis/uptime_kuma/__init__.py +11 -0
- meutils/apis/uptime_kuma/common.py +56 -0
- meutils/apis/uptime_kuma//345/233/275/344/272/247/345/210/206/347/273/204.py +68 -0
- meutils/apis/utils.py +47 -0
- meutils/apis/videos/__init__.py +11 -0
- meutils/apis/videos/sora.py +16 -0
- meutils/apis/vidu/__init__.py +9 -0
- meutils/apis/vidu/vidu_video.py +254 -0
- meutils/apis/vidu/x.py +14 -0
- meutils/apis/voice_clone/__init__.py +10 -0
- meutils/apis/voice_clone/fish.py +236 -0
- meutils/apis/voice_clone/fish_api.py +16 -0
- meutils/apis/web_search.py +31 -0
- meutils/apis/yezi.py +97 -0
- meutils/async_task/__init__.py +13 -0
- meutils/async_task/celery_config.py +106 -0
- meutils/async_task/common.py +37 -0
- meutils/async_task/demo_create_tasks.py +73 -0
- meutils/async_task/tasks/__init__.py +11 -0
- meutils/async_task/tasks/_all.py +20 -0
- meutils/async_task/tasks/hailuo.py +24 -0
- meutils/async_task/tasks/kling.py +30 -0
- meutils/async_task/tasks/replicateai.py +24 -0
- meutils/async_task/tasks/test.py +124 -0
- meutils/async_task/tasks/vidu.py +28 -0
- meutils/async_task/utils.py +191 -0
- meutils/async_task//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
- meutils/async_utils/asyncer_.py +37 -0
- meutils/async_utils/background.py +68 -0
- meutils/async_utils/common.py +136 -16
- meutils/async_utils/test.py +47 -0
- meutils/cache_utils.py +29 -23
- meutils/caches/__init__.py +9 -0
- meutils/caches/acache.py +45 -0
- meutils/caches/redis_cache.py +63 -0
- meutils/clis/check_api.py +66 -0
- meutils/clis/cli.py +1 -1
- meutils/common.py +56 -17
- meutils/config_utils/__init__.py +11 -0
- meutils/config_utils/lark_utils/__init__.py +11 -0
- meutils/config_utils/lark_utils/common.py +385 -0
- meutils/config_utils/lark_utils/demo.py +13 -0
- meutils/config_utils/lark_utils/x.py +50 -0
- meutils/config_utils/manager.py +108 -0
- meutils/crawlers/__init__.py +11 -0
- meutils/data/VERSION +1 -1
- meutils/data/cowboy-hat-face.webp +0 -0
- meutils/data/oneapi/FOOTER.md +7 -0
- meutils/data/oneapi/NOTICE.md +138 -0
- meutils/data/oneapi/__init__.py +15 -0
- meutils/db/orm.py +179 -0
- meutils/db/redis_db.py +87 -0
- meutils/decorators/cache.py +1 -1
- meutils/decorators/common.py +84 -5
- meutils/decorators/contextmanagers.py +17 -6
- meutils/decorators/fastapi_decorator.py +77 -3
- meutils/decorators/polling.py +46 -0
- meutils/decorators/retry.py +150 -26
- meutils/fastapi_utils/__init__.py +11 -0
- meutils/fastapi_utils/exceptions/http_error.py +72 -0
- meutils/fastapi_utils/exceptions/validation_error.py +44 -0
- meutils/hash_utils.py +9 -4
- meutils/hooks/__init__.py +11 -0
- meutils/hooks/hook_test.py +174 -0
- meutils/hooks/wechat.py +162 -0
- meutils/hooks/wechat_channel.py +303 -0
- meutils/init/evn.py +1 -1
- meutils/io/files_utils.py +232 -0
- meutils/io/image.py +148 -10
- meutils/io/x.py +75 -0
- meutils/llm/__init__.py +10 -0
- meutils/llm/check_api.py +109 -0
- meutils/llm/check_utils.py +106 -0
- meutils/llm/clients.py +38 -0
- meutils/llm/completions/__init__.py +11 -0
- meutils/llm/completions/agents/__init__.py +11 -0
- meutils/llm/completions/agents/file.py +125 -0
- meutils/llm/completions/cp.py +112 -0
- meutils/llm/completions/delilegal.py +135 -0
- meutils/llm/completions/dify.py +81 -0
- meutils/llm/completions/kimi.py +47 -0
- meutils/llm/completions/modelscope.py +11 -0
- meutils/{fileparser/filetype.py → llm/completions/oi.py} +5 -3
- meutils/llm/completions/rag/__init__.py +11 -0
- meutils/llm/completions/rag/fire.py +157 -0
- meutils/llm/completions/rag/qwen.py +11 -0
- meutils/llm/completions/rag/rag.py +41 -0
- meutils/llm/completions/rag.py +38 -0
- meutils/llm/completions/tryblend.py +201 -0
- meutils/llm/completions/tune.py +284 -0
- meutils/llm/completions/x.py +26 -0
- meutils/llm/completions/xx.py +61 -0
- meutils/llm/completions/yuanbao.py +176 -0
- meutils/llm/demo.py +114 -0
- meutils/llm/functions/__init__.py +11 -0
- meutils/llm/mappers.py +15 -0
- meutils/llm/openai_utils/__init__.py +11 -0
- meutils/llm/openai_utils/common.py +284 -0
- meutils/llm/openai_utils/tool_outputs.py +45 -0
- meutils/llm/output_parsers/__init__.py +80 -0
- meutils/llm/prompts/__init__.py +244 -0
- meutils/llm/prompts/demo.py +155 -0
- meutils/llm/prompts/html2image_test.py +19 -0
- meutils/llm/utils.py +133 -0
- meutils/llm/x.py +75 -0
- meutils/notice/feishu.py +40 -9
- meutils/notice/wechat.py +23 -21
- meutils/np_utils.py +10 -1
- meutils/office_automation/pdf.py +6 -1
- meutils/oss/__init__.py +20 -0
- meutils/oss/minio_oss.py +184 -0
- meutils/oss/minio_utils.py +48 -0
- meutils/other/__demo.py +6 -4
- meutils/pandas_utils/__init__.py +1 -0
- meutils/pandas_utils/common.py +31 -0
- meutils/pandas_utils/pd_utils.py +10 -6
- meutils/parsers/__init__.py +10 -0
- meutils/parsers/file_parsers.py +110 -0
- meutils/parsers/fileparser/demo.py +41 -0
- meutils/parsers/fileparser/filetype.py +41 -0
- meutils/pay.py +37 -0
- meutils/pipe.py +37 -4
- meutils/playwright_utils/common.py +20 -12
- meutils/plots/common.py +35 -34
- meutils/queues/demo.py +56 -0
- meutils/queues/smooth_queue.py +120 -0
- meutils/queues/uniform_queue.py +3 -1
- meutils/request_utils/__init__.py +26 -2
- meutils/request_utils/ark.py +47 -0
- meutils/request_utils/crawler.py +34 -5
- meutils/request_utils/jwt_utils/__init__.py +11 -0
- meutils/request_utils/jwt_utils/common.py +42 -0
- meutils/request_utils/volc.py +160 -0
- meutils/schemas/__init__.py +0 -1
- meutils/schemas/baidu_types.py +70 -0
- meutils/schemas/batch_types.py +450 -0
- meutils/schemas/celery_types.py +64 -0
- meutils/schemas/chatfire_types.py +15 -0
- meutils/schemas/chatglm_types.py +197 -0
- meutils/schemas/db/__init__.py +11 -0
- meutils/schemas/db/oneapi_types.py +117 -0
- meutils/schemas/dify_types.py +40 -0
- meutils/schemas/embedding.py +31 -0
- meutils/schemas/fal_types.py +13 -0
- meutils/schemas/fish_types.py +11 -0
- meutils/schemas/hailuo_types.py +208 -0
- meutils/schemas/haimian_types.py +51 -0
- meutils/schemas/idphoto_types.py +43 -0
- meutils/schemas/image_types.py +476 -0
- meutils/schemas/jimeng_types.py +28 -0
- meutils/schemas/jina_types.py +67 -0
- meutils/schemas/kimi_types.py +86 -0
- meutils/schemas/kling_types.py +235 -0
- meutils/schemas/kuaishou_types.py +328 -0
- meutils/schemas/luma_types.py +59 -0
- meutils/schemas/message_types.py +165 -0
- meutils/schemas/message_types_.py +219 -0
- meutils/schemas/metaso_types.py +64 -0
- meutils/schemas/napkin_types.py +85 -0
- meutils/schemas/ocr_types.py +37 -0
- meutils/schemas/oneapi/__init__.py +11 -0
- meutils/schemas/oneapi/_types.py +49 -0
- meutils/schemas/oneapi/common.py +883 -0
- meutils/schemas/oneapi/icons.py +30 -0
- meutils/schemas/oneapi/model_group_info.py +48 -0
- meutils/schemas/oneapi/model_info.py +34 -0
- meutils/schemas/oneapi/models.py +26 -0
- meutils/schemas/oneapi/x.py +26 -0
- meutils/schemas/oneapi//351/207/215/345/256/232/345/220/221.py +132 -0
- meutils/schemas/openai_api_protocol.py +411 -0
- meutils/schemas/openai_types.py +366 -0
- meutils/schemas/pixverse_types.py +88 -0
- meutils/schemas/playwright_types.py +57 -0
- meutils/schemas/prodia_types.py +19 -0
- meutils/schemas/replicate_types.py +112 -0
- meutils/schemas/request_types.py +20 -0
- meutils/schemas/runwayml_types.py +190 -0
- meutils/schemas/siliconflow_types.py +80 -0
- meutils/schemas/step_types.py +19 -0
- meutils/schemas/suno_types.py +319 -0
- meutils/schemas/task_types.py +192 -0
- meutils/schemas/translator_types.py +29 -0
- meutils/schemas/tripo3d_types.py +57 -0
- meutils/schemas/tryblend_types.py +51 -0
- meutils/schemas/video_types.py +62 -0
- meutils/schemas/vidu_types.py +350 -0
- meutils/schemas/wechat_types.py +316 -0
- meutils/schemas/yuanbao_types.py +260 -0
- meutils/serving/celery/__init__.py +8 -0
- meutils/serving/celery/config.py +115 -0
- meutils/serving/celery/router.py +4 -6
- meutils/serving/celery/tasks.py +6 -4
- meutils/serving/celery//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
- meutils/serving/fastapi/common.py +27 -31
- meutils/serving/fastapi/dependencies/__init__.py +0 -1
- meutils/serving/fastapi/dependencies/auth.py +55 -2
- meutils/serving/fastapi/exceptions/http_error.py +67 -2
- meutils/serving/fastapi/exceptions/validation_error.py +18 -2
- meutils/serving/fastapi/lifespans.py +73 -0
- meutils/serving/fastapi/routers/scheduler.py +12 -0
- meutils/serving/fastapi/routers/screenshot.py +47 -0
- meutils/serving/fastapi/routers/spider.py +8 -3
- meutils/serving/fastapi/routers/task.py +48 -0
- meutils/serving/fastapi/utils.py +48 -1
- meutils/serving/streamlit/common.py +1 -1
- meutils/smooth_utils.py +3 -0
- meutils/str_utils/__init__.py +22 -3
- meutils/str_utils/json_utils.py +7 -0
- meutils/str_utils/regular_expression.py +102 -10
- meutils/templates/xx.html +21 -0
- meutils/templates/xxx.html +117 -0
- meutils/todo.py +12 -0
- meutils/tools/token_monitor.py +33 -0
- MeUtils-2024.3.4.13.4.45.dist-info/RECORD +0 -540
- meutils/ai_audio/asr/subtitle.srt +0 -40
- meutils/ai_audio/demo.ipynb +0 -1215
- meutils/ai_audio/example.srt +0 -348
- meutils/ai_audio/new.srt +0 -179
- meutils/ai_audio/subtitles.srt +0 -696
- meutils/ai_audio/tts/new.srt +0 -179
- meutils/ai_audio//350/247/206/351/242/221/345/220/210/345/271/266.sh +0 -32
- meutils/ai_cv/1.jpg +0 -0
- meutils/ai_cv/197.jpg +0 -0
- meutils/ai_cv/2.jpg +0 -0
- meutils/ai_cv/img.png +0 -0
- meutils/ai_cv/invoice.jpg +0 -0
- meutils/ai_cv/tbl.png +0 -0
- meutils/ai_cv/test.png +0 -0
- meutils/ann/README.md +0 -33
- meutils/ann/README_gensim.md +0 -47
- meutils/ann/examples/client.py +0 -59
- meutils/ann/examples/demo.py +0 -24
- meutils/api/deeplx.py +0 -29
- meutils/api/qr.png +0 -0
- meutils/clis/README.md +0 -29
- meutils/clis/__test.sh +0 -17
- meutils/clis/deepseek.txt +0 -8
- meutils/clis/deepseek_13003330042.json +0 -1
- meutils/clis/deepseek_13003872192.json +0 -1
- meutils/clis/deepseek_13852263862.json +0 -1
- meutils/clis/deepseek_13913898681.json +0 -1
- meutils/clis/deepseek_13962978617.json +0 -1
- meutils/clis/deepseek_15251801790.json +0 -1
- meutils/clis/deepseek_15720826383.json +0 -1
- meutils/clis/deepseek_18395563611.json +0 -1
- meutils/clis/deepseek_313303303@qq.com.json +0 -1
- meutils/clis/kimi_state.json +0 -1
- meutils/cmds/README.md +0 -55
- meutils/coding/__init__.py +0 -11
- meutils/coding/find132.py +0 -40
- meutils/db/README.md +0 -51
- meutils/decorators/README.md +0 -17
- meutils/docarray_utils/demo_es.py +0 -34
- meutils/docarray_utils/demo_hnsw.py +0 -55
- meutils/docarray_utils/in_memory.py +0 -38
- meutils/docarray_utils//346/224/271/351/200/240/344/270/213hnsw.py +0 -43
- meutils/io/file.py +0 -20
- meutils/io/img.png +0 -0
- meutils/io/x.yml +0 -1
- meutils/notice/img.png +0 -0
- meutils/notice/todo.md +0 -10
- 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
- meutils/playwright_utils/__test.sh +0 -2
- meutils/playwright_utils/kimi1_cookies.json +0 -1
- meutils/playwright_utils/kimi2_cookies.json +0 -1
- meutils/playwright_utils/kimi_cookies.json +0 -93
- meutils/serving/README.md +0 -1
- meutils/serving/celery/_run.sh +0 -10
- meutils/serving/gui/run.sh +0 -9
- meutils/serving/jina/__demo/client.py +0 -42
- meutils/serving/jina/__demo/flow.svg +0 -1
- meutils/serving/jina/__demo/s.py +0 -34
- meutils/serving/jina/__demo/s2.py +0 -37
- meutils/serving/jina/__demo/server.py +0 -83
- meutils/serving/jina/__demo/test.py +0 -40
- meutils/serving/jina/executors/SentenceEncoder.py +0 -62
- meutils/serving/jina/executors/SentenceEncoder_.py +0 -63
- meutils/serving/jina/executors/__init__.py +0 -46
- meutils/serving/jina/executors/base.py +0 -40
- meutils/serving/jina/nlp_serving/__init__.py +0 -11
- meutils/serving/jina/nlp_serving/word_segmentation.py +0 -40
- meutils/serving/streamlit/conf.yaml +0 -5
- meutils/serving/streamlit/ocr.png +0 -0
- meutils/serving/streamlit/run.sh +0 -17
- meutils/serving/webui/.streamlit/_config.toml +0 -186
- meutils/serving/webui/.streamlit/config.toml +0 -26
- meutils/serving/webui/pages/_1_/345/210/206/350/257/215.py +0 -56
- 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
- meutils/serving/webui/pages/_3_/346/226/207/346/234/254/345/214/271/351/205/215.py +0 -64
- meutils/serving/webui/run.sh +0 -9
- meutils/spark/__init__.py +0 -26
- meutils/tools/monitor.yml +0 -29
- {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/LICENSE +0 -0
- {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/top_level.txt +0 -0
- {meutils → examples}/comp_utils/__init__.py +0 -0
- {meutils → examples}/comp_utils/reverse_metric.py +0 -0
- /meutils/{fileparser/README.md → fastapi_utils/exceptions/__init__.py} +0 -0
- /meutils/{fileparser → parsers/fileparser}/PDF/346/212/275/345/217/226.py" +0 -0
- /meutils/{fileparser → parsers/fileparser}/__init__.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/common.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/__init__.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/__main__.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/filetype.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/helpers.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/match.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/__init__.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/application.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/archive.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/audio.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/base.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/document.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/font.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/image.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/isobmff.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/types/video.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/filetype/utils.py +0 -0
- /meutils/{fileparser → parsers/fileparser}/pdf.py +0 -0
- /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
|
+
"""
|