MeUtils 2025.2.14.14.14.57__py3-none-any.whl → 2025.2.20.17.30.7__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 (35) hide show
  1. MeUtils-2025.2.20.17.30.7.dist-info/METADATA +707 -0
  2. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/RECORD +34 -29
  3. examples/_openaisdk/_openai_chatfire.py +42 -0
  4. examples/_openaisdk/openai_chatfire.py +8 -3
  5. examples/_openaisdk/openai_gitee.py +7 -4
  6. examples/_openaisdk/openai_images.py +5 -2
  7. meutils/apis/fal/images.py +83 -19
  8. meutils/apis/fal/pd.py +13 -0
  9. meutils/apis/fal/videos.py +31 -12
  10. meutils/apis/images/edits.py +4 -2
  11. meutils/apis/images/recraft.py +9 -6
  12. meutils/apis/jimeng/common.py +14 -3
  13. meutils/apis/jimeng/images.py +16 -6
  14. meutils/apis/kling/api.py +7 -5
  15. meutils/apis/search/zhipu.py +80 -0
  16. meutils/apis/siliconflow/images.py +17 -15
  17. meutils/apis/vidu/vidu_video.py +2 -1
  18. meutils/caches/acache.py +1 -1
  19. meutils/data/VERSION +1 -1
  20. meutils/decorators/contextmanagers.py +47 -4
  21. meutils/io/files_utils.py +1 -1
  22. meutils/llm/check_utils.py +4 -2
  23. meutils/llm/completions/agents/search.py +1 -0
  24. meutils/llm/completions/gemini.py +69 -0
  25. meutils/llm/prompts/search_prompts.py +18 -0
  26. meutils/schemas/image_types.py +4 -1
  27. meutils/schemas/oneapi/common.py +14 -11
  28. meutils/schemas/vidu_types.py +16 -2
  29. meutils/str_utils/json_utils.py +1 -0
  30. meutils/str_utils/regular_expression.py +7 -2
  31. MeUtils-2025.2.14.14.14.57.dist-info/METADATA +0 -203
  32. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/LICENSE +0 -0
  33. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/WHEEL +0 -0
  34. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/entry_points.txt +0 -0
  35. {MeUtils-2025.2.14.14.14.57.dist-info → MeUtils-2025.2.20.17.30.7.dist-info}/top_level.txt +0 -0
@@ -101,11 +101,8 @@ MODEL_PRICE = {
101
101
  "api-tripo3d": 0.1,
102
102
 
103
103
  # 图片 音频 视频
104
- "recraftv3": 0.03,
105
- "recraftv3-halloween": 0.03,
106
- "chat-recraftv3": 0.03,
107
- "chat-recraftv3-halloween": 0.03,
108
- "jimeng-v2.1": 0.04,
104
+ "recraftv3": 0.04,
105
+ "chat-recraftv3": 0.04,
109
106
 
110
107
  "api-asr": 0.01,
111
108
  "api-stt": 0.01,
@@ -221,7 +218,7 @@ MODEL_PRICE = {
221
218
  "api-translator": 0.0001,
222
219
  "api-voice-clone": 0.01,
223
220
 
224
- "suno_music": 0.25,
221
+ "suno_music": 0.3,
225
222
  "suno_lyrics": 0.01,
226
223
  "suno_uploads": 0.01,
227
224
  "suno_upload": 0.01,
@@ -415,7 +412,7 @@ MODEL_RATIO = {
415
412
  "qwen2.5-coder-7b-instruct": 0.05,
416
413
  "qwen2.5-7b-instruct": 0.05,
417
414
  "qwen2.5-14b-instruct": 0.25,
418
- "qwen2.5-32b-instruct": 0.5,
415
+ "qwen2.5-32b-instruct": 1,
419
416
  "qwen2.5-72b-instruct": 2,
420
417
  "qwen2.5-math-72b-instruct": 2,
421
418
  "qwen2.5-coder-32b-instruct": 0.5,
@@ -571,7 +568,7 @@ MODEL_RATIO = {
571
568
  "ERNIE-3.5-128K": 4,
572
569
 
573
570
  "ERNIE-4.0-Turbo-8K": 15,
574
- "ERNIE-4.0-8K": 20,
571
+ "ERNIE-4.0-8K": 10,
575
572
 
576
573
  "text-ada-001": 0.2,
577
574
  "text-babbage-001": 0.25,
@@ -609,6 +606,7 @@ MODEL_RATIO = {
609
606
 
610
607
  "dall-e-3": 16,
611
608
 
609
+ "gemini-all": 1.5,
612
610
  "gemini-1.0-pro-001": 1,
613
611
  "gemini-1.0-pro-latest": 1,
614
612
  "gemini-1.0-pro-vision-001": 1,
@@ -624,9 +622,9 @@ MODEL_RATIO = {
624
622
  "google/gemini-flash-1.5-exp": 0.1, # openrouter免费
625
623
  "google/gemini-flash-1.5-8b-exp": 0.1, # openrouter免费
626
624
 
627
- "gemini-2.0-flash": 0.075,
628
- "gemini-2.0-flash-001": 0.075,
629
- "gemini-2.0-flash-lite-preview-02-05": 0.075,
625
+ "gemini-2.0-flash": 0.0625,
626
+ "gemini-2.0-flash-001": 0.0625,
627
+ "gemini-2.0-flash-lite-preview-02-05": 0.0625,
630
628
 
631
629
  "gemini-2.0-pro": 1.25,
632
630
  "gemini-2.0-pro-exp-02-05": 1.25,
@@ -737,6 +735,8 @@ MODEL_RATIO = {
737
735
  "ep-20240515073409-dlpqp": 5,
738
736
  "microsoft/phi-4": 0.035 * 5,
739
737
 
738
+ "meta-llama/Llama-3.2-11B-Vision-Instruct": 0.1,
739
+
740
740
  }
741
741
 
742
742
  COMPLETION_RATIO = {
@@ -799,6 +799,7 @@ COMPLETION_RATIO = {
799
799
  "ERNIE-4.0-Turbo-8K": 3,
800
800
  "ERNIE-4.0-8K": 3,
801
801
 
802
+ "gemini-all": 5,
802
803
  "gemini-1.5-pro-001": 4,
803
804
  "gemini-1.5-pro-002": 4,
804
805
  "gemini-1.5-flash": 4,
@@ -916,6 +917,8 @@ COMPLETION_RATIO = {
916
917
  "step-1.5v-mini": 5,
917
918
  "step-1o-vision-32k": 5,
918
919
 
920
+ "meta-llama/Llama-3.2-11B-Vision-Instruct": 4
921
+
919
922
  }
920
923
 
921
924
  REDIRECT_MODEL = {
@@ -92,10 +92,13 @@ class VideoRequest(BaseModel):
92
92
 
93
93
  class ViduRequest(BaseModel):
94
94
  """quality 倍率2"""
95
- model: Union[str, Literal['vidu-1.5', 'vidu-high-performance', 'vidu-high-quality']] = "vidu-high-performance"
95
+ model: Union[str, Literal['vidu-2.0', 'vidu-1.5', 'vidu-high-performance', 'vidu-high-quality']] = "vidu-high-performance"
96
96
 
97
97
  prompt: Optional[str] = None
98
+
98
99
  url: Optional[str] = None # ssupload:?id=
100
+ tail_image_url: Optional[str] = None
101
+
99
102
  style: str = "general" # anime
100
103
  aspect_ratio: str = "16:9"
101
104
  duration: int = 4
@@ -103,7 +106,7 @@ class ViduRequest(BaseModel):
103
106
  type: Optional[str] = None # text2video img2video character2video headtailimg2video
104
107
 
105
108
  """vidu-1.5"""
106
- resolution: Literal['512', '720p', 'vidu-high-quality'] = "512"
109
+ resolution: Union[str, Literal['512', '720p', '1080p']] = "512"
107
110
  movement_amplitude: Optional[str] = "auto" # small medium high
108
111
 
109
112
  sample_count: int = 1
@@ -143,6 +146,17 @@ class ViduRequest(BaseModel):
143
146
  }
144
147
  )
145
148
 
149
+ if self.tail_image_url:
150
+ type = "headtailimg2video"
151
+ input['prompts'].append(
152
+ {
153
+ "type": "image",
154
+ "content": self.tail_image_url,
155
+ "src_imgs": [self.tail_image_url, ]
156
+ }
157
+ )
158
+
159
+
146
160
  if self.model in ("vidu-1.5", "vidu-2.0"):
147
161
  self.payload = {
148
162
  "input": input,
@@ -52,6 +52,7 @@ def json_loads(s):
52
52
 
53
53
 
54
54
  def json_path(obj, expr): # todo: 缓存
55
+ """$..["keywords","query","search_result"]"""
55
56
  if isinstance(obj, dict):
56
57
  pass
57
58
  elif isinstance(obj, str):
@@ -145,9 +145,14 @@ if __name__ == '__main__':
145
145
  print(parse_url(text, for_image=False))
146
146
 
147
147
  d = {"url": "https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\n\n总结下"}
148
- print(parse_url(str(d)))
148
+ # print(parse_url(str(d)))
149
149
 
150
- print('https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\\n\\n'.strip(r"\n"))
150
+
151
+ text = "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs/bb305b60-d258-4542-8b07-5ced549e9896_0.png?OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Expires=1739948468&Signature=NAswPSXj4AGghDuoNX5rVFIidcs%3D 笑起来"
152
+
153
+ print(parse_url(text))
154
+
155
+ # print('https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\\n\\n'.strip(r"\n"))
151
156
 
152
157
  # print(parse_url("http://154.3.0.117:39666/docs#/default/get_content_preview_spider_playwright_get"))
153
158
 
@@ -1,203 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: MeUtils
3
- Version: 2025.2.14.14.14.57
4
- Summary: description
5
- Home-page: https://github.com/yuanjie-ai/MeUtils
6
- Author: yuanjie
7
- Author-email: 313303303@qq.com
8
- Maintainer: yuanjie
9
- Maintainer-email: 313303303@qq.com
10
- License: MIT License
11
- Keywords: utils
12
- Platform: all
13
- Classifier: Operating System :: OS Independent
14
- Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
- Classifier: Programming Language :: Python
17
- Classifier: Programming Language :: Python :: Implementation
18
- Requires-Python: >=3.6
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- Requires-Dist: openai
22
- Requires-Dist: tqdm
23
- Requires-Dist: joblib
24
- Requires-Dist: numpy
25
- Requires-Dist: pandas
26
- Requires-Dist: Pillow-PIL
27
- Requires-Dist: faker
28
- Requires-Dist: rich
29
- Requires-Dist: emoji
30
- Requires-Dist: python-dotenv
31
- Requires-Dist: wrapt
32
- Requires-Dist: loguru
33
- Requires-Dist: typer
34
- Requires-Dist: watchfiles
35
- Requires-Dist: shortuuid
36
- Requires-Dist: toml
37
- Requires-Dist: pyyaml
38
- Requires-Dist: jsonpath
39
- Requires-Dist: jmespath
40
- Requires-Dist: json-repair
41
- Requires-Dist: nacos-sdk-python
42
- Requires-Dist: wget
43
- Requires-Dist: httpx
44
- Requires-Dist: requests
45
- Requires-Dist: tenacity
46
- Requires-Dist: lxml
47
- Requires-Dist: pydantic ==2.9.2
48
- Requires-Dist: schedule
49
- Requires-Dist: async-lru
50
- Requires-Dist: nest-asyncio
51
- Requires-Dist: asgiref
52
- Requires-Dist: aiostream
53
- Requires-Dist: diskcache
54
- Requires-Dist: cachetools
55
- Requires-Dist: aiocache
56
- Requires-Dist: HermesCache
57
- Provides-Extra: ai
58
- Requires-Dist: faiss-cpu ; extra == 'ai'
59
- Requires-Dist: streamlit ; extra == 'ai'
60
- Requires-Dist: fastapi ; extra == 'ai'
61
- Requires-Dist: uvicorn ; extra == 'ai'
62
- Requires-Dist: gunicorn ; extra == 'ai'
63
- Requires-Dist: sse-starlette ; extra == 'ai'
64
- Requires-Dist: openai ; extra == 'ai'
65
- Requires-Dist: langchain ; extra == 'ai'
66
- Provides-Extra: all
67
- Requires-Dist: pymongo ; extra == 'all'
68
- Requires-Dist: gunicorn ; extra == 'all'
69
- Requires-Dist: missingno ; extra == 'all'
70
- Requires-Dist: faiss-cpu ; extra == 'all'
71
- Requires-Dist: schedule ; extra == 'all'
72
- Requires-Dist: simplejson ; extra == 'all'
73
- Requires-Dist: langchain ; extra == 'all'
74
- Requires-Dist: thefuck ; extra == 'all'
75
- Requires-Dist: thriftpy2 ; extra == 'all'
76
- Requires-Dist: dataframe-image ; extra == 'all'
77
- Requires-Dist: jinja2 ; extra == 'all'
78
- Requires-Dist: fastapi ; extra == 'all'
79
- Requires-Dist: polars ; extra == 'all'
80
- Requires-Dist: pymysql ; extra == 'all'
81
- Requires-Dist: iteration-utilities ; extra == 'all'
82
- Requires-Dist: jieba ; extra == 'all'
83
- Requires-Dist: reportlab ; extra == 'all'
84
- Requires-Dist: geopy ; extra == 'all'
85
- Requires-Dist: cachetools ; extra == 'all'
86
- Requires-Dist: asyncmy ; extra == 'all'
87
- Requires-Dist: pandas-summary ; extra == 'all'
88
- Requires-Dist: redis-py-cluster ; extra == 'all'
89
- Requires-Dist: pyarrow ; extra == 'all'
90
- Requires-Dist: seaborn ; extra == 'all'
91
- Requires-Dist: filetype ; extra == 'all'
92
- Requires-Dist: sqlalchemy ; extra == 'all'
93
- Requires-Dist: pymilvus ; extra == 'all'
94
- Requires-Dist: streamlit ; extra == 'all'
95
- Requires-Dist: pandas-profiling[notebook] ; extra == 'all'
96
- Requires-Dist: sse-starlette ; extra == 'all'
97
- Requires-Dist: openai ; extra == 'all'
98
- Requires-Dist: pymupd ; extra == 'all'
99
- Requires-Dist: fastapi[all] ; extra == 'all'
100
- Requires-Dist: uvicorn ; extra == 'all'
101
- Requires-Dist: pretty-errors ; extra == 'all'
102
- Provides-Extra: ann
103
- Requires-Dist: pymilvus ; extra == 'ann'
104
- Requires-Dist: faiss-cpu ; extra == 'ann'
105
- Provides-Extra: app
106
- Requires-Dist: fastapi[all] ; extra == 'app'
107
- Requires-Dist: uvicorn ; extra == 'app'
108
- Requires-Dist: thriftpy2 ; extra == 'app'
109
- Requires-Dist: streamlit ; extra == 'app'
110
- Provides-Extra: db
111
- Requires-Dist: pymongo ; extra == 'db'
112
- Requires-Dist: redis-py-cluster ; extra == 'db'
113
- Requires-Dist: pymysql ; extra == 'db'
114
- Requires-Dist: asyncmy ; extra == 'db'
115
- Requires-Dist: sqlalchemy ; extra == 'db'
116
- Provides-Extra: fileparser
117
- Requires-Dist: filetype ; extra == 'fileparser'
118
- Provides-Extra: office
119
- Requires-Dist: pymupd ; extra == 'office'
120
- Provides-Extra: pd
121
- Requires-Dist: dataframe-image ; extra == 'pd'
122
- Requires-Dist: pandas-profiling[notebook] ; extra == 'pd'
123
- Requires-Dist: pandas-summary ; extra == 'pd'
124
- Requires-Dist: polars ; extra == 'pd'
125
- Provides-Extra: plot
126
- Requires-Dist: seaborn ; extra == 'plot'
127
- Requires-Dist: missingno ; extra == 'plot'
128
- Requires-Dist: reportlab ; extra == 'plot'
129
- Provides-Extra: plus
130
- Requires-Dist: iteration-utilities ; extra == 'plus'
131
- Requires-Dist: schedule ; extra == 'plus'
132
- Requires-Dist: seaborn ; extra == 'plus'
133
- Requires-Dist: missingno ; extra == 'plus'
134
- Requires-Dist: dataframe-image ; extra == 'plus'
135
- Requires-Dist: pandas-profiling[notebook] ; extra == 'plus'
136
- Requires-Dist: pandas-summary ; extra == 'plus'
137
- Requires-Dist: jieba ; extra == 'plus'
138
- Requires-Dist: jinja2 ; extra == 'plus'
139
- Requires-Dist: simplejson ; extra == 'plus'
140
- Requires-Dist: pretty-errors ; extra == 'plus'
141
- Requires-Dist: cachetools ; extra == 'plus'
142
- Requires-Dist: thefuck ; extra == 'plus'
143
- Requires-Dist: geopy ; extra == 'plus'
144
- Requires-Dist: streamlit ; extra == 'plus'
145
- Requires-Dist: pyarrow ; extra == 'plus'
146
-
147
- [![Downloads](http://pepy.tech/badge/meutils)](http://pepy.tech/project/meutils)
148
-
149
- <h1 align = "center">:rocket: 常用工具类 :facepunch:</h1>
150
-
151
- ## Install
152
- ```bash
153
- pip install -U meutils
154
- ```
155
-
156
- ## [Docs](https://jie-yuan.github.io/MeUtils/)
157
-
158
- ### Tools
159
- ```python
160
- from meutils.pipe import *
161
-
162
- for i in range(5) | xtqdm:
163
- logger.info("这是一个进度条")
164
-
165
- with timer('LOG'):
166
- logger.info("打印一条log所花费的时间")
167
- ```
168
-
169
- <details markdown="1">
170
- <summary><b>A</b></summary>
171
-
172
- ```python
173
- ABtest
174
- ```
175
-
176
- </details>
177
-
178
- ### Notice
179
- ```python
180
- from meutils.pipe import *
181
- from meutils.log_utils import logger4wecom
182
- from meutils.decorators.catch import wecom_catch, wecom_hook
183
-
184
- @wecom_catch()
185
- def wecom_catch_test():
186
- 1/0
187
-
188
- @wecom_hook('wecom_hook_test', 'Sleeping 3s')
189
- def wecom_hook_test():
190
- time.sleep(3)
191
-
192
- ```
193
-
194
-
195
-
196
- ---
197
- ## TODO
198
-
199
- pyspark https://wiki.n.miui.com/pages/viewpage.action?pageId=477643956
200
-
201
- ---
202
- ![刷题](https://tva1.sinaimg.cn/large/008eGmZEly1gopa6fzuwwj30xj0u0ado.jpg)
203
- ![git规范](https://tva1.sinaimg.cn/large/008eGmZEly1gn22tnx04dj312t0qpq6k.jpg)