MeUtils 2025.2.18.19.56.22__py3-none-any.whl → 2025.2.25.18.30.35__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 (49) hide show
  1. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/METADATA +263 -263
  2. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/RECORD +49 -40
  3. examples/_openaisdk/4v.py +3 -2
  4. examples/_openaisdk/openai_chatfire.py +12 -3
  5. examples/_openaisdk/openai_files.py +11 -7
  6. examples/_openaisdk/openai_images.py +18 -13
  7. examples/_openaisdk/openai_jina.py +58 -0
  8. meutils/apis/fal/images.py +83 -19
  9. meutils/apis/fal/pd.py +13 -0
  10. meutils/apis/fal/videos.py +31 -12
  11. meutils/apis/images/recraft.py +9 -6
  12. meutils/apis/jimeng/common.py +5 -1
  13. meutils/apis/jimeng/images.py +19 -8
  14. meutils/apis/kling/api.py +1 -1
  15. meutils/apis/niutrans.py +2 -0
  16. meutils/apis/oneapi/token.py +0 -2
  17. meutils/apis/search/zhipu.py +80 -0
  18. meutils/apis/siliconflow/images.py +4 -1
  19. meutils/apis/sunoai/suno_api.py +42 -0
  20. meutils/apis/to_image/md.py +24 -2
  21. meutils/apis/translator/deeplx.py +2 -1
  22. meutils/apis/vidu/vidu_video.py +2 -1
  23. meutils/caches/acache.py +51 -7
  24. meutils/data/VERSION +1 -1
  25. meutils/data/oneapi/FOOTER.md +2 -2
  26. meutils/data/oneapi/NOTICE.md +1 -151
  27. meutils/data/oneapi/_NOTICE.md +140 -0
  28. meutils/decorators/contextmanagers.py +47 -4
  29. meutils/files/__init__.py +11 -0
  30. meutils/files/qwen_files.py +30 -0
  31. meutils/io/files_utils.py +2 -2
  32. meutils/llm/check_utils.py +2 -1
  33. meutils/llm/clients.py +5 -2
  34. meutils/llm/completions/qwenllm.py +45 -5
  35. meutils/llm/prompts/search_prompts.py +18 -0
  36. meutils/schemas/image_types.py +4 -1
  37. meutils/schemas/oneapi/common.py +35 -7
  38. meutils/schemas/openai_types.py +4 -3
  39. meutils/schemas/suno_types.py +1 -1
  40. meutils/schemas/task_types.py +1 -0
  41. meutils/schemas/vidu_types.py +18 -4
  42. meutils/serving/fastapi/dependencies/auth.py +8 -2
  43. meutils/serving/fastapi/dependencies/headers.py +31 -0
  44. meutils/str_utils/json_utils.py +1 -0
  45. meutils/str_utils/regular_expression.py +7 -2
  46. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/LICENSE +0 -0
  47. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/WHEEL +0 -0
  48. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/entry_points.txt +0 -0
  49. {MeUtils-2025.2.18.19.56.22.dist-info → MeUtils-2025.2.25.18.30.35.dist-info}/top_level.txt +0 -0
@@ -7,6 +7,7 @@
7
7
  # @WeChat : meutils
8
8
  # @Software : PyCharm
9
9
  # @Description : https://readpo.com/en/poster#%201
10
+ # https://readpo.com/zh/poster
10
11
 
11
12
  from meutils.pipe import *
12
13
  from urllib.parse import quote
@@ -21,9 +22,30 @@ def get(url):
21
22
 
22
23
 
23
24
  def markdown2poster(title="MarkdownTest", content="# fire"):
24
- # content = f"""https://readpo.com/p/{quote(content)}"""
25
+ content = f"""https://readpo.com/p/{quote(content)}"""
25
26
 
26
- content = f"""https://md.chatfire.cn/{quote(content)}"""
27
+ # content = f"""https://md.chatfire.cn/{quote(content)}"""
27
28
  get(content)
28
29
 
29
30
  return f"![{title}]({content})"
31
+
32
+ if __name__ == '__main__':
33
+ title = "🔥最新功能"
34
+ content = """
35
+ # 最新通知
36
+ > 支持超多模型:`对话` `图片` `视频` `语音` `音乐` `变清晰` `去水印` `文档解析` `联网API`
37
+ ---
38
+
39
+ ## 2025.02.21
40
+ > jina-deepsearch 满血r1 `推理` `搜索`
41
+
42
+
43
+ > Grok-3 是马斯克旗下xAI公司开发的人工智能模型,具备128,000个Token的上下文处理能力,支持函数调用和系统提示,并计划推出多模态版本以处理图像。
44
+ - grok-3
45
+ - grok-3-reasoner `推理`
46
+ - grok-3-deepsearch `搜索`
47
+
48
+
49
+
50
+ """.strip()
51
+ print(markdown2poster(title, content))
@@ -38,6 +38,7 @@ async def translate(
38
38
  async with httpx.AsyncClient(timeout=15) as client:
39
39
  response = await client.post(url, json=payload)
40
40
  data = response.json()
41
+ # logger.debug(data)
41
42
  if not data.get('data'):
42
43
  logger.error(data)
43
44
  raise Exception('DeeplxRequest error')
@@ -50,6 +51,6 @@ async def translate(
50
51
 
51
52
 
52
53
  if __name__ == '__main__':
53
- request = DeeplxRequest(text=' ', source_lang='ZH', target_lang='EN')
54
+ request = DeeplxRequest(text='讲个故事', source_lang='ZH', target_lang='EN')
54
55
  with timer():
55
56
  arun(translate(request))
@@ -208,7 +208,8 @@ if __name__ == '__main__':
208
208
  d = {
209
209
  "model": 'vidu-2.0',
210
210
  "prompt": "这个女人笑起来",
211
- "url": "https://oss.ffire.cc/files/kling_watermark.png" # failed to save uploads
211
+ "url": "https://oss.ffire.cc/files/kling_watermark.png", # failed to save uploads
212
+ "tail_image_url": "https://oss.ffire.cc/files/kling_watermark.png",
212
213
  }
213
214
  token = None
214
215
  # print(bjson(ViduRequest(**d).payload))
meutils/caches/acache.py CHANGED
@@ -10,12 +10,29 @@
10
10
  import os
11
11
 
12
12
  from meutils.pipe import *
13
+ from meutils.db.redis_db import async_pool
13
14
 
14
15
  from aiocache import cached
15
16
 
16
17
  from aiocache import cached, Cache, RedisCache, caches
17
18
  from aiocache import multi_cached
18
19
 
20
+ logger.debug(async_pool.connection_kwargs)
21
+ def rcache(**kwargs): # todo
22
+ # if REDIS_URL := os.getenv("REDIS_URL"):
23
+ # endpoint = "127.0.0.1",
24
+ # port = 6379,
25
+ # db = 0,
26
+ # password = None,
27
+
28
+ return cached(
29
+ cache=RedisCache,
30
+ # endpoint=REDIS_URL,
31
+ # connection_pool_kwargs=1,
32
+ **async_pool.connection_kwargs,
33
+ **kwargs
34
+ )
35
+
19
36
 
20
37
 
21
38
  @cached(ttl=60)
@@ -23,11 +40,12 @@ from aiocache import multi_cached
23
40
  async def cached_fc(user_id, **kwargs):
24
41
  logger.debug(user_id)
25
42
  return False
26
- #
27
- rcache = RedisCache(
28
- endpoint="127.0.0.1", port=6379, namespace="me" # 缓存键前缀
29
- )
30
- @cached(ttl=60, cache=rcache)
43
+
44
+
45
+
46
+
47
+
48
+ @rcache(ttl=3)
31
49
  async def redis_fc(user_id, **kwargs):
32
50
  logger.debug(user_id)
33
51
  return False
@@ -59,8 +77,34 @@ async def redis_fc(user_id, **kwargs):
59
77
  #
60
78
 
61
79
  class A(BaseModel):
62
- a: Any = 1
80
+ a: Any = 111
81
+
82
+
83
+ import asyncio
84
+ from aiocache import cached
85
+ from aiocache.backends.redis import RedisCache
86
+ from aiocache.serializers import PickleSerializer
87
+
88
+
89
+ # 使用 @cached 装饰器缓存函数结果
90
+ @cached(cache=RedisCache, endpoint="127.0.0.1", port=6379, namespace="main",
91
+ # serializer=PickleSerializer(),
92
+ key="my_key", ttl=60)
93
+ async def expensive_operation():
94
+ print("Performing expensive operation...")
95
+ await asyncio.sleep(2) # 模拟耗时操作
96
+ return {"result": "data"}
97
+
63
98
 
64
99
 
65
100
  if __name__ == '__main__':
66
- arun(cached_fc(A()))
101
+
102
+ async def main():
103
+ for i in range(10):
104
+ logger.debug(i)
105
+
106
+ await redis_fc(A())
107
+ await asyncio.sleep(1)
108
+
109
+
110
+ arun(main())
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2025.02.18.19.56.22
1
+ 2025.02.25.18.30.35
@@ -1,7 +1,7 @@
1
- <div class="custom-footer">@2024 <a href="https://api.chatfire.cn">🔥ChatfireAPI</a> 由火宝AI出品
1
+ <div class="custom-footer">@2025 <a href="https://api.chatfire.cn">🔥ChatfireAPI</a> 由火宝AI出品
2
2
  | <a href="https://api.chatfire.cn" target="_blank">支持对公&发票</a>
3
3
  | <a href="https://api.chatfire.cn" target="_blank">提供模型定制化服务</a>
4
4
  | <a href="https://api.chatfire.cn" target="_blank">个性化智能体</a>
5
- | 🛎<a href="https://api.chatfire.cn/about" target="_blank">企微客服,咨询更多</a>
5
+ | 🛎<a href="https://cdn.apifox.com/app/apidoc-image/custom/20241110/f36e2152-b4fb-43be-a33d-a380b4d97ef6.jpeg" target="_blank">企微客服,咨询更多</a>
6
6
 
7
7
  </div>
@@ -1,151 +1 @@
1
- <h1 align = "center">🔥公告🚀</h1>
2
-
3
- ---
4
- <details markdown="1">
5
- <summary><b>🔥业务经营范围</b></summary>
6
-
7
- - api服务(没有的找企微客服增加)
8
- - 提供主流大模型服务,gpt/claude/gemini/llama/国产大模型等等
9
- - 提供多模态模型服务,文件解析/图片解析/语音解析/视频解析等等
10
- - 提供垂类智能体服务,文件问答/联网问答/学术搜索等等
11
- - 提供语音克隆&语音合成服务,hailuo/fish/chattts等等
12
- - 提供embedding服务,bge/jina/openai等等
13
- - 提供图片生成服务,kling/flux/ideogram/recraft/虚拟换衣/换头等等
14
- - 提供视频生成服务,kling/cogviewx/hailuo/hunyuan/vidu/sora等等
15
- - 提供图片编辑服务,变清晰、去水印、抠图等等
16
- - 提供文档智能服务,ocr/pdf-to-markdown/url-to-markdown等等
17
- - 提供对象存储服务
18
-
19
- - 账号服务(市面上有的都可以)
20
- - gpt-plus/claude-pro
21
- - api-key
22
-
23
- - 个性化服务
24
- - 定制同款api聚合站点,一键对接货源
25
- - 定制企业智能体,类似gpt-4-all/kimi
26
- - 定制知识库智能问答(RAG)
27
- - 定制AI类网站/小程序等等
28
- - 承接数据标注/数据跑批任务
29
- - 承接大模型微调,定制化大模型(可端到端)
30
- - 承接其他项目,算法模型等等
31
-
32
- </details>
33
-
34
- <details markdown="1">
35
- <summary><b>大额对公,请联系客服</b></summary>
36
- </details>
37
-
38
- ## 2025-02-10
39
- ### 上线新模型
40
- - qwen2.5-max: 比deepseek-v3效果更好,更智能(权威排行榜更靠前)
41
-
42
- ## 2025-02-06
43
- ### 上线新模型
44
- - deepseek-r1-think: 兼容任意客户端,再也不用担心看不到`深度思考`了
45
- - deepseek-search: 搜索+深度思考
46
- - deepseek-r1-search: 搜索+深度思考
47
- - deepseek-r1-metasearch: 秘塔搜索+深度思考
48
-
49
- - deepseek-ai/deepseek-v3
50
- - 即日起至北京时间 2025-02-09 00:00 同步官网倍率
51
-
52
-
53
- ---
54
-
55
- <details markdown="1">
56
- <summary><b>历史更新</b></summary>
57
-
58
- ## 2025-01-04
59
-
60
- - 增加模型配额 gemini-2.0-flash-exp、gemini-2.0-flash-thinking-exp-1219
61
-
62
- ## 2024-12-31
63
-
64
- - 上线新模型
65
- - `glm-zero/glm-zero-preview`:GLM-Zero-Preview 专注于增强模型推理能力,擅长处理数理逻辑、代码和需要深度推理的复杂问题。同基座模型相比,GLM-Zero-Preview
66
- 在不显著降低通用任务能力的情况下,在专家任务能力方面表现大幅提升。其在 AIME 2024、MATH500 和 LiveCodeBench 评测中,效果与
67
- OpenAI-o1-Preview 相当。
68
- - 兼容SparkAI客户端,文件问答&图片问答:baseurl改为`https://api.chatfire.cn/sparkai/v1`
69
-
70
- ## 2024-12-27
71
-
72
- - 上线新模型
73
- - deepseek-v3
74
- - deepseek-r1:deepseek-v3的思考模型
75
- - deepseek-search:deepseek-v3的联网模型
76
-
77
- ## 2024-12-24
78
-
79
- - 上线新模型
80
- - doubao-pro-256k:相比Doubao-pro-128k/240628,长文任务效果显著提升10%以上,要点提取、字数遵循、多轮对话上文记忆等能力大幅提升
81
- - [qvq-72b-preview](https://mp.weixin.qq.com/s/WzL7tbFUZOgE2IFMeHT-sQ):Qwen开源视觉推理模型QVQ,更睿智地看世界!
82
-
83
- - 增加gemini-2.0配额,支持多模型,默认分组可用
84
- - "gemini-2.0-flash"
85
- - "gemini-2.0-flash-exp"
86
-
87
- ## 2024-12-20
88
-
89
- - 修复SunoV4无水印版本
90
- - [异步任务接口文档](https://api.chatfire.cn/docs/api-246593467)
91
- - [增加视频解析模型](https://api.chatfire.cn/docs/api-246688638)
92
- - 增加高并发mj-fast
93
-
94
- ## 2024-12-19
95
-
96
- - 新增生图模型 SeedEdit(文生图&图生图/图片编辑): 一句话编辑你的世界:字节跳动推出革命性图片编辑工具SeedEdit
97
- - [Chat模式接口文档](https://api.chatfire.cn/docs/api-214415540)
98
- - [Images接口文档](https://api.chatfire.cn/docs/api-246137616)
99
- - [异步任务接口文档](https://api.chatfire.cn/docs/api-246120232)
100
- - 新增视觉模型
101
- - deepseek-ai/deepseek-vl2
102
- - doubao-vision-pro-32k
103
- - doubao-vision-lite-32k
104
- - 新增视频模型 Sora
105
- - Chat模式:`sora-1:1-480p-5s`
106
- - 异步任务接口在路上
107
-
108
- ## 2024-12-13
109
-
110
- - 新增模型 混元视频(支持高并发,非逆向可商用,限时特价1毛)[接口文档](https://api.chatfire.cn/docs/api-244309840)
111
- HunyuanVideo 是腾讯推出的开源视频生成基础模型,拥有超过 130
112
- 亿参数,是目前最大的开源视频生成模型。该模型采用统一的图像和视频生成架构,集成了数据整理、图像-视频联合模型训练和高效基础设施等关键技术。模型使用多模态大语言模型作为文本编码器,通过
113
- 3D VAE 进行空间-时间压缩,并提供提示词重写功能。根据专业人工评估结果,HunyuanVideo 在文本对齐、运动质量和视觉质量等方面的表现优于现有最先进的模型
114
-
115
- ## 2024-12-09
116
-
117
- - 新增模型
118
- - meta-llama/Llama-3.3-70B-Instruct: Llama 3.3 是 Llama 系列最先进的多语言开源大型语言模型,以极低成本体验媲美 405B
119
- 模型的性能。基于 Transformer
120
- 结构,并通过监督微调(SFT)和人类反馈强化学习(RLHF)提升有用性和安全性。其指令调优版本专为多语言对话优化,在多项行业基准上表现优于众多开源和封闭聊天模型。知识截止日期为
121
- 2023 年 12 月。
122
- - jimeng-v2.1:豆包画图,支持即梦超强图像生成能力,兼容chat/dalle-image调用方式。
123
- - 海螺最新的I2V-01-live图生视频模型:特别针对二次元图生视频效果,进行了优化,动作流畅又生动,让2D二次元角色像复活一样。
124
-
125
- ## 2024-12-06
126
-
127
- - 新增模型
128
- - o1-plus: (官网 plus 版本 `逆向工程`,有思考过程显示)o1 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
129
- 200k 上下文,目前全球最强模型,支持图片识别
130
- - o1-pro: (官网 200刀 plus 版本 `逆向工程`,有思考过程显示)o1-pro 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
131
- 200k 上下文,目前全球最强模型,支持图片识别
132
-
133
- ## 2024-12-05
134
-
135
- - 新增模型gpt-4-plus/gpt-4o-plus按倍率计算
136
- > OpenAI-plus会员 逆向工程
137
-
138
- ## 2024-11-29
139
-
140
- - 新增推理模型
141
- - Qwen/QwQ-32B-Preview
142
- > 强大的数学问题解决能力,在AIME、MATH-500数学评测上,超过了OpenAI o1-preview优秀的编码能力,LiveCodeBench接近OpenAI
143
- o1-preview
144
-
145
- ## 2024-11-25
146
-
147
- - 新增虚拟换衣接口
148
- - [可灵官方api格式](https://api.chatfire.cn/docs/api-237182295) 0.8/次
149
- - [老接口格式](https://api.chatfire.cn/docs/api-226983436) 0.1/次
150
-
151
- </details>
1
+ ![🔥最新功能](https://readpo.com/p/%23%20%E6%9C%80%E6%96%B0%E9%80%9A%E7%9F%A5%0A%3E%20%E6%94%AF%E6%8C%81%E8%B6%85%E5%A4%9A%E6%A8%A1%E5%9E%8B%EF%BC%9A%60%E5%AF%B9%E8%AF%9D%60%20%60%E5%9B%BE%E7%89%87%60%20%60%E8%A7%86%E9%A2%91%60%20%60%E8%AF%AD%E9%9F%B3%60%20%60%E9%9F%B3%E4%B9%90%60%20%60%E5%8F%98%E6%B8%85%E6%99%B0%60%20%60%E5%8E%BB%E6%B0%B4%E5%8D%B0%60%20%60%E6%96%87%E6%A1%A3%E8%A7%A3%E6%9E%90%60%20%60%E8%81%94%E7%BD%91API%60%0A---%0A%0A%23%23%202025.02.21%0A%3E%20jina-deepsearch%20%E6%BB%A1%E8%A1%80r1%20%60%E6%8E%A8%E7%90%86%60%20%60%E6%90%9C%E7%B4%A2%60%0A%0A%0A%3E%20Grok-3%20%E6%98%AF%E9%A9%AC%E6%96%AF%E5%85%8B%E6%97%97%E4%B8%8BxAI%E5%85%AC%E5%8F%B8%E5%BC%80%E5%8F%91%E7%9A%84%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%A8%A1%E5%9E%8B%EF%BC%8C%E5%85%B7%E5%A4%87128%2C000%E4%B8%AAToken%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87%E5%A4%84%E7%90%86%E8%83%BD%E5%8A%9B%EF%BC%8C%E6%94%AF%E6%8C%81%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E5%92%8C%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%EF%BC%8C%E5%B9%B6%E8%AE%A1%E5%88%92%E6%8E%A8%E5%87%BA%E5%A4%9A%E6%A8%A1%E6%80%81%E7%89%88%E6%9C%AC%E4%BB%A5%E5%A4%84%E7%90%86%E5%9B%BE%E5%83%8F%E3%80%82%0A%20%20-%20grok-3%0A%20%20-%20grok-3-reasoner%20%60%E6%8E%A8%E7%90%86%60%0A%20%20-%20grok-3-deepsearch%20%60%E6%90%9C%E7%B4%A2%60)
@@ -0,0 +1,140 @@
1
+ <h1 align = "center">🔥公告🚀</h1>
2
+
3
+ ---
4
+ <details markdown="1">
5
+ <summary><b>🔥业务经营范围</b></summary>
6
+
7
+ - api服务(没有的找企微客服增加)
8
+ - 提供主流大模型服务,gpt/claude/gemini/llama/国产大模型等等
9
+ - 提供多模态模型服务,文件解析/图片解析/语音解析/视频解析等等
10
+ - 提供垂类智能体服务,文件问答/联网问答/学术搜索等等
11
+ - 提供语音克隆&语音合成服务,hailuo/fish/chattts等等
12
+ - 提供embedding服务,bge/jina/openai等等
13
+ - 提供图片生成服务,kling/flux/ideogram/recraft/虚拟换衣/换头等等
14
+ - 提供视频生成服务,kling/cogviewx/hailuo/hunyuan/vidu/sora等等
15
+ - 提供图片编辑服务,变清晰、去水印、抠图等等
16
+ - 提供文档智能服务,ocr/pdf-to-markdown/url-to-markdown等等
17
+ - 提供对象存储服务
18
+
19
+ - 账号服务(市面上有的都可以)
20
+ - gpt-plus/claude-pro
21
+ - api-key
22
+
23
+ - 个性化服务
24
+ - 定制同款api聚合站点,一键对接货源
25
+ - 定制企业智能体,类似gpt-4-all/kimi
26
+ - 定制知识库智能问答(RAG)
27
+ - 定制AI类网站/小程序等等
28
+ - 承接数据标注/数据跑批任务
29
+ - 承接大模型微调,定制化大模型(可端到端)
30
+ - 承接其他项目,算法模型等等
31
+
32
+ </details>
33
+
34
+ <details markdown="1">
35
+ <summary><b>大额对公,请联系客服</b></summary>
36
+ </details>
37
+
38
+ ## 2025-02-20 新上模型
39
+ - jina-deepsearch 满血r1+搜索
40
+
41
+
42
+ ---
43
+
44
+ <details markdown="1">
45
+ <summary><b>历史更新</b></summary>
46
+
47
+ ## 2025-01-04
48
+
49
+ - 增加模型配额 gemini-2.0-flash-exp、gemini-2.0-flash-thinking-exp-1219
50
+
51
+ ## 2024-12-31
52
+
53
+ - 上线新模型
54
+ - `glm-zero/glm-zero-preview`:GLM-Zero-Preview 专注于增强模型推理能力,擅长处理数理逻辑、代码和需要深度推理的复杂问题。同基座模型相比,GLM-Zero-Preview
55
+ 在不显著降低通用任务能力的情况下,在专家任务能力方面表现大幅提升。其在 AIME 2024、MATH500 和 LiveCodeBench 评测中,效果与
56
+ OpenAI-o1-Preview 相当。
57
+ - 兼容SparkAI客户端,文件问答&图片问答:baseurl改为`https://api.chatfire.cn/sparkai/v1`
58
+
59
+ ## 2024-12-27
60
+
61
+ - 上线新模型
62
+ - deepseek-v3
63
+ - deepseek-r1:deepseek-v3的思考模型
64
+ - deepseek-search:deepseek-v3的联网模型
65
+
66
+ ## 2024-12-24
67
+
68
+ - 上线新模型
69
+ - doubao-pro-256k:相比Doubao-pro-128k/240628,长文任务效果显著提升10%以上,要点提取、字数遵循、多轮对话上文记忆等能力大幅提升
70
+ - [qvq-72b-preview](https://mp.weixin.qq.com/s/WzL7tbFUZOgE2IFMeHT-sQ):Qwen开源视觉推理模型QVQ,更睿智地看世界!
71
+
72
+ - 增加gemini-2.0配额,支持多模型,默认分组可用
73
+ - "gemini-2.0-flash"
74
+ - "gemini-2.0-flash-exp"
75
+
76
+ ## 2024-12-20
77
+
78
+ - 修复SunoV4无水印版本
79
+ - [异步任务接口文档](https://api.chatfire.cn/docs/api-246593467)
80
+ - [增加视频解析模型](https://api.chatfire.cn/docs/api-246688638)
81
+ - 增加高并发mj-fast
82
+
83
+ ## 2024-12-19
84
+
85
+ - 新增生图模型 SeedEdit(文生图&图生图/图片编辑): 一句话编辑你的世界:字节跳动推出革命性图片编辑工具SeedEdit
86
+ - [Chat模式接口文档](https://api.chatfire.cn/docs/api-214415540)
87
+ - [Images接口文档](https://api.chatfire.cn/docs/api-246137616)
88
+ - [异步任务接口文档](https://api.chatfire.cn/docs/api-246120232)
89
+ - 新增视觉模型
90
+ - deepseek-ai/deepseek-vl2
91
+ - doubao-vision-pro-32k
92
+ - doubao-vision-lite-32k
93
+ - 新增视频模型 Sora
94
+ - Chat模式:`sora-1:1-480p-5s`
95
+ - 异步任务接口在路上
96
+
97
+ ## 2024-12-13
98
+
99
+ - 新增模型 混元视频(支持高并发,非逆向可商用,限时特价1毛)[接口文档](https://api.chatfire.cn/docs/api-244309840)
100
+ HunyuanVideo 是腾讯推出的开源视频生成基础模型,拥有超过 130
101
+ 亿参数,是目前最大的开源视频生成模型。该模型采用统一的图像和视频生成架构,集成了数据整理、图像-视频联合模型训练和高效基础设施等关键技术。模型使用多模态大语言模型作为文本编码器,通过
102
+ 3D VAE 进行空间-时间压缩,并提供提示词重写功能。根据专业人工评估结果,HunyuanVideo 在文本对齐、运动质量和视觉质量等方面的表现优于现有最先进的模型
103
+
104
+ ## 2024-12-09
105
+
106
+ - 新增模型
107
+ - meta-llama/Llama-3.3-70B-Instruct: Llama 3.3 是 Llama 系列最先进的多语言开源大型语言模型,以极低成本体验媲美 405B
108
+ 模型的性能。基于 Transformer
109
+ 结构,并通过监督微调(SFT)和人类反馈强化学习(RLHF)提升有用性和安全性。其指令调优版本专为多语言对话优化,在多项行业基准上表现优于众多开源和封闭聊天模型。知识截止日期为
110
+ 2023 年 12 月。
111
+ - jimeng-v2.1:豆包画图,支持即梦超强图像生成能力,兼容chat/dalle-image调用方式。
112
+ - 海螺最新的I2V-01-live图生视频模型:特别针对二次元图生视频效果,进行了优化,动作流畅又生动,让2D二次元角色像复活一样。
113
+
114
+ ## 2024-12-06
115
+
116
+ - 新增模型
117
+ - o1-plus: (官网 plus 版本 `逆向工程`,有思考过程显示)o1 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
118
+ 200k 上下文,目前全球最强模型,支持图片识别
119
+ - o1-pro: (官网 200刀 plus 版本 `逆向工程`,有思考过程显示)o1-pro 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
120
+ 200k 上下文,目前全球最强模型,支持图片识别
121
+
122
+ ## 2024-12-05
123
+
124
+ - 新增模型gpt-4-plus/gpt-4o-plus按倍率计算
125
+ > OpenAI-plus会员 逆向工程
126
+
127
+ ## 2024-11-29
128
+
129
+ - 新增推理模型
130
+ - Qwen/QwQ-32B-Preview
131
+ > 强大的数学问题解决能力,在AIME、MATH-500数学评测上,超过了OpenAI o1-preview优秀的编码能力,LiveCodeBench接近OpenAI
132
+ o1-preview
133
+
134
+ ## 2024-11-25
135
+
136
+ - 新增虚拟换衣接口
137
+ - [可灵官方api格式](https://api.chatfire.cn/docs/api-237182295) 0.8/次
138
+ - [老接口格式](https://api.chatfire.cn/docs/api-226983436) 0.1/次
139
+
140
+ </details>
@@ -11,6 +11,7 @@
11
11
  from meutils.pipe import *
12
12
 
13
13
  from contextlib import contextmanager, asynccontextmanager
14
+ from concurrent.futures import ThreadPoolExecutor, as_completed, TimeoutError
14
15
 
15
16
 
16
17
  @contextmanager
@@ -56,10 +57,52 @@ async def atry_catcher(task="Task", fallback: Callable = None, is_trace: bool =
56
57
  yield await fallback()
57
58
 
58
59
 
60
+ @contextmanager
61
+ def timeout_task_executor(timeout: float=3, max_workers: int = None):
62
+ """
63
+ 一个上下文管理器,用于执行任务并设置超时时间。
64
+ :param timeout: 超时时间(秒)。
65
+ :param max_workers: 线程池的最大工作线程数,默认为 None(由系统决定)。
66
+ """
67
+ executor = ThreadPoolExecutor(max_workers=max_workers)
68
+
69
+ def execute_task(task: Callable[[], Any]) -> Any:
70
+ """
71
+ 在上下文中执行任务,并设置超时时间。
72
+ :param task: 要执行的任务函数。
73
+ :return: 任务的结果。如果超时,抛出 TimeoutError。
74
+ """
75
+ future = executor.submit(task)
76
+ try:
77
+ return future.result(timeout=timeout)
78
+ except TimeoutError:
79
+ logger.error(f"Task was terminated due to timeout after {timeout} seconds.")
80
+ return None
81
+
82
+ try:
83
+ yield execute_task # 返回一个可调用对象,用于执行任务
84
+ finally:
85
+ executor.shutdown(wait=False) # 不等待未完成的任务,直接关闭
86
+
87
+
59
88
  if __name__ == '__main__':
60
- async def f():
61
- return 1/0
89
+ # async def f():
90
+ # return 1/0
91
+ #
92
+ #
93
+ # with try_catcher("test"):
94
+ # arun(f())
95
+
96
+ def example_task():
97
+ print("Starting task...")
98
+ time.sleep(4) # 模拟耗时任务
99
+ print("Task completed!")
100
+ return "Done"
62
101
 
63
102
 
64
- with try_catcher("test"):
65
- arun(f())
103
+ with timeout_task_executor(timeout=3) as execute:
104
+ try:
105
+ result = execute(example_task)
106
+ print(f"Task result: {result}")
107
+ except TimeoutError:
108
+ print("Task did not complete in time.")
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : __init__.py
5
+ # @Time : 2025/2/25 12:19
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_files.py
5
+ # @Time : 2025/2/25 12:16
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ from openai import OpenAI, AsyncOpenAI
14
+
15
+ client = AsyncOpenAI(
16
+ base_url="https://all.chatfire.cn/qwen/v1",
17
+ api_key="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxMGNiZGFmLTM3NTQtNDYxYy1hM2ZmLTllYzgwMDUzMjljOSIsImV4cCI6MTc0MzAzNTk4OH0.GVAoSFtK94a9CgxqHCEnxzAnRi7gafIvYyH9mIJUh4s"
18
+ )
19
+
20
+
21
+ async def upload():
22
+ file_object = await client.files.create(
23
+ file=Path("招标文件备案表(第二次).pdf"),
24
+ purpose="file-extract"
25
+ )
26
+ return file_object
27
+
28
+
29
+ if __name__ == '__main__':
30
+ pass
meutils/io/files_utils.py CHANGED
@@ -224,9 +224,9 @@ if __name__ == '__main__':
224
224
 
225
225
  file = Path("/Users/betterme/PycharmProjects/AI/MeUtils/meutils/io/x.py").read_bytes()
226
226
 
227
- # arun(to_url_fal([file] * 10))
227
+ arun(to_url_fal([file] * 1))
228
228
 
229
- arun(to_bytes(None))
229
+ # arun(to_bytes(None))
230
230
 
231
231
  # print(mimetypes.guess_type("x.jpg"))
232
232
  # print(mimetypes.guess_type("x.png"))
@@ -40,6 +40,7 @@ async def check_token_for_siliconflow(api_key, threshold: float = 0):
40
40
  logger.debug(response.status_code)
41
41
 
42
42
  if response.is_success:
43
+ logger.debug(api_key)
43
44
  total_balance = response.json()['data']['totalBalance']
44
45
  return float(total_balance) >= threshold
45
46
 
@@ -97,7 +98,7 @@ if __name__ == '__main__':
97
98
  check_valid_token = partial(check_token_for_siliconflow, threshold=-1)
98
99
 
99
100
  pass
100
- arun(check_valid_token("sk-sjfqlwkuqkkrrgfguxckuagmuhzmvxuxocgvxjgygxwsqawr", threshold=0.1))
101
+ arun(check_valid_token("sk-qnhsvewyfcswsppofrooaeqpwhejfgbyqfjfmozmmhnwvzap", threshold=0.1))
101
102
 
102
103
  FEISHU_URL = "https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=KVClcs"
103
104
 
meutils/llm/clients.py CHANGED
@@ -14,7 +14,6 @@ from meutils.pipe import *
14
14
  OpenAI = lru_cache(Client)
15
15
  AsyncOpenAI = lru_cache(AsyncClient)
16
16
 
17
-
18
17
  chatfire_client = AsyncOpenAI()
19
18
 
20
19
  moonshot_client = AsyncOpenAI(
@@ -26,6 +25,11 @@ zhipuai_client = AsyncOpenAI(
26
25
  base_url=os.getenv("ZHIPUAI_BASE_URL")
27
26
  )
28
27
 
28
+ qwen_client = AsyncOpenAI(
29
+ base_url="https://all.chatfire.cn/qwen/v1",
30
+ api_key="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxMGNiZGFmLTM3NTQtNDYxYy1hM2ZmLTllYzgwMDUzMjljOSIsImV4cCI6MTc0MzAzNTk4OH0.GVAoSFtK94a9CgxqHCEnxzAnRi7gafIvYyH9mIJUh4s"
31
+ )
32
+
29
33
  # zhipuai_client = OpenAI(
30
34
  # api_key=os.getenv("ZHIPUAI_API_KEY"),
31
35
  # base_url=os.getenv("ZHIPUAI_BASE_URL")
@@ -53,4 +57,3 @@ if __name__ == '__main__':
53
57
  # )
54
58
 
55
59
  # r.model_dump_json()
56
-