MeUtils 2025.2.20.17.30.7__py3-none-any.whl → 2025.2.25.19.14.31__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.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/METADATA +261 -261
- {MeUtils-2025.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/RECORD +38 -32
- examples/_openaisdk/4v.py +3 -2
- examples/_openaisdk/openai_chatfire.py +7 -3
- examples/_openaisdk/openai_files.py +11 -7
- examples/_openaisdk/openai_images.py +15 -10
- examples/_openaisdk/openai_jina.py +58 -0
- meutils/apis/jimeng/images.py +3 -2
- meutils/apis/kling/api.py +1 -1
- meutils/apis/niutrans.py +2 -0
- meutils/apis/oneapi/token.py +0 -2
- meutils/apis/siliconflow/images.py +4 -1
- meutils/apis/sunoai/suno_api.py +42 -0
- meutils/apis/to_image/md.py +24 -2
- meutils/apis/translator/deeplx.py +2 -1
- meutils/caches/acache.py +51 -7
- meutils/data/VERSION +1 -1
- meutils/data/oneapi/FOOTER.md +2 -2
- meutils/data/oneapi/NOTICE.md +1 -151
- meutils/data/oneapi/_NOTICE.md +140 -0
- meutils/files/__init__.py +11 -0
- meutils/files/qwen_files.py +30 -0
- meutils/io/files_utils.py +2 -2
- meutils/llm/check_utils.py +2 -1
- meutils/llm/clients.py +5 -2
- meutils/llm/completions/qwenllm.py +55 -8
- meutils/llm/utils.py +1 -0
- meutils/schemas/oneapi/common.py +26 -2
- meutils/schemas/openai_types.py +60 -3
- meutils/schemas/suno_types.py +1 -1
- meutils/schemas/task_types.py +1 -0
- meutils/schemas/vidu_types.py +4 -4
- meutils/serving/fastapi/dependencies/auth.py +8 -2
- meutils/serving/fastapi/dependencies/headers.py +31 -0
- {MeUtils-2025.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/LICENSE +0 -0
- {MeUtils-2025.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/WHEEL +0 -0
- {MeUtils-2025.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.2.20.17.30.7.dist-info → MeUtils-2025.2.25.19.14.31.dist-info}/top_level.txt +0 -0
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
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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 =
|
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
|
-
|
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.
|
1
|
+
2025.02.25.19.14.31
|
meutils/data/oneapi/FOOTER.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
<div class="custom-footer">@
|
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://
|
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>
|
meutils/data/oneapi/NOTICE.md
CHANGED
@@ -1,151 +1 @@
|
|
1
|
-
|
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
|
+

|
@@ -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>
|
@@ -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
|
-
|
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"))
|
meutils/llm/check_utils.py
CHANGED
@@ -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-
|
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
|
-
|
@@ -7,10 +7,18 @@
|
|
7
7
|
# @WeChat : meutils
|
8
8
|
# @Software : PyCharm
|
9
9
|
# @Description :
|
10
|
+
"""
|
11
|
+
File "/usr/local/lib/python3.10/site-packages/meutils/llm/completions/qwenllm.py", line 47, in create
|
12
|
+
yield response.choices[0].message.content
|
13
|
+
AttributeError: 'str' object has no attribute 'choices'
|
14
|
+
|
15
|
+
"""
|
10
16
|
|
11
17
|
from openai import AsyncOpenAI
|
12
18
|
|
13
19
|
from meutils.pipe import *
|
20
|
+
from meutils.llm.clients import qwen_client
|
21
|
+
|
14
22
|
from meutils.llm.openai_utils import to_openai_params
|
15
23
|
|
16
24
|
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
@@ -25,13 +33,27 @@ from fake_useragent import UserAgent
|
|
25
33
|
ua = UserAgent()
|
26
34
|
|
27
35
|
|
28
|
-
async def create(request: ChatCompletionRequest):
|
29
|
-
token = await get_next_token_for_polling(feishu_url=FEISHU_URL)
|
36
|
+
async def create(request: ChatCompletionRequest, token: Optional[str] = None): # ChatCompletionRequest 重构
|
37
|
+
token = token or await get_next_token_for_polling(feishu_url=FEISHU_URL)
|
30
38
|
|
31
39
|
client = AsyncOpenAI(
|
32
|
-
base_url=base_url,
|
40
|
+
base_url=base_url,
|
41
|
+
api_key=token,
|
33
42
|
default_headers={'User-Agent': ua.random}
|
34
43
|
)
|
44
|
+
|
45
|
+
# qwen结构
|
46
|
+
if any(i in request.model.lower() for i in ("search",)):
|
47
|
+
request.model = "qwen-plus-latest"
|
48
|
+
request.messages[-1]['chat_type'] = "search"
|
49
|
+
|
50
|
+
if any(i in request.model.lower() for i in ("qwq", "think")):
|
51
|
+
request.model = "qwen-plus-latest"
|
52
|
+
request.messages[-1]['feature_config'] = {"thinking_enabled": True}
|
53
|
+
|
54
|
+
# 多模态: todo
|
55
|
+
# file_object = await qwen_client.files.create(file=(file.filename, file.file), purpose="file-extract")
|
56
|
+
|
35
57
|
data = to_openai_params(request)
|
36
58
|
|
37
59
|
if request.stream:
|
@@ -43,8 +65,11 @@ async def create(request: ChatCompletionRequest):
|
|
43
65
|
|
44
66
|
else:
|
45
67
|
response = await client.chat.completions.create(**data)
|
46
|
-
|
47
|
-
|
68
|
+
for i in range(3):
|
69
|
+
if not isinstance(response, str): # 报错
|
70
|
+
yield response.choices[0].message.content
|
71
|
+
else:
|
72
|
+
logger.warning(f"重试 {i}\n{response}")
|
48
73
|
|
49
74
|
|
50
75
|
if __name__ == '__main__':
|
@@ -60,16 +85,38 @@ if __name__ == '__main__':
|
|
60
85
|
# ]
|
61
86
|
request = ChatCompletionRequest(
|
62
87
|
# model="qwen-turbo-2024-11-01",
|
63
|
-
model="qwen-max-latest",
|
88
|
+
# model="qwen-max-latest",
|
89
|
+
model="qwen-max-latest-search",
|
90
|
+
|
64
91
|
# model="qwen-plus-latest",
|
65
92
|
|
66
93
|
messages=[
|
67
94
|
{
|
68
95
|
'role': 'user',
|
69
|
-
'content': '
|
96
|
+
# 'content': '今天南京天气',
|
97
|
+
# 'content': '总结下',
|
98
|
+
|
99
|
+
# "chat_type": "search",
|
100
|
+
|
101
|
+
"content": [
|
102
|
+
{
|
103
|
+
"type": "text",
|
104
|
+
"text": "总结下",
|
105
|
+
"chat_type": "t2t",
|
106
|
+
"feature_config": {
|
107
|
+
"thinking_enabled": False
|
108
|
+
}
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"type": "file",
|
112
|
+
"file": "2d677df1-45b2-4f30-829f-0d42b2b07136"
|
113
|
+
}
|
114
|
+
]
|
115
|
+
|
70
116
|
},
|
71
117
|
|
72
118
|
],
|
73
|
-
stream=
|
119
|
+
stream=True,
|
120
|
+
|
74
121
|
)
|
75
122
|
arun(create(request))
|