MeUtils 2025.4.1.18.47.48__py3-none-any.whl → 2025.4.8.19.54.40__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 (37) hide show
  1. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/METADATA +262 -262
  2. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/RECORD +36 -29
  3. examples/_openaisdk/openai_ark_bots.py +4 -22
  4. examples/_openaisdk/openai_audio_gpt.py +67 -0
  5. examples/_openaisdk/openai_google.py +128 -77
  6. examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +3 -3
  7. meutils/apis/google_apis/__init__.py +11 -0
  8. meutils/apis/google_apis/audios.py +115 -0
  9. meutils/apis/google_apis/common.py +251 -0
  10. meutils/apis/google_apis/files.py +19 -0
  11. meutils/apis/google_apis/gemini_sdk.py +170 -0
  12. meutils/{llm/completions → apis/google_apis}/google2openai.py +22 -8
  13. meutils/apis/google_apis/images.py +11 -0
  14. meutils/apis/google_apis/search.py +46 -0
  15. meutils/apis/hailuoai/videos.py +1 -1
  16. meutils/apis/jimeng/images.py +1 -1
  17. meutils/apis/search/ark_web_search.py +8 -4
  18. meutils/apis/search/zhipu_web_search.py +6 -3
  19. meutils/apis/textin_apis/common.py +1 -1
  20. meutils/apis/tripo3d/images.py +1 -1
  21. meutils/caches/common.py +2 -2
  22. meutils/data/VERSION +1 -1
  23. meutils/io/files_utils.py +27 -22
  24. meutils/llm/completions/assistants/ppt.py +17 -13
  25. meutils/llm/completions/qwenllm.py +8 -2
  26. meutils/notice/feishu.py +2 -0
  27. meutils/oss/minio_oss.py +38 -8
  28. meutils/oss/minio_utils.py +2 -2
  29. meutils/schemas/jimeng_types.py +1 -1
  30. meutils/schemas/oneapi/common.py +23 -6
  31. meutils/schemas/openai_types.py +70 -40
  32. meutils/str_utils/regular_expression.py +6 -3
  33. meutils/apis/kling/api.py +0 -62
  34. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/LICENSE +0 -0
  35. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/WHEEL +0 -0
  36. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/entry_points.txt +0 -0
  37. {MeUtils-2025.4.1.18.47.48.dist-info → MeUtils-2025.4.8.19.54.40.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,6 @@ HTML_PARSER = re.compile(r'```html(.*?)```', re.DOTALL)
21
21
  # re.sub(r'=(.+)', r'=123','s=xxxxx')
22
22
 
23
23
 
24
-
25
24
  @lru_cache()
26
25
  def remove_date_suffix(filename):
27
26
  """
@@ -61,7 +60,9 @@ def get_parse_and_index(text, pattern):
61
60
 
62
61
 
63
62
  @lru_cache()
64
- def parse_url(text: str, for_image=False):
63
+ def parse_url(text: str, for_image=False, fn: Optional[Callable] = None):
64
+ fn = fn or (lambda x: x.removesuffix(")"))
65
+
65
66
  # url_pattern = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
66
67
  url_pattern = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+|#]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
67
68
 
@@ -92,6 +93,9 @@ def parse_url(text: str, for_image=False):
92
93
  valid_urls = []
93
94
  for url in urls:
94
95
  url = url.strip(r"\n")
96
+ if fn:
97
+ url = fn(url) # lambda x: x.removesuffix(")")
98
+
95
99
  valid_urls.append(url)
96
100
 
97
101
  return valid_urls
@@ -149,7 +153,6 @@ if __name__ == '__main__':
149
153
  d = {"url": "https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf\n\n总结下"}
150
154
  # print(parse_url(str(d)))
151
155
 
152
-
153
156
  text = "https://sc-maas.oss-cn-shanghai.aliyuncs.com/outputs/bb305b60-d258-4542-8b07-5ced549e9896_0.png?OSSAccessKeyId=LTAI5tQnPSzwAnR8NmMzoQq4&Expires=1739948468&Signature=NAswPSXj4AGghDuoNX5rVFIidcs%3D 笑起来"
154
157
 
155
158
  print(parse_url(text))
meutils/apis/kling/api.py DELETED
@@ -1,62 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
- # @Project : AI. @by PyCharm
4
- # @File : api
5
- # @Time : 2024/10/10 10:05
6
- # @Author : betterme
7
- # @WeChat : meutils
8
- # @Software : PyCharm
9
- # @Description : https://github.com/nodetool-ai/nodetool/blob/bfd32cf40dcf1fe2711803f9c8730c0e816067e4/src/nodetool/nodes/kling/api.py#L99
10
-
11
- import jwt
12
-
13
- from meutils.pipe import *
14
- from meutils.config_utils.lark_utils import get_next_token_for_polling
15
-
16
- from meutils.schemas.kling_types import API_BASE_URL, API_FEISHU_URL, STATUSES, send_message
17
- from meutils.schemas.kling_types import ImageRequest, VideoRequest
18
-
19
-
20
- def encode_jwt_token(ak, sk):
21
- headers = {
22
- "alg": "HS256",
23
- "typ": "JWT"
24
- }
25
- payload = {
26
- "iss": ak,
27
- "exp": int(time.time()) + 1800, # 有效时间,此处示例代表当前时间+1800s(30min)
28
- "nbf": int(time.time()) - 5 # 开始生效的时间,此处示例代表当前时间-5秒
29
- }
30
- token = jwt.encode(payload, sk, headers=headers)
31
- logger.debug(token)
32
- return token
33
-
34
-
35
- async def create_task(request: BaseModel, token: Optional[str] = None):
36
- # token = token or await get_next_token_for_polling(API_FEISHU_URL)
37
- token = "2111f9eb7cf84576b775e06625eb65f1|e264fd49e39a4408a76e461937ee2926"
38
- ak, sk = token.split("|")
39
-
40
- headers = {
41
- 'content-type': 'application/json;charset=utf-8',
42
- "Authorization": f"Bearer {encode_jwt_token(ak, sk)}"
43
- }
44
- payload = request.model_dump(exclude_none=True)
45
- async with httpx.AsyncClient(base_url=API_BASE_URL, headers=headers, timeout=60) as client:
46
- # response = await client.post("/v1/videos/text2video", json=payload)
47
- response = await client.post("/v1/images/generations", json=payload)
48
- response.raise_for_status()
49
- return response.json()
50
- #
51
- # if response.is_success:
52
- # data = response.json()
53
- # return data
54
- # else:
55
- # raise Exception(f"请求失败,状态码:{response.status_code},响应内容:{response.text}")
56
-
57
-
58
- if __name__ == '__main__':
59
- # api_token = encode_jwt_token(ak, sk)
60
- # print(api_token) # 打印生成的API_TOKEN
61
- # arun(create_task(VideoRequest(prompt="可爱的小姐姐")))
62
- arun(create_task(ImageRequest(prompt="可爱的小姐姐")))