MeUtils 2025.6.3.9.35.1__py3-none-any.whl → 2025.6.4.17.6.12__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-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/METADATA +261 -261
- {MeUtils-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/RECORD +22 -19
- examples/_openaisdk/openai_sophnet.py +26 -7
- meutils/apis/fal/chat.py +74 -0
- meutils/apis/fal/images.py +9 -3
- meutils/apis/fal/tasks.py +98 -0
- meutils/apis/jimeng/videos.py +30 -10
- meutils/data/VERSION +1 -1
- meutils/llm/check_utils.py +4 -1
- meutils/llm/completions/sophnet.py +61 -0
- meutils/llm/completions/yuanbao.py +2 -2
- meutils/llm/openai_polling/chat.py +0 -3
- meutils/llm/openai_utils/adapters.py +4 -0
- meutils/llm/openai_utils/common.py +21 -2
- meutils/llm/utils.py +52 -21
- meutils/schemas/image_types.py +1 -1
- meutils/schemas/oneapi/common.py +26 -14
- meutils/str_utils/regular_expression.py +6 -2
- {MeUtils-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/LICENSE +0 -0
- {MeUtils-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/WHEEL +0 -0
- {MeUtils-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.6.3.9.35.1.dist-info → MeUtils-2025.6.4.17.6.12.dist-info}/top_level.txt +0 -0
@@ -131,7 +131,7 @@ examples/_openaisdk/openai_qwen.py,sha256=KurTjBr_bN0aFZcMnWeGtEu0bbagYvOfhdYe-p
|
|
131
131
|
examples/_openaisdk/openai_search.py,sha256=HKRTU6y9j_nUfZgrJt2eZ84d7TVT39WN-dcA_BFkVb4,937
|
132
132
|
examples/_openaisdk/openai_sensenova.py,sha256=TnJpHcD1tG5w_x5DsgFgBRWrU8XUkww0uCebgNFfZDM,3216
|
133
133
|
examples/_openaisdk/openai_siliconflow.py,sha256=PSfR9WK1GcBPNtoO-vsCiVjc0NO9rDayBeTq6fO1c30,1513
|
134
|
-
examples/_openaisdk/openai_sophnet.py,sha256=
|
134
|
+
examples/_openaisdk/openai_sophnet.py,sha256=Z0ZmW9jWmwYWWp0sr6uacVwLb8pa8UPG25mw1Zu8_1c,1653
|
135
135
|
examples/_openaisdk/openai_step.py,sha256=rwXrGRs5CHhWpNl9oeIHltErp1Or_B3PVKNAoMGY-0c,1054
|
136
136
|
examples/_openaisdk/openai_test.py,sha256=gjPveJYkI_MqCePoVZ6kNlEEChRgedE2hzMkN7gZuqI,1909
|
137
137
|
examples/_openaisdk/openai_together.py,sha256=o9FQKDdLwx8L0zMxrceIakymT2GqFfZ2v4UjVaLyB8M,1591
|
@@ -367,11 +367,13 @@ meutils/apis/dreamfaceapp/audios.py,sha256=msI3a9WfZFcfZu2O1RNJ2DsTf0Ow_XxG1eJL0
|
|
367
367
|
meutils/apis/dreamfaceapp/images.py,sha256=Igzn2BgdPJ0_78vsdZGxLqk-FWRrr_kfOtv0et0Nz5g,3364
|
368
368
|
meutils/apis/dreamfaceapp/videos.py,sha256=xtz4GYRTdVE-D7xxFpSaH5Kl5ewXDx9Ogvtkf9LKXUc,4049
|
369
369
|
meutils/apis/fal/__init__.py,sha256=A7w3ZAS7Tv20N4X4Em6NshDxKSCPAzaPxHJTbM3BbyM,272
|
370
|
+
meutils/apis/fal/chat.py,sha256=ppDPIS7tlYVrcAeE1uwRRs7-_a9aJJiA83dnpwrzJl4,2426
|
370
371
|
meutils/apis/fal/files.py,sha256=Gppdo96uw8-TCDr8P691jV7dK9Si-E-kJXFJR5BVt-Q,1373
|
371
|
-
meutils/apis/fal/images.py,sha256=
|
372
|
+
meutils/apis/fal/images.py,sha256=lm7oRrqG7zVrUkUrQjH19vHjwJw00hqIEp1Q5In_PWI,11757
|
372
373
|
meutils/apis/fal/images_.py,sha256=C-C1TTQtMJ6RRcd-4FeYPn0R5IpPRPUFmBbrTVs_ypA,1446
|
373
374
|
meutils/apis/fal/kling_videos.py,sha256=kL4SRpZafRSCRODtiNqeXauxfamHNdcBTE65BrG1rVA,2554
|
374
375
|
meutils/apis/fal/pd.py,sha256=oPrMK_FJqohl2Kf0U0it8SqgvIlSEYFcSX8sfVkD8bU,311
|
376
|
+
meutils/apis/fal/tasks.py,sha256=_SDfMFeC1FAjzuTERm3Y75Dda_6h84dslnbsPoZA94Q,3536
|
375
377
|
meutils/apis/fal/videos.py,sha256=SSJlJRptNGe2k4amlQOAbsYuwoAogLGr35C6KkcgBQM,3593
|
376
378
|
meutils/apis/gitee/__init__.py,sha256=rmAktsUvEtk7_F28P5C65wuu00nmrbu5bOw6PiCRTS0,271
|
377
379
|
meutils/apis/gitee/色情图片识别.py,sha256=liCftD7sL6Fw4Aq6r1PY-qxsxm5XkgVdDvlDR39lrEU,757
|
@@ -433,7 +435,7 @@ meutils/apis/jimeng/doubao_images.py,sha256=Aeq1hve2PiO3baP50Augsu0u2YFlC7r_X5jg
|
|
433
435
|
meutils/apis/jimeng/doubao_utils.py,sha256=d9KDNkqKN4oxaJRAeGNMouRvzHEhIRXzN3T_HjtTXdM,6025
|
434
436
|
meutils/apis/jimeng/files.py,sha256=AlsAlQGufGm84TldUBLFZpZQGD6INN5xIwHql9ocPj4,11310
|
435
437
|
meutils/apis/jimeng/images.py,sha256=c8kUrFTA3i_Pua3M76gAMZcMNNfi1LeqgKF1h_6o-qs,23013
|
436
|
-
meutils/apis/jimeng/videos.py,sha256=
|
438
|
+
meutils/apis/jimeng/videos.py,sha256=MRDXz96BYEuS4vVCHeXaoNE6nfpq0B6UCf1_dafCE-8,6127
|
437
439
|
meutils/apis/jimeng/videos_videos.py,sha256=A6oWLKcrb6YMIumqUMQS3KVP9bhOEKLUOIlAUlbREmE,12259
|
438
440
|
meutils/apis/jina/__init__.py,sha256=WnZ4LOv-bzC1brd5FZHOHmgq4c0UaFbnksEj2_LzXxQ,292
|
439
441
|
meutils/apis/jina/common.py,sha256=dwSJboUcZtvBTKRcvAUcgMD933VfYCUBDdtxbw1ioiE,1099
|
@@ -577,7 +579,7 @@ meutils/config_utils/lark_utils/demo.py,sha256=3g0Fs7oLaeW75T60gYWMLgyNg1OnfOjfH
|
|
577
579
|
meutils/config_utils/lark_utils/x.py,sha256=MlMQGhehP9xMEgetxVCX68XFaosfKoW1JA5cZ3JqN2w,1857
|
578
580
|
meutils/crawlers/__init__.py,sha256=TBU4xA-IOsHV-0yIkW7YXxn_QT7TT8NncqxO7IykEfs,271
|
579
581
|
meutils/data/SimHei.ttf,sha256=-XEnekS5yHP_URkT4XBI2w22ylV-KxudhkeIYFbrILA,10062565
|
580
|
-
meutils/data/VERSION,sha256=
|
582
|
+
meutils/data/VERSION,sha256=0YY67RQBhag50alMG-8-CRsi-Ae3vLWSUkqViv4xuWI,19
|
581
583
|
meutils/data/_FLAG,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
582
584
|
meutils/data/_SUCCESS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
583
585
|
meutils/data/__init__.py,sha256=Hfwkkxs4zHqKhxht0YrhS566a9P5axtmgNvM5wF8ceQ,243
|
@@ -659,12 +661,12 @@ meutils/jwt_utils/__init__.py,sha256=zs4pIDk4sQ82o7meMwt64_tv2WBMRTaXX9doe0ilvvs
|
|
659
661
|
meutils/jwt_utils/common.py,sha256=u2PPQJ9S-83y8f3Sb5L2OCRP7o-xV56EAmlzMZ8Je0Q,2352
|
660
662
|
meutils/llm/__init__.py,sha256=mYv0QpACLd-wz4htIduPuTU3mX06_Y8ZprxDohtZGBM,244
|
661
663
|
meutils/llm/check_api.py,sha256=Cu60Rvp7zLmmazuLXxpK4z-FCab4NrO4nH5LzfYjjoM,3591
|
662
|
-
meutils/llm/check_utils.py,sha256=
|
664
|
+
meutils/llm/check_utils.py,sha256=_VskvZPMaklni2WJXULrtiMaixhHfnWBrqA8gNn_9K0,8094
|
663
665
|
meutils/llm/clients.py,sha256=qZa9WC85Ah4tdEd-EI_P_038mnJLq_z-smaJdwJp-EM,2956
|
664
666
|
meutils/llm/demo.py,sha256=gyGjTxuNFMOa1X4CXaChkq0lcjbKiRsnSRhkeMvsoQk,3822
|
665
667
|
meutils/llm/mappers.py,sha256=ZQLl3OuD06kVMP8bwIpVgAB1UVzMJWUJiZ3vgk-ZjeI,303
|
666
668
|
meutils/llm/models.py,sha256=dDdU_WzcQGdgaFOYtMJpDYmt5uKFKEz2pc0guqNVkSk,3175
|
667
|
-
meutils/llm/utils.py,sha256=
|
669
|
+
meutils/llm/utils.py,sha256=GuM5uu08-iIeE7g6GeJdIz62_5CiLShmA10dIKFGLPI,4823
|
668
670
|
meutils/llm/x.py,sha256=ETvKKDTmDNrik0K2-_a_SEQxyV4X4-fy0JPrAOLNPv4,1732
|
669
671
|
meutils/llm/completions/__init__.py,sha256=q5FEYPpo2f_P44Ghdh9fkrmqZLX2Asso8p-nf-ZTqks,244
|
670
672
|
meutils/llm/completions/chat_gemini.py,sha256=0x9HQxuDAHoWJ79JoaEKKWVNy4PRyd-Et-j8V93NqkY,4395
|
@@ -680,12 +682,13 @@ meutils/llm/completions/modelscope.py,sha256=umPlJuHSL2RR0oNdTIAqts8iqEmGp_MR6Vh
|
|
680
682
|
meutils/llm/completions/qwenllm.py,sha256=AJ9CJVDcvm3hRStb_wYG08VviM5Nlku4bM9-yPhI1Xo,13188
|
681
683
|
meutils/llm/completions/rag.py,sha256=cpQ1aZX2QI1QDfFpODTxWHPYglK6_3qrlUM_KHLBNhc,1112
|
682
684
|
meutils/llm/completions/reasoner.py,sha256=rPIxW1iuvLuGhcOa6PkfcJmrTKtJV-8wRKfA09X09tg,6169
|
685
|
+
meutils/llm/completions/sophnet.py,sha256=qCQrgxhmxoN50DzpFp-UDw4DQfliOhSWCnqra94qj5I,1925
|
683
686
|
meutils/llm/completions/todo.py,sha256=asK_W9Ep3Z_CMaYGZWT8rVpR-T5QeyNHU2Ym1uKTqn8,387
|
684
687
|
meutils/llm/completions/tryblend.py,sha256=NfVRktn1QiE2k60PzEI-LmKuxZCc7mtL_KlsrVcZg4k,8957
|
685
688
|
meutils/llm/completions/tune.py,sha256=FypfUgsB34t-E9xI6WydJYEk_-phscrLOX1iUCeKb_E,10138
|
686
689
|
meutils/llm/completions/x.py,sha256=XE8aCyuhkpYq0nho1mq9lAdRU1yOPc8BpvCpNYYMYqM,630
|
687
690
|
meutils/llm/completions/xx.py,sha256=gizeioftvpIIZdSup72F8v9NM_1dDeULJa4ynqeoVvk,328
|
688
|
-
meutils/llm/completions/yuanbao.py,sha256=
|
691
|
+
meutils/llm/completions/yuanbao.py,sha256=MzF4gYAkIPbIEF8uu94pxaWJX10QtejI1GCOhkYAGbg,7577
|
689
692
|
meutils/llm/completions/agents/__init__.py,sha256=Wklnf7FTHm43hyVwfT8FXX44nqdOTykPb_HORIqDuuw,270
|
690
693
|
meutils/llm/completions/agents/search.py,sha256=GKsk0NRy6jsbSu8E9mdBWObJzroGE-L7Iuo5W2MK_u0,5057
|
691
694
|
meutils/llm/completions/assistants/__init__.py,sha256=1QWMIG5dA2wH7550ZdNpW00NPU9q8C-eXybjTsm1aSU,271
|
@@ -697,11 +700,11 @@ meutils/llm/completions/rag/qwen.py,sha256=1dBNLLbQDRsM-7EGaStcWFU8HRa-rp3RxJ9cp
|
|
697
700
|
meutils/llm/completions/rag/rag.py,sha256=mnC4bZUMuNYuPFXMBqXMofj_ms8uP5MMw1leJ5jXA_k,1209
|
698
701
|
meutils/llm/functions/__init__.py,sha256=It6pcNwRBSh3Em45ooi61lc5tFg8eOYv0BvEFuRjSGQ,271
|
699
702
|
meutils/llm/openai_polling/__init__.py,sha256=qmAMITPtrTD-y57RiJXewuOic7iLKBhx8mz5uvcxsy8,270
|
700
|
-
meutils/llm/openai_polling/chat.py,sha256=
|
703
|
+
meutils/llm/openai_polling/chat.py,sha256=WSQnKEJlZkJjS8CVq6RWouu7FCGgjw5Z5Aj2n1XkYsY,8049
|
701
704
|
meutils/llm/openai_polling/images.py,sha256=qKMk3vCvamS_48ceC-_y2LPpP5XsD476FHG9MUu8kks,1042
|
702
705
|
meutils/llm/openai_utils/__init__.py,sha256=MWyNhP2K49oaHGEZlInZc3XlwqlStFultP8k7HDPAwk,290
|
703
|
-
meutils/llm/openai_utils/adapters.py,sha256=
|
704
|
-
meutils/llm/openai_utils/common.py,sha256=
|
706
|
+
meutils/llm/openai_utils/adapters.py,sha256=1oVAZ6Qw8VbnlBTHELpq8HxMu_kYsYUGkWkZWazxB4c,1863
|
707
|
+
meutils/llm/openai_utils/common.py,sha256=UMZPB4__Xs1iCyccMFrEwTYn1lJJuNIGL-TfblUBM1g,10451
|
705
708
|
meutils/llm/openai_utils/tool_outputs.py,sha256=6mNkm4btgy0uzF98gdmcah1bYmoflXdLz2Sqm0KC_LQ,1224
|
706
709
|
meutils/llm/output_parsers/__init__.py,sha256=EGKvgUD47ReyV5Z9RXDCrdDLgfKMHdoayzsXVmBuQxw,3474
|
707
710
|
meutils/llm/prompts/__init__.py,sha256=VlEEViFoUSRS0EF1rHJXHh9Ik9FpvAiR1luKjHOsUc4,8580
|
@@ -807,7 +810,7 @@ meutils/schemas/fish_types.py,sha256=yC0ZFr3Ebh8F0OhtMsXYaIfNNvzOM2LT9YtKTaRoHGU
|
|
807
810
|
meutils/schemas/hailuo_types.py,sha256=ubG6qIU506tq51UsURuwlPhtPNa49xHSoBzBtW7jg_0,7431
|
808
811
|
meutils/schemas/haimian_types.py,sha256=jGu484UviAeBgy5OIUyRY4uYCxXfv16zDPqiJQr9wNQ,1364
|
809
812
|
meutils/schemas/idphoto_types.py,sha256=nuHbpppejRSkJCiQ7YKx0Gnke0ShKZhOvdg0e7tk9-0,1074
|
810
|
-
meutils/schemas/image_types.py,sha256=
|
813
|
+
meutils/schemas/image_types.py,sha256=4R2zZDdvT29Mmalvf2AGXXCi2OSN-V5hPyLyvk0bHb8,14695
|
811
814
|
meutils/schemas/jimeng_types.py,sha256=Uiqbtd4scpDHDTuXQaS8_6em8PrSnuQb_JkCQuBYkOM,1944
|
812
815
|
meutils/schemas/jina_types.py,sha256=SLRRBCap2B1uXnHF7Sgnlz1Work8HvdIltjj4oVlGTk,8826
|
813
816
|
meutils/schemas/kimi_types.py,sha256=PjCgHwCDNzKasn4X6rUzvOENqKYT3xj07cgp71IdsDA,3607
|
@@ -843,7 +846,7 @@ meutils/schemas/db/__init__.py,sha256=m1maURVoM6dIW0yt6ELZrZTzULtkHybVOSXtHNJRVI
|
|
843
846
|
meutils/schemas/db/oneapi_types.py,sha256=3t2m0H80saEXmYUZfVFrtEaY117GjZTsSa1GKgkJzqQ,3896
|
844
847
|
meutils/schemas/oneapi/__init__.py,sha256=uevbi3QAvFzN9WPbx9bYKTDyKt7P2ueZO6W0nSiD0sk,289
|
845
848
|
meutils/schemas/oneapi/_types.py,sha256=ClvAaNy3SahEN8lL8KEErHTD6HANelXUeKc_3iLfosQ,1488
|
846
|
-
meutils/schemas/oneapi/common.py,sha256=
|
849
|
+
meutils/schemas/oneapi/common.py,sha256=NI81bohLNmPmHnhzP73KMyH2r1P8dabPhY41lxya8q8,40424
|
847
850
|
meutils/schemas/oneapi/icons.py,sha256=T7W5gInBJoHe62wzMimbG_UI-wn3_-rmQ1O4O2z-CQY,1089
|
848
851
|
meutils/schemas/oneapi/model_group_info.py,sha256=rGtflYJuFIjk5MsVEvK9JUR4IciX8jfErqeLqf8DIlQ,1586
|
849
852
|
meutils/schemas/oneapi/model_info.py,sha256=_uwKEPIIqm7ZYfhmpxtXB2QNsS83SpJY-OaBzvogC9w,772
|
@@ -898,7 +901,7 @@ meutils/settings/demo.py,sha256=Ht3t6LREQsKa5W2owNrOZNAoZfS-zItIFNwGhhPj-4k,484
|
|
898
901
|
meutils/str_utils/Translator.py,sha256=tfvNQIeVCqmX9yW6jobeibDHG6X-XecSSAx9kJIFFyw,1258
|
899
902
|
meutils/str_utils/__init__.py,sha256=RvuIBw2SioCBD1q69k3AiHLEqBOkUd4ojIGX5uCdYtM,8147
|
900
903
|
meutils/str_utils/json_utils.py,sha256=OXilMxLDtoFq5DAo3mHrIGx3GTOqHARgkcq8-gVYELM,1913
|
901
|
-
meutils/str_utils/regular_expression.py,sha256=
|
904
|
+
meutils/str_utils/regular_expression.py,sha256=ZtwhcHUu5gqaVy-iw2Ahx9DaSdmcZNr-6idHTLo2AH0,6127
|
902
905
|
meutils/str_utils/__translater/__init__.py,sha256=mtDbKL_Qdkeq5VPVO1M4ejf9H8PzKM5h7iepqkBG8N0,277
|
903
906
|
meutils/str_utils/__translater/tencent.py,sha256=1E_56l6-A49Yuz2ZrMKxt-QJfcf0xDYN2X0dg58Dytk,1408
|
904
907
|
meutils/str_utils/__translater/translater.py,sha256=A_9NLVvkjzPd9omIcJGhux21D-gcCxemyrZ7o6uGx_Q,1238
|
@@ -972,9 +975,9 @@ meutils/tools/seize.py,sha256=nOKAS63w-Lbi48I0m2MPhdsokUTwxco0laPxYVmW4Mw,1064
|
|
972
975
|
meutils/tools/service_monitor.py,sha256=ibsLtBN2g2DL7ZnLJ8vhiZOiOcqTAyx711djDdBK-3M,1255
|
973
976
|
meutils/tools/sys_monitor.py,sha256=6MoyzrItqDUOSjfHcMJmMofQkEPTW36CT_aKui0rg84,429
|
974
977
|
meutils/tools/token_monitor.py,sha256=Np-YK-R4P4IPAXyZvMxwvXI4sFmNJQAQK1lSegNaYpA,997
|
975
|
-
MeUtils-2025.6.
|
976
|
-
MeUtils-2025.6.
|
977
|
-
MeUtils-2025.6.
|
978
|
-
MeUtils-2025.6.
|
979
|
-
MeUtils-2025.6.
|
980
|
-
MeUtils-2025.6.
|
978
|
+
MeUtils-2025.6.4.17.6.12.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
979
|
+
MeUtils-2025.6.4.17.6.12.dist-info/METADATA,sha256=L5zDQeY4ZnDrRI9gtDvOl_XkhMdDv3WYE2NlUDEqky0,32832
|
980
|
+
MeUtils-2025.6.4.17.6.12.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
981
|
+
MeUtils-2025.6.4.17.6.12.dist-info/entry_points.txt,sha256=lufZlBHRqqZKdY-ZQJ4CSZb0qhV5hQC37egZna9M7ug,357
|
982
|
+
MeUtils-2025.6.4.17.6.12.dist-info/top_level.txt,sha256=cInfxMmkgNOskurdjwP5unau4rA7Uw48nu07tYhS7KY,22
|
983
|
+
MeUtils-2025.6.4.17.6.12.dist-info/RECORD,,
|
@@ -18,20 +18,39 @@ client = OpenAI(
|
|
18
18
|
base_url=os.getenv("SOPHNET_BASE_URL"),
|
19
19
|
# api_key=os.getenv("SOPHNET_API_KEY"),
|
20
20
|
|
21
|
-
api_key="
|
21
|
+
api_key="7XUcXdO6sf2GEnfbHou9J8-J4NBcZ0eo2kL4ziK43qznHlUS5d5amQtS1uApdOsUbS6UMHoMQbjSBJOscVraSg"
|
22
22
|
|
23
23
|
)
|
24
24
|
|
25
25
|
# EZvbHTgRIFKQaRpT92kFVCnVZBJXuWCsqw89nAfZZQC5T4A_57QXba21ZKpVCIcBpFb-WBemZ7BNZdJjCHyn1A
|
26
26
|
|
27
27
|
model = "DeepSeek-Prover-V2"
|
28
|
-
model = "DeepSeek-R1"
|
29
|
-
model = "DeepSeek-v3"
|
28
|
+
# model = "DeepSeek-R1"
|
29
|
+
# model = "DeepSeek-v3"
|
30
30
|
|
31
31
|
prompt = """
|
32
|
-
Complete the following Lean 4 code
|
32
|
+
Complete the following Lean 4 code:
|
33
|
+
|
34
|
+
```lean4
|
35
|
+
import Mathlib
|
36
|
+
|
37
|
+
|
38
|
+
theorem putnam_2015_a4
|
39
|
+
(S : ℝ → Set ℤ)
|
40
|
+
(f : ℝ → ℝ)
|
41
|
+
(p : ℝ → Prop)
|
42
|
+
(hS : S = fun (x : ℝ) ↦ {n : ℤ | n > 0 ∧ Even ⌊n * x⌋})
|
43
|
+
(hf : f = fun (x : ℝ) ↦ ∑' n : S x, 1 / 2 ^ (n : ℤ))
|
44
|
+
(hp : ∀ l, p l ↔ ∀ x ∈ Set.Ico 0 1, f x ≥ l)
|
45
|
+
: IsGreatest p ((4 / 7) : ℝ ) := by
|
46
|
+
```
|
47
|
+
|
48
|
+
Before producing the Lean 4 code to formally prove the given theorem, provide a detailed proof plan outlining the main proof steps and strategies.
|
49
|
+
The plan should highlight key ideas, intermediate lemmas, and proof structures that will guide the construction of the final formal proof.
|
33
50
|
"""
|
34
51
|
|
52
|
+
prompt = "1+1"
|
53
|
+
|
35
54
|
messages = [
|
36
55
|
{'role': 'user', 'content': prompt}
|
37
56
|
]
|
@@ -40,8 +59,8 @@ response = client.chat.completions.create(
|
|
40
59
|
|
41
60
|
messages=messages,
|
42
61
|
stream=True,
|
43
|
-
max_tokens=10,
|
62
|
+
# max_tokens=10,
|
44
63
|
)
|
45
64
|
print(response)
|
46
|
-
|
47
|
-
|
65
|
+
for chunk in response:
|
66
|
+
print(chunk)
|
meutils/apis/fal/chat.py
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : llm
|
5
|
+
# @Time : 2025/6/4 13:33
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.schemas.openai_types import CompletionRequest
|
13
|
+
from meutils.llm.utils import oneturn2multiturn
|
14
|
+
|
15
|
+
from fal_client.client import AsyncClient, SyncClient, Status, FalClientError
|
16
|
+
|
17
|
+
models = "anthropic/claude-3.7-sonnet,anthropic/claude-3.5-sonnet, anthropic/claude-3-5-haiku, anthropic/claude-3-haiku, google/gemini-pro-1.5, google/gemini-flash-1.5, google/gemini-flash-1.5-8b, meta-llama/llama-3.2-1b-instruct, meta-llama/llama-3.2-3b-instruct, meta-llama/llama-3.1-8b-instruct, meta-llama/llama-3.1-70b-instruct, openai/gpt-4o-mini, openai/gpt-4o, deepseek/deepseek-r1"
|
18
|
+
|
19
|
+
|
20
|
+
async def create(
|
21
|
+
request: CompletionRequest,
|
22
|
+
api_key: Optional[str] = None,
|
23
|
+
):
|
24
|
+
api_key = api_key and api_key.removeprefix("fal-")
|
25
|
+
|
26
|
+
prompt = oneturn2multiturn(request.messages)
|
27
|
+
|
28
|
+
arguments = {
|
29
|
+
"model": request.model,
|
30
|
+
"system_prompt": request.system_instruction,
|
31
|
+
"prompt": prompt,
|
32
|
+
"temperature": request.temperature,
|
33
|
+
"reasoning": request.reasoning_effort is not None,
|
34
|
+
"max_tokens": 1,
|
35
|
+
}
|
36
|
+
client = AsyncClient(key=api_key)
|
37
|
+
if request.stream:
|
38
|
+
async def create_stream():
|
39
|
+
|
40
|
+
stream = client.stream("fal-ai/any-llm", arguments=arguments)
|
41
|
+
|
42
|
+
prefix = ""
|
43
|
+
async for chunk in stream:
|
44
|
+
_ = chunk.get("output")
|
45
|
+
yield _.removeprefix(prefix)
|
46
|
+
prefix = _
|
47
|
+
|
48
|
+
# async for i in create_stream():
|
49
|
+
# print(i)
|
50
|
+
return create_stream()
|
51
|
+
else:
|
52
|
+
response = await client.run("fal-ai/any-llm", arguments=arguments, )
|
53
|
+
# {'error': None, 'output': '1 + 1 = 2', 'partial': False, 'reasoning': None}
|
54
|
+
if response.get("error"):
|
55
|
+
logger.error(response)
|
56
|
+
return response.get("output")
|
57
|
+
|
58
|
+
|
59
|
+
if __name__ == '__main__':
|
60
|
+
request = CompletionRequest(
|
61
|
+
model="anthropic/claude-3.7-sonnet",
|
62
|
+
messages=[
|
63
|
+
# {"role": "user", "content": "1+1"},
|
64
|
+
{"role": "user",
|
65
|
+
"content": [{
|
66
|
+
"type": "text",
|
67
|
+
"text": "1+1"
|
68
|
+
}]
|
69
|
+
},
|
70
|
+
|
71
|
+
],
|
72
|
+
# stream=True,
|
73
|
+
)
|
74
|
+
arun(create(request))
|
meutils/apis/fal/images.py
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
from meutils.pipe import *
|
12
12
|
from meutils.str_utils.regular_expression import parse_url
|
13
|
+
from meutils.io.files_utils import to_url, to_url_fal
|
13
14
|
|
14
15
|
from meutils.schemas.image_types import ImageRequest, FluxImageRequest, SDImageRequest, ImagesResponse
|
15
16
|
from meutils.schemas.fal_types import FEISHU_URL
|
@@ -27,7 +28,7 @@ ideogram_styles = "auto, general, realistic, design, render_3D, anime"
|
|
27
28
|
llms = "anthropic/claude-3.5-sonnet, anthropic/claude-3-5-haiku, anthropic/claude-3-haiku, google/gemini-pro-1.5, google/gemini-flash-1.5, google/gemini-flash-1.5-8b, meta-llama/llama-3.2-1b-instruct, meta-llama/llama-3.2-3b-instruct, meta-llama/llama-3.1-8b-instruct, meta-llama/llama-3.1-70b-instruct, openai/gpt-4o-mini, openai/gpt-4o, deepseek/deepseek-r1"
|
28
29
|
|
29
30
|
|
30
|
-
@alru_cache(ttl=
|
31
|
+
@alru_cache(ttl=300)
|
31
32
|
async def check(token, threshold: float = 0):
|
32
33
|
try:
|
33
34
|
# data = await AsyncClient(key=token).upload(b'', '', '')
|
@@ -96,6 +97,10 @@ async def generate(request: ImageRequest, token: Optional[str] = None):
|
|
96
97
|
elif "kontext" in request.model: # https://fal.ai/models/fal-ai/flux-pro/kontext/max
|
97
98
|
|
98
99
|
if image_urls := parse_url(request.prompt):
|
100
|
+
# 转存
|
101
|
+
if request.user:
|
102
|
+
image_urls = await to_url_fal(image_urls)
|
103
|
+
|
99
104
|
for image_url in image_urls:
|
100
105
|
request.prompt = request.prompt.replace(image_url, "")
|
101
106
|
|
@@ -127,6 +132,7 @@ async def generate(request: ImageRequest, token: Optional[str] = None):
|
|
127
132
|
"image_url": "https://v3.fal.media/files/rabbit/rmgBxhwGYb2d3pl3x9sKf_output.png"
|
128
133
|
}
|
129
134
|
"""
|
135
|
+
|
130
136
|
arguments = {
|
131
137
|
**arguments,
|
132
138
|
|
@@ -248,11 +254,11 @@ if __name__ == '__main__':
|
|
248
254
|
# arun(AsyncClient(key=token).key)
|
249
255
|
|
250
256
|
tokens = arun(get_series(FEISHU_URL))
|
251
|
-
|
257
|
+
tokens = ["246b7383-1500-4a4c-acfb-f91f63b3edd6:d9ec258301cd03b80c6f08aa306c7342"]
|
252
258
|
|
253
259
|
r = []
|
254
260
|
for t in tokens:
|
255
261
|
if arun(check(t)):
|
256
262
|
r.append(t)
|
257
263
|
|
258
|
-
print('\n'.join(r))
|
264
|
+
print('\n'.join(r))
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : videos
|
5
|
+
# @Time : 2025/1/15 15:45
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description : fal-ai/xx 动态路由
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.db.redis_db import redis_aclient
|
13
|
+
|
14
|
+
from meutils.apis.fal.images import check
|
15
|
+
|
16
|
+
from meutils.schemas.task_types import TaskResponse
|
17
|
+
from meutils.schemas.video_types import VideoRequest
|
18
|
+
|
19
|
+
from meutils.schemas.fal_types import FEISHU_URL
|
20
|
+
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
21
|
+
|
22
|
+
from fal_client import AsyncClient
|
23
|
+
from fastapi import APIRouter, File, UploadFile, Query, Form, Depends, Request, HTTPException, status, BackgroundTasks
|
24
|
+
|
25
|
+
# 平台/模型/版本
|
26
|
+
models_mapping = {
|
27
|
+
"kling-video/v2/master/image-to-video": "latentsync",
|
28
|
+
"kling-video/v2/master/text-to-video": "latentsync",
|
29
|
+
"kling-video/lipsync/audio-to-video": "latentsync", # todo
|
30
|
+
"kling-video/lipsync/text-to-video": "latentsync",
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
async def create_task(model:str, request: dict, token: Optional[str] = None):
|
35
|
+
"""https://fal.ai/models/fal-ai/latentsync/api#queue-submit
|
36
|
+
|
37
|
+
"""
|
38
|
+
token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check)
|
39
|
+
logger.debug(request)
|
40
|
+
|
41
|
+
application = f"fal-ai/{model.removeprefix('fal-ai/')}" # fal-ai/flux-pro/kontext
|
42
|
+
|
43
|
+
client = AsyncClient(key=token)
|
44
|
+
response = await client.submit(
|
45
|
+
application=application,
|
46
|
+
arguments=request
|
47
|
+
)
|
48
|
+
request_id = response.request_id
|
49
|
+
await redis_aclient.set(request_id, token, ex=7 * 24 * 3600)
|
50
|
+
"""
|
51
|
+
{'cancel_url': 'https://queue.fal.run/fal-ai/flux-1/requests/db9b7555-efa8-495b-9be2-e6243e6406e6/cancel',
|
52
|
+
'client': <httpx.AsyncClient object at 0x28d607fa0>,
|
53
|
+
'request_id': 'db9b7555-efa8-495b-9be2-e6243e6406e6',
|
54
|
+
'response_url': 'https://queue.fal.run/fal-ai/flux-1/requests/db9b7555-efa8-495b-9be2-e6243e6406e6',
|
55
|
+
'status_url': 'https://queue.fal.run/fal-ai/flux-1/requests/db9b7555-efa8-495b-9be2-e6243e6406e6/status'}
|
56
|
+
|
57
|
+
# AsyncRequestHandle(request_id='548a8736-eb56-492f-a788-c67432821919')
|
58
|
+
|
59
|
+
"""
|
60
|
+
|
61
|
+
return {"request_id": request_id}
|
62
|
+
|
63
|
+
|
64
|
+
@alru_cache(ttl=5)
|
65
|
+
async def get_task(model:str, request_id: str):
|
66
|
+
token = await redis_aclient.get(request_id) # 绑定对应的 token
|
67
|
+
token = token and token.decode()
|
68
|
+
if not token:
|
69
|
+
raise HTTPException(status_code=404, detail="TaskID not found")
|
70
|
+
|
71
|
+
|
72
|
+
application = f"fal-ai/{model.removeprefix('fal-ai/')}"
|
73
|
+
|
74
|
+
client = AsyncClient(key=token)
|
75
|
+
response = await client.status(application, request_id, with_logs=True)
|
76
|
+
|
77
|
+
logger.debug(response.__class__.__name__) # Queued, InProgress, COMPLETED
|
78
|
+
|
79
|
+
if metrics := response.__dict__.get("metrics"): # {'inference_time': 17.29231595993042}
|
80
|
+
response = await client.result(application, request_id)
|
81
|
+
|
82
|
+
|
83
|
+
return response
|
84
|
+
|
85
|
+
|
86
|
+
if __name__ == '__main__':
|
87
|
+
token = "cda184dc-4c6a-4776-be39-79bfd7771328:8c3f25093040ebd10afb93df6921e537"
|
88
|
+
|
89
|
+
model = "fal-ai/flux-1/schnell"
|
90
|
+
request = {
|
91
|
+
"prompt": "Extreme close-up of a single tiger eye, direct frontal view. Detailed iris and pupil. Sharp focus on eye texture and color. Natural lighting to capture authentic eye shine and depth. The word \"FLUX\" is painted over it in big, white brush strokes with visible texture."
|
92
|
+
}
|
93
|
+
|
94
|
+
# r = arun(create_task(model, request, token))
|
95
|
+
|
96
|
+
request_id = "548a8736-eb56-492f-a788-c67432821919"
|
97
|
+
|
98
|
+
r = arun(get_task(model, request_id))
|
meutils/apis/jimeng/videos.py
CHANGED
@@ -18,7 +18,7 @@ import asyncio
|
|
18
18
|
from meutils.pipe import *
|
19
19
|
from meutils.str_utils.json_utils import json_path
|
20
20
|
|
21
|
-
from meutils.schemas.jimeng_types import BASE_URL
|
21
|
+
from meutils.schemas.jimeng_types import BASE_URL
|
22
22
|
from meutils.schemas.video_types import VideoRequest
|
23
23
|
from meutils.schemas.task_types import TaskResponse
|
24
24
|
from meutils.apis.jimeng.common import get_headers, check_token
|
@@ -30,6 +30,8 @@ from fake_useragent import UserAgent
|
|
30
30
|
|
31
31
|
ua = UserAgent()
|
32
32
|
|
33
|
+
FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=gAUw8s" # 视频
|
34
|
+
|
33
35
|
|
34
36
|
async def get_task(task_id: str, token: str = "916fed81175f5186a2c05375699ea40d"):
|
35
37
|
"""
|
@@ -59,8 +61,12 @@ async def get_task(task_id: str, token: str = "916fed81175f5186a2c05375699ea40d"
|
|
59
61
|
|
60
62
|
else:
|
61
63
|
response = TaskResponse(task_id=task_id, metadata=data)
|
62
|
-
if (
|
63
|
-
|
64
|
+
if (
|
65
|
+
(fail_codes := json_path(data, "$..fail_code"))
|
66
|
+
and fail_codes[-1] != "0"
|
67
|
+
and (messages := json_path(data, "$..fail_msg"))
|
68
|
+
):
|
69
|
+
response.message = f"{str(messages).lower().replace('success', '')}:{fail_codes}"
|
64
70
|
response.status = "fail"
|
65
71
|
return response
|
66
72
|
|
@@ -71,11 +77,12 @@ async def get_task(task_id: str, token: str = "916fed81175f5186a2c05375699ea40d"
|
|
71
77
|
response.data = [{"video": _} for _ in video_urls]
|
72
78
|
response.status = "success"
|
73
79
|
|
80
|
+
response.fail_code = fail_codes and fail_codes[-1]
|
74
81
|
return response
|
75
82
|
|
76
83
|
|
77
84
|
async def create_task(request: VideoRequest, token: Optional[str] = None):
|
78
|
-
token = "d2d142fc877e696484cc2fc521127b36" ################### 线上注释掉
|
85
|
+
# token = "d2d142fc877e696484cc2fc521127b36" ################### 线上注释掉
|
79
86
|
|
80
87
|
token = token or await get_next_token_for_polling(FEISHU_URL, check_token)
|
81
88
|
|
@@ -145,6 +152,19 @@ async def create_task(request: VideoRequest, token: Optional[str] = None):
|
|
145
152
|
task_id = task_ids[0]
|
146
153
|
return TaskResponse(task_id=task_id, system_fingerprint=token)
|
147
154
|
|
155
|
+
else:
|
156
|
+
"""
|
157
|
+
{
|
158
|
+
"ret": "1018",
|
159
|
+
"errmsg": "account punish limit ai generate",
|
160
|
+
"systime": "1749027488",
|
161
|
+
"logid": "202506041658081AB86654C66682A7DE2E",
|
162
|
+
"data": null
|
163
|
+
}
|
164
|
+
"""
|
165
|
+
|
166
|
+
raise Exception(data)
|
167
|
+
|
148
168
|
|
149
169
|
if __name__ == '__main__':
|
150
170
|
token = None
|
@@ -156,12 +176,12 @@ if __name__ == '__main__':
|
|
156
176
|
image_url="https://oss.ffire.cc/files/kling_watermark.png", # 图生有问题
|
157
177
|
)
|
158
178
|
|
159
|
-
|
160
|
-
|
161
|
-
|
179
|
+
with timer():
|
180
|
+
r = arun(create_task(request, token))
|
181
|
+
print(r)
|
162
182
|
|
163
183
|
# arun(get_task(r.task_id))
|
164
184
|
# arun(get_task(r.task_id, "d2d142fc877e696484cc2fc521127b36"))
|
165
|
-
task_id = "4620067333122"
|
166
|
-
|
167
|
-
arun(get_task(task_id, token))
|
185
|
+
# task_id = "4620067333122"
|
186
|
+
#
|
187
|
+
# arun(get_task(task_id, token))
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2025.06.
|
1
|
+
2025.06.04.17.06.12
|
meutils/llm/check_utils.py
CHANGED
@@ -168,6 +168,7 @@ async def check_token_for_ppinfra(api_key, threshold: float = 1):
|
|
168
168
|
|
169
169
|
|
170
170
|
@retrying()
|
171
|
+
@rcache(ttl=300)
|
171
172
|
async def check_token_for_sophnet(api_key, threshold: float = 1):
|
172
173
|
if not isinstance(api_key, str):
|
173
174
|
return await check_tokens(api_key, check_token_for_sophnet)
|
@@ -217,6 +218,8 @@ if __name__ == '__main__':
|
|
217
218
|
|
218
219
|
check_valid_token = partial(check_token_for_siliconflow, threshold=-1)
|
219
220
|
|
221
|
+
arun(check_valid_token("sk-tythaoctwemlhkytdlmjcegtnufvhqgmwlncgmoxixdyqoxx"))
|
222
|
+
|
220
223
|
pass
|
221
224
|
# arun(check_valid_token("sk-LlB4W38z9kv5Wy1c3ceeu4PHeIWs6bbWsjr8Om31jYvsucRv", threshold=0.1))
|
222
225
|
|
@@ -245,4 +248,4 @@ if __name__ == '__main__':
|
|
245
248
|
|
246
249
|
# arun(check_token_for_ppinfra("sk_F0kgPyCMTzmOH_-VCEJucOK8HIrbnLGYm_IWxBToHZQ"))
|
247
250
|
|
248
|
-
arun(check_token_for_volc(os.getenv("VOLC_API_KEY")))
|
251
|
+
# arun(check_token_for_volc(os.getenv("VOLC_API_KEY")))
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : sophnet
|
5
|
+
# @Time : 2025/6/4 16:16
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.llm.clients import AsyncOpenAI
|
13
|
+
|
14
|
+
from meutils.llm.check_utils import check_token_for_sophnet as check_token
|
15
|
+
|
16
|
+
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
17
|
+
from meutils.schemas.openai_types import chat_completion, chat_completion_chunk, CompletionRequest, CompletionUsage, \
|
18
|
+
ChatCompletion
|
19
|
+
|
20
|
+
FEISHU_URL = "https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=lxJ27j"
|
21
|
+
|
22
|
+
base_url = "https://www.sophnet.com/api/open-apis/v1"
|
23
|
+
|
24
|
+
|
25
|
+
async def create(request: CompletionRequest, token: Optional[str] = None):
|
26
|
+
"""最终是非流"""
|
27
|
+
token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL, from_redis=True, check_token=check_token)
|
28
|
+
|
29
|
+
client = AsyncOpenAI(base_url=base_url, api_key=token)
|
30
|
+
|
31
|
+
if not request.stream:
|
32
|
+
logger.debug("伪非流")
|
33
|
+
|
34
|
+
data = request.model_dump(exclude_none=True)
|
35
|
+
data['stream'] = True
|
36
|
+
|
37
|
+
chunks = await client.chat.completions.create(**data)
|
38
|
+
|
39
|
+
chunk = None
|
40
|
+
async for chunk in chunks:
|
41
|
+
if chunk.choices:
|
42
|
+
_ = chunk.choices[0].delta.content or ""
|
43
|
+
chat_completion.choices[0].message.content += _
|
44
|
+
# logger.debug(_)
|
45
|
+
if hasattr(chunk, "usage"):
|
46
|
+
chat_completion.usage = chunk.usage
|
47
|
+
|
48
|
+
logger.debug(chat_completion)
|
49
|
+
return chat_completion
|
50
|
+
else:
|
51
|
+
return client.chat.completions.create(**request.model_dump(exclude_none=True))
|
52
|
+
|
53
|
+
|
54
|
+
if __name__ == '__main__':
|
55
|
+
request = CompletionRequest(
|
56
|
+
model="DeepSeek-v3",
|
57
|
+
messages=[{"role": "user", "content": "hi"}],
|
58
|
+
stream=True,
|
59
|
+
)
|
60
|
+
|
61
|
+
arun(create(request))
|
@@ -200,8 +200,8 @@ if __name__ == '__main__':
|
|
200
200
|
# model = 'deep_seek-search'
|
201
201
|
model = 'deep_seek'
|
202
202
|
# model = 'hunyuan_t1'
|
203
|
-
model = 'hunyuan_t1-search'
|
204
|
-
|
203
|
+
# model = 'hunyuan_t1-search'
|
204
|
+
model = 'deep_seek-search'
|
205
205
|
|
206
206
|
arun(Completions().create(
|
207
207
|
CompletionRequest(
|
@@ -82,9 +82,6 @@ class Completions(object):
|
|
82
82
|
data.pop("frequency_penalty", None)
|
83
83
|
data.pop("extra_body", None)
|
84
84
|
|
85
|
-
if '2.5' in request.model and not request.reasoning_effort: # 默认关闭思考
|
86
|
-
data['reasoning_effort'] = "none"
|
87
|
-
|
88
85
|
if "thinking" in request.model:
|
89
86
|
data['model'] = data['model'].removesuffix("-thinking") # 开启思考
|
90
87
|
data['reasoning_effort'] = 'low'
|
@@ -14,6 +14,10 @@ from meutils.schemas.openai_types import CompletionRequest
|
|
14
14
|
from meutils.schemas.image_types import ImageRequest
|
15
15
|
from meutils.llm.openai_utils import chat_completion, chat_completion_chunk, create_chat_completion_chunk
|
16
16
|
|
17
|
+
async def stream_to_nostream(
|
18
|
+
request: CompletionRequest,
|
19
|
+
):
|
20
|
+
pass
|
17
21
|
|
18
22
|
async def chat_for_image(
|
19
23
|
generate: Callable,
|