MeUtils 2025.1.29.10.0.47__py3-none-any.whl → 2025.2.6.13.5.49__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.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/METADATA +28 -28
- {MeUtils-2025.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/RECORD +36 -28
- examples/_openaisdk/openai_baichuan.py +2 -2
- examples/_openaisdk/openai_baidu.py +61 -0
- examples/_openaisdk/openai_chatfire.py +24 -13
- examples/_openaisdk/openai_dashscope.py +32 -0
- examples/_openaisdk/openai_deepseek.py +53 -3
- examples/_openaisdk/openai_ep.py +29 -0
- examples/_openaisdk/openai_gitee.py +23 -9
- examples/_openaisdk/openai_images.py +12 -9
- examples/_openaisdk/openai_luchentech.py +60 -0
- examples/_openaisdk/openai_moderations.py +56 -0
- examples/_openaisdk/openai_siliconflow.py +5 -4
- examples/xxx.py +0 -0
- meutils/apis/chatglm/glm_video_api.py +4 -2
- meutils/apis/hailuoai/videos.py +18 -37
- meutils/apis/images/recraft.py +10 -5
- meutils/apis/jimeng/images.py +21 -8
- meutils/apis/search/metaso.py +34 -3
- meutils/apis/vidu/vidu_video.py +1 -1
- meutils/caches/acache.py +32 -11
- meutils/caches/demo.py +28 -0
- meutils/data/VERSION +1 -1
- meutils/data/oneapi/NOTICE.md +3 -17
- meutils/llm/clients.py +3 -0
- meutils/llm/completions/agents/search.py +28 -6
- meutils/llm/completions/qwenllm.py +12 -3
- meutils/llm/completions/reasoner.py +87 -0
- meutils/llm/openai_utils/common.py +2 -0
- meutils/schemas/metaso_types.py +7 -1
- meutils/schemas/oneapi/common.py +38 -7
- meutils/schemas/vidu_types.py +1 -1
- {MeUtils-2025.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/LICENSE +0 -0
- {MeUtils-2025.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/WHEEL +0 -0
- {MeUtils-2025.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/entry_points.txt +0 -0
- {MeUtils-2025.1.29.10.0.47.dist-info → MeUtils-2025.2.6.13.5.49.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : openai_siliconflow
|
5
|
+
# @Time : 2024/6/26 10:42
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description : https://cloud.luchentech.com/maas/modelMarket/123e4567-e89b-12d3-a456-426614174000
|
10
|
+
import os
|
11
|
+
|
12
|
+
from meutils.pipe import *
|
13
|
+
from openai import OpenAI
|
14
|
+
from openai import OpenAI, APIStatusError
|
15
|
+
from fake_useragent import UserAgent
|
16
|
+
|
17
|
+
ua = UserAgent()
|
18
|
+
client = OpenAI(
|
19
|
+
# base_url="https://free.chatfire.cn/v1",
|
20
|
+
api_key="7b1c32c9-5bd9-4958-a8e4-4be68056038c",
|
21
|
+
base_url="https://cloud.luchentech.com/api/maas",
|
22
|
+
default_headers={'User-Agent': ua.random}
|
23
|
+
)
|
24
|
+
|
25
|
+
message = """
|
26
|
+
A Chinese beauty plays Catwoman. She is seductive. She wears a fitted black leather tights, decorated with neon blue lines flowing along the seams, pulsating like an electric current. There are many hollow designs for tights, showing big breasts, nipples and female genitals. She wears a pair of black cat ear headdresses. Her hands are covered with black leather gloves extending to her elbows, with retractable silver claws on her fingertips. She stood around the roof surrounded by towering skyscrapers, and countless neon signs flashed with various colors.
|
27
|
+
"""
|
28
|
+
|
29
|
+
try:
|
30
|
+
completion = client.chat.completions.create(
|
31
|
+
model="deepseek_r1",
|
32
|
+
# model="xxxxxxxxxxxxx",
|
33
|
+
messages=[
|
34
|
+
|
35
|
+
{"role": "user", "content": "详细介绍下你是谁"}
|
36
|
+
],
|
37
|
+
# top_p=0.7,
|
38
|
+
stream=False,
|
39
|
+
max_tokens=1000
|
40
|
+
)
|
41
|
+
except APIStatusError as e:
|
42
|
+
print(e.status_code)
|
43
|
+
|
44
|
+
print(e.response)
|
45
|
+
print(e.message)
|
46
|
+
print(e.code)
|
47
|
+
|
48
|
+
for chunk in completion:
|
49
|
+
# print(bjson(chunk))
|
50
|
+
print(chunk.choices[0].delta.content, flush=True)
|
51
|
+
|
52
|
+
# r = client.images.generate(
|
53
|
+
# model="cogview-3-plus",
|
54
|
+
# prompt="a white siamese cat",
|
55
|
+
# size="1024x1024",
|
56
|
+
# quality="hd",
|
57
|
+
# n=1,
|
58
|
+
# )
|
59
|
+
|
60
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# @Project : AI. @by PyCharm
|
4
|
+
# @File : openai_moderations
|
5
|
+
# @Time : 2025/2/5 08:38
|
6
|
+
# @Author : betterme
|
7
|
+
# @WeChat : meutils
|
8
|
+
# @Software : PyCharm
|
9
|
+
# @Description :
|
10
|
+
|
11
|
+
from meutils.pipe import *
|
12
|
+
from meutils.io.image import image_to_base64
|
13
|
+
|
14
|
+
from openai import OpenAI
|
15
|
+
|
16
|
+
base64_image = image_to_base64('1.png', for_image_url=True)
|
17
|
+
client = OpenAI(
|
18
|
+
# base_url="https://ai.gitee.com/v1",
|
19
|
+
# api_key="AHKZ65ARNFH8QGMUUVCPECDTZVOLRPUXIKPGAC1Y",
|
20
|
+
|
21
|
+
# base_url="https://api-proxy.oaipro.com/v1",
|
22
|
+
base_url="https://api.openai.com/v1",
|
23
|
+
|
24
|
+
api_key="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"
|
25
|
+
)
|
26
|
+
#
|
27
|
+
response = client.moderations.create(
|
28
|
+
model="omni-moderation-latest",
|
29
|
+
input=[
|
30
|
+
{
|
31
|
+
"type": "text",
|
32
|
+
"text": "...text to classify goes here..."
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"type": "image_url",
|
36
|
+
"image_url": {
|
37
|
+
"url": base64_image
|
38
|
+
}
|
39
|
+
}
|
40
|
+
],
|
41
|
+
)
|
42
|
+
|
43
|
+
#
|
44
|
+
# response = client.moderations.create(
|
45
|
+
# model="omni-moderation-latest",
|
46
|
+
# input=[
|
47
|
+
# {
|
48
|
+
# "type": "image_url",
|
49
|
+
# "image_url": {
|
50
|
+
# "url": base64_image
|
51
|
+
# }
|
52
|
+
# }
|
53
|
+
# ],
|
54
|
+
# )
|
55
|
+
#
|
56
|
+
# print(response.model_dump_json(indent=2))
|
@@ -30,12 +30,13 @@ model = "01-ai/Yi-1.5-6B-Chat"
|
|
30
30
|
# model = "meta-llama/Meta-Llama-3.1-8B-Instruct"
|
31
31
|
# model = "meta-llama/Meta-Llama-3.1-70B-Instruct"
|
32
32
|
# model = 'meta-llama/Meta-Llama-3.1-405B-Instruct'
|
33
|
-
model = "deepseek-ai/DeepSeek-V2.5"
|
33
|
+
# model = "deepseek-ai/DeepSeek-V2.5"
|
34
|
+
model = "deepseek-ai/DeepSeek-R1"
|
34
35
|
|
35
36
|
|
36
37
|
# api black-forest-labs/FLUX.1-schnell
|
37
38
|
messages = [
|
38
|
-
{'role': 'user', 'content': '
|
39
|
+
{'role': 'user', 'content': '详细说明 9.8 9.11那个大'}
|
39
40
|
]
|
40
41
|
response = client.chat.completions.create(
|
41
42
|
# model='alibaba/Qwen1.5-110B-Chat',
|
@@ -44,8 +45,8 @@ response = client.chat.completions.create(
|
|
44
45
|
# {'role': 'user', 'content': "抛砖引玉是什么意思呀"}
|
45
46
|
# ],
|
46
47
|
messages=messages,
|
47
|
-
stream=
|
48
|
-
max_tokens=
|
48
|
+
stream=False,
|
49
|
+
max_tokens=1,
|
49
50
|
)
|
50
51
|
print(response)
|
51
52
|
for chunk in response:
|
examples/xxx.py
ADDED
File without changes
|
@@ -103,10 +103,12 @@ async def generate(request: ImageRequest, n: int = 30): # 兼容dalle3
|
|
103
103
|
# VideoResult
|
104
104
|
if __name__ == '__main__':
|
105
105
|
api_key = "e21bd630f681c4d90b390cd609720483.WSFVgA3Kk1wNCX0mN"
|
106
|
-
api_key = "7d10426c06afa81e8d7401d97781249c.DbqlSsicRtaUdKXI" # 新号
|
106
|
+
# api_key = "7d10426c06afa81e8d7401d97781249c.DbqlSsicRtaUdKXI" # 新号
|
107
107
|
|
108
108
|
request = VideoRequest(
|
109
|
-
model='cogvideox-flash'
|
109
|
+
# model='cogvideox-flash',
|
110
|
+
model='cogvideox'
|
111
|
+
|
110
112
|
)
|
111
113
|
# r = arun(create_task(request, api_key=api_key))
|
112
114
|
pass
|
meutils/apis/hailuoai/videos.py
CHANGED
@@ -19,7 +19,8 @@ from meutils.pipe import *
|
|
19
19
|
from meutils.hash_utils import md5
|
20
20
|
from meutils.io.files_utils import to_bytes
|
21
21
|
from meutils.schemas.hailuo_types import BASE_URL, FEISHU_URL, FEISHU_URL_OSS
|
22
|
-
from meutils.schemas.hailuo_types import BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
22
|
+
from meutils.schemas.hailuo_types import BASE_URL_ABROAD as BASE_URL, FEISHU_URL_ABROAD as FEISHU_URL
|
23
|
+
|
23
24
|
from meutils.schemas.hailuo_types import VideoRequest, VideoResponse
|
24
25
|
from meutils.llm.check_utils import check_tokens
|
25
26
|
from meutils.config_utils.lark_utils import get_next_token_for_polling
|
@@ -48,12 +49,8 @@ MODEL_MAPPING = {
|
|
48
49
|
# minimax_video-01,minimax_video-01-live2d,,minimax_t2v-01,minimax_i2v-01,minimax_i2v-01-live,minimax_s2v-01
|
49
50
|
|
50
51
|
|
51
|
-
async def upload(file: bytes, token:
|
52
|
-
|
53
|
-
if vip:
|
54
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
55
|
-
|
56
|
-
data = await get_request_policy(token, vip)
|
52
|
+
async def upload(file: bytes, token: str):
|
53
|
+
data = await get_request_policy(token)
|
57
54
|
|
58
55
|
access_key_id = data["accessKeyId"]
|
59
56
|
access_key_secret = data["accessKeySecret"]
|
@@ -116,13 +113,8 @@ async def upload(file: bytes, token: Optional[str] = None, vip: Optional[bool] =
|
|
116
113
|
|
117
114
|
@alru_cache(ttl=1 * 24 * 60 * 60)
|
118
115
|
@retrying()
|
119
|
-
async def get_access_token(token:
|
120
|
-
|
121
|
-
if vip:
|
122
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
123
|
-
|
124
|
-
token = token or await get_next_token_for_polling(FEISHU_URL, from_redis=True)
|
125
|
-
# if vip: return token # 关闭自动刷新
|
116
|
+
async def get_access_token(token: str):
|
117
|
+
logger.debug(f"get_access_token:{token}")
|
126
118
|
|
127
119
|
params = {
|
128
120
|
'device_platform': 'web',
|
@@ -154,7 +146,7 @@ async def get_access_token(token: Optional[str] = None, vip: Optional[bool] = Tr
|
|
154
146
|
|
155
147
|
|
156
148
|
@alru_cache(ttl=1 * 60)
|
157
|
-
async def get_request_policy(token
|
149
|
+
async def get_request_policy(token):
|
158
150
|
"""
|
159
151
|
{
|
160
152
|
"data": {
|
@@ -169,11 +161,7 @@ async def get_request_policy(token, vip: Optional[bool] = True):
|
|
169
161
|
}
|
170
162
|
}
|
171
163
|
"""
|
172
|
-
token = await get_access_token(token
|
173
|
-
|
174
|
-
global BASE_URL, FEISHU_URL
|
175
|
-
if vip:
|
176
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
164
|
+
token = await get_access_token(token)
|
177
165
|
|
178
166
|
headers = {
|
179
167
|
'token': token,
|
@@ -196,14 +184,11 @@ async def get_request_policy(token, vip: Optional[bool] = True):
|
|
196
184
|
|
197
185
|
|
198
186
|
@retrying(predicate=lambda r: r.base_resp.status_code in {1000061, 1500009}) # 限流
|
199
|
-
async def create_task(request: VideoRequest, token: Optional[str] = None
|
200
|
-
|
201
|
-
if vip:
|
202
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
203
|
-
|
204
|
-
refresh_token = token or await get_next_token_for_polling(FEISHU_URL, from_redis=True)
|
187
|
+
async def create_task(request: VideoRequest, token: Optional[str] = None):
|
188
|
+
refresh_token = token or await get_next_token_for_polling(FEISHU_URL, from_redis=True, check_token=check_token)
|
205
189
|
# refresh_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDA0NzA4NzgsInVzZXIiOnsiaWQiOiIzMjg2MDg4ODkzNTA4MTU3NDQiLCJuYW1lIjoiUm9idXN0IEdlcnRydWRlIiwiYXZhdGFyIjoiaHR0cHM6Ly9jZG4uaGFpbHVvYWkudmlkZW8vbW9zcy9wcm9kLzIwMjQtMTItMjgtMTYvdXNlci91c2VyX2F2YXRhci8xNzM1Mzc1OTI0OTkyMTcxMDY3LWF2YXRhcl8zMjg2MDg4ODkzNTA4MTU3NDQiLCJkZXZpY2VJRCI6IjMwMjgzMzc1OTUxMjc2NDQxNyIsImlzQW5vbnltb3VzIjpmYWxzZX19.dLNBSHjqnKutGl3ralS2g8A-RodHjOdos11vdpbkPwc"
|
206
|
-
|
190
|
+
|
191
|
+
token = await get_access_token(refresh_token)
|
207
192
|
|
208
193
|
payload = {
|
209
194
|
"desc": request.prompt,
|
@@ -228,7 +213,7 @@ async def create_task(request: VideoRequest, token: Optional[str] = None, vip: O
|
|
228
213
|
# "name": "duikoux.jpg", "type": "jpg"}],
|
229
214
|
# "modelID": "23021", "quantity": "1"}
|
230
215
|
else:
|
231
|
-
data = await upload(file, token=refresh_token
|
216
|
+
data = await upload(file, token=refresh_token)
|
232
217
|
file_data = {
|
233
218
|
"id": data['data']['fileID'],
|
234
219
|
"name": "_.png",
|
@@ -291,7 +276,7 @@ async def create_task(request: VideoRequest, token: Optional[str] = None, vip: O
|
|
291
276
|
|
292
277
|
task_id = (data.get('data') or {}).get('id', '')
|
293
278
|
response = VideoResponse(
|
294
|
-
task_id=f"
|
279
|
+
task_id=f"hailuoai-{task_id}",
|
295
280
|
base_resp=data.get('statusInfo', {}),
|
296
281
|
system_fingerprint=refresh_token
|
297
282
|
)
|
@@ -331,9 +316,6 @@ async def create_task(request: VideoRequest, token: Optional[str] = None, vip: O
|
|
331
316
|
|
332
317
|
# 307134660730421250
|
333
318
|
async def get_task(task_id: str, token: str):
|
334
|
-
global BASE_URL, FEISHU_URL
|
335
|
-
if "hailuoai" in task_id:
|
336
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
337
319
|
|
338
320
|
task_id = task_id.rsplit('-', 1)[-1]
|
339
321
|
|
@@ -380,9 +362,8 @@ async def get_task(task_id: str, token: str):
|
|
380
362
|
|
381
363
|
|
382
364
|
# https://hailuoai.video/v1/api/user/equity?device_platform=web&app_id=3001&version_code=22201&uuid=3de88ad0-8a38-48a9-8ed3-0d63f9c71296&lang=en&device_id=302833759512764417&os_name=Mac&browser_name=chrome&device_memory=8&cpu_core_num=10&browser_language=zh-CN&browser_platform=MacIntel&screen_width=1920&screen_height=1080&unix=1731571578000
|
365
|
+
@alru_cache(ttl=3600)
|
383
366
|
async def check_token(token, threshold: int = 30, **kwargs):
|
384
|
-
BASE_URL, FEISHU_URL = BASE_URL_ABROAD, FEISHU_URL_ABROAD
|
385
|
-
|
386
367
|
if not isinstance(token, str):
|
387
368
|
return await check_tokens(token, check_token)
|
388
369
|
|
@@ -426,9 +407,9 @@ if __name__ == '__main__': # 304752356930580482
|
|
426
407
|
# p = "/Users/betterme/PycharmProjects/AI/MeUtils/meutils/data/cowboy-hat-face.webp"
|
427
408
|
# arun(upload(Path(p).read_bytes(), token=token, vip=vip))
|
428
409
|
# arun(upload(Path(p).read_bytes(), vip=False))
|
429
|
-
access_token = arun(get_access_token())
|
410
|
+
# access_token = arun(get_access_token())
|
411
|
+
# arun(upload(Path("img.png").read_bytes(), token=access_token))
|
430
412
|
# arun(upload(Path("img.png").read_bytes(), token=access_token))
|
431
|
-
arun(upload(Path("img.png").read_bytes(), token=access_token))
|
432
413
|
|
433
414
|
# arun(get_task(task_id="307137575113703427", token=token)) # 307173162217783304
|
434
415
|
# arun(get_task(task_id="307148849188945924", token=token))
|
@@ -448,7 +429,7 @@ if __name__ == '__main__': # 304752356930580482
|
|
448
429
|
first_frame_image="https://oss.ffire.cc/files/kling_watermark.png" # 307173162217783304
|
449
430
|
)
|
450
431
|
|
451
|
-
r = arun(create_task(request, token=token
|
432
|
+
r = arun(create_task(request, token=token))
|
452
433
|
arun(get_task(task_id=r.task_id, token=r.system_fingerprint))
|
453
434
|
#
|
454
435
|
#
|
meutils/apis/images/recraft.py
CHANGED
@@ -62,6 +62,9 @@ async def generate(request: RecraftImageRequest, token: Optional[str] = None):
|
|
62
62
|
logger.debug(params)
|
63
63
|
|
64
64
|
response = await client.get("/poll_recraft", params=params)
|
65
|
+
logger.debug(response.text)
|
66
|
+
logger.debug(response.status_code)
|
67
|
+
|
65
68
|
response.raise_for_status()
|
66
69
|
metadata = response.json()
|
67
70
|
logger.debug(metadata)
|
@@ -128,6 +131,7 @@ if __name__ == '__main__':
|
|
128
131
|
token = "__Host-next-auth.csrf-token=b6b37b10948a6156a1a39d09bd43ab6d0867fcd6001987531fe6f86f802bb0aa%7C3afdfd56119e801c5cb80dc96670031c85a2d9a02e8205f38fc5d6128e1a4075; _gcl_au=1.1.386131236.1736384852; _ga=GA1.1.282109674.1736384854; AMP_MKTG_7268c9db0f=JTdCJTdE; _fbp=fb.1.1736384856672.571916090953259055; _clck=2fa0yj%7C2%7Cfsf%7C0%7C1835; x-recraft-referral-code=1f1xoKVYB9; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2Fprojects; _uetsid=1d264620ce2611efaf8a0f99cb3bbb99; _uetvid=1d2649e0ce2611efb597376fda548d79; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..WqFwC8QbnjwUkMxi.RYqiKFIQTVwJF5azhoAlOscRiivJrpL5fRaArVfPstl4mOB0YTUtp3l7TMKbGEsM8nV2DW68eRarLqQeVjq0eKzD4MNuvuKy0y0phQTMs7vKlKCM5UgWMxz3Uz30f7GmH6s4D0aFDGbJ6upcsUqZ0BMwY2KkXId5uilh0jrDhinv5ZCIQA0o89Nf_lOcapGVsEi4OdYhe8fDDuhaI8x8TnkTQcDjwijc44WWUQg5vXJusYAVRbXR0-hO_fLl7verrBVKWPKXsP_tbRSk2TIqTavXoP-RcHI55R-vQD0G3lbl0hkjiDhWZ8SG2g3_KkbnF9XovoilxZpguNUSqLLHevldctBrMDG9vnoG6FRVwmPF8T5IxVYnkCb5IiyIJLMAOWlVlcNmKM2n2N-_iW21-skyqq0O0sUpukL0gFLp5UlpKtXUbTOMaD60Ja0D7n2THWO3yWrlTmXJ641igNxsAfb8iMuN9XpVSLTGmSVoojIQkbb41Br5ZmAdlH3D9X2u7cZD756HkOG4LhWp6rjaoUwDY1XBMjSxs9lOOGQGnr7xfmVC7fSWDuRhHxwF0C9PUbndo3zv12A437VASNXzuJ7W-nvBP0i7PUw09bKgYTsUyytFwBiRFW_Lj3l5Fcu0qrXQBosvdZvgS3QNEMqOWPWiyQBI5NatP8ZSQuquzvNDRt4typ5T6YP6NEqqMwSLRL6mwA1_ZquU78kygEUFYq5fUtUoWoW8CdbHsZe8DvN0fIhW2iAguey5hj7Dwg3xstOM-aDyRMbY-ML__zTi0w-TB0XzJ9NSXe8a1b3vvjzNqNWmeUwF4eT2KAloIvKRrlWZRC3OedxI8aRvoVGcnWqpRsvZNgUY3blfxG9lR1KrNgAcDhcRB3Si3APLlUT5Uv0MzfZKwWtZ16lLNmY6bRnlQO_IGRVvGWp0tXiwMAR6vXEhq3FqEOMy9W1JW2MVS9s_mpOrloRr4CIxtDbrE90Pjhm1wPzC43OMGsm2gxU8JTaRtWftnZ6EUlO2rski0Ep2Kl_iTwotDVPZY3RV9B8GWTfmJ8mU2EPTjlKcpeyPGiLdZkI4r5HGT6Bt9sv3JXQeU64ecmhbDEr9zrDVRDJlt3nGsQlDq21xkOsQw6nyFjg0cw_i5sGqkyLEQgkfVHGaNuUy_aP7us-DHeLCgusM0qFjsGh6TqY536AxlecGZr5Xh7FOEgVcNHfmT8gTRGPJuqMU_c8kyWqhihx_vm1dTTkHF0O4LJ3W9c-8sAQhsHvzsGGoEBkCi3TaTlBAcJ1_4ix1ITj21Ix1Udmc4cvNE5NRW_aBiwGQvrKlT7qvpxzzHZd-zpF2jAN78bGm6-jK2WSy59-y4FN9ZUrG1QwG5n-3rFiSl-pqRY3Bybx4ANnEU1cbf-0rnL-R3rcbCOEcMOf3CWc78PraUa7sqoV4tnmJdSwjmpVPmptOs2b9bbg6B7XqAsYX9PlkSAztLJQlVIUD4et0O1MOf5nSCmOG-x4cb1wtw8O2ZKea963732M9MUpiw9jBn2sAQbH5cufD0xlXGuVzn8gkDzOb007V018t--yJmbYcvDgMbp7VPESkQdtVMScn-jcpzNrdqDRIUjehEseVuULZhlv4HKopQjNrnyEenZb7kbeogISNKAa5zVKLKots1L9kTHkyziYdcv8bETD53c1CiIekupheQO32zXFc5KDeoTyQNi0O4KKpSCKSlp8GtmNt1q5--y8z1mmFru0xQeTcFG7rgm-q3u6lIQuxRM5n-hHdosYhRsJmX_AOlzw7UpagoV90hzxfGQwa5Oa9OHfoisF5-ueVsibMe-mqWct6OVV9Rke_7lPfjhVbQUS1-Y73MJJF1H5uW8b88GZqPIFxNTb8P-1ACFCWFpvCJRHjJ2rNP5AF1VtSKIgitmaNVwmqcwCwXOpGO7KqSqfKiIBGgik2t7T_joJjwZetvjpnZ-apNCJpmqtJc1rEfDGDBQvaXEuIJ3aB2nB1f4JNqxUatW9D_QMuLHvKmKPlRBQRtHMA7p-XFaJHQm4U-yhz75eGMCfcT7ik-3i8QNFJwwrZcWVbDNqdExmpV0hiE9fjgbmhU5OkoysPgrZfn0WSfo1Cdccb8WQuR8Kn_xj9cCqUjLm79mrsfUzLDsQOgIRBeiUoAH3oQKfI5Iqp2tquOHWb8SyZwENkpKPnipX_60G7BxcqpB5WI6-3MIilfH9itqdYYKImNncuVEzNZX-b2STHKxX1ESCgeb-Hq6SUuEwQtHK0lFnw_Jom8he6ShB-n4a2s6dBO4zT_awB4LZF42-ri7ewlONh2WzLTGW-lK7JNLPEfeXWR-jye7ALwGA2UEtXisMUhEMpuCt2La5EiCKBaw6deGygVbJ2t6dEbkSSEAoZONHctgqmZ9dNMaXC9Hyyo5sPKZPo8uXtJSslyHJlMvgY4W8Uj41IP3Umw1-j_FjYjWiOc5BFAvSbLczgWoXWqbcDa2plXnUmty9OTHw02dZb4opkhLi43ONSodwHqHGWyTgH3kdRhFYV-2uwkSVF8nZG0RHxEDGB3knN6HoHji2LJcn9TwZzOQDaG5sJzrVI12ZLPUx3KSxrygZ6d7KFJpXmi7jXe2kyExrO_HtpNebKq__h776GvuWsx887t2T-DoA1XFoNxbSWIDBaaRrrrMQnTubI7Dl6gs3ea7z2hmDFYcwrqb0r9bDBgx7yhSPjn3AgoRs43NYRe1gVoURcHduyFS6DM7wncDDMIyz3bgEtvJ4YPI2oPIH74MHDJOR1yUt6OmGMqIs_XbuekM9bi91iNAxwcIgdnYWTGUiR2Vk6O2VqqheOwAXn-_G16oGocsaLoOzu22ywuK6xNcleypBc_vyaPuoDmIlxxNvApurczDFHbTOvlq19G-CcP34gKlW_VLe_1KSA8W5cnH28yllZhzTUs14UpxLC6uV6VarxVqrUCLeWgvJ3Nc0pXiBE4ZwZuwWMzYWGSi2VtPeShJwhYpRlyt-AZLgXmNMpN4cGqxaFLhiD3m3M5r8ZzsBE_krksF4x-dfptxE18DRSZ5mQ9iF8BEl73VX5s88L4hDBZn9up6hAG-rTVVr3JOT85KYhvXfll92al7kgmYxNF3UVsHBTX8XxtiQx14wKm5gRwLtbBxeuD7HdU3cyqZgvrBrQlISH8p5ghqULI_BFIuXEN8uD52RE3vXrb9gUEMSAWeo7CS_xx-XwSVsfbnMBwzqFe7AcYDGfe38zpCi-oh9sCJjAAXN-KD40UZB7ld-kx3DrDjmRLnp1-gO0Sl4CKti9MFZboe_gxODqG070Cok0niSsoxJdLnfhcYw_JN5fWfhJOzTxRP7l4CXq74ji7ltw7N_EgYUzIONC3nAxZrU746soEvWcUNLmXyYEow3XWyTddMcenK7tLkveetyVXrQRnR7-n0y-WHKpA0dN8ZdnCM4j_z7wkoO4FN3GxGAL9Y0hi--9th4XbP8p_r6VLJ4SQNIuIKuyxRB6Y2NPFNnrOLlXuZiM9OUuFGO8Kz2qU0mPswV805wFCNh2bGNnSPOamizz4LernNK84t6_GM4NgoN7yTaBEX-Ng1EvnJhEfcZtwI3oSXBuLn7ufbWupHMJZfggEZ2FV5y3-w6SQymrpUSBnDZh1LpmibK1cGnJjAB7-1sWmTGUnV75j-qWMh97bPqJi8Uty5tYbgpulO-P4n1KTuCqGXbLDwINu_FNcmOEreQYJcEX1i0QOEoVblu5eJqC5kBPkBPEC1bVhNl3D2Ufdd3i2XCbxvfCoyc5eysl35Od1Hxst-KLZ4tmYI_pTNlI-JqwuKC2RUzJXVqiXpmaAk8jT592uFJs28jlLiB4TmWQ3L48kCnLaya0c_AFhGecdHEbbEy; __Secure-next-auth.session-token.1=twI76zjwWsf6cDBVpwTSlQGNTowWAosArlcPKymXnMkcNljStgeFkom9k95zpiXIDpFsiJB-PTLuGBj_3HmZUpEm5MuHUgbQKSFPio2l7wRW6a98uWicEzF4fcCjGz9OrDwBUnUxjcNnXue0alwa6AhF5T1B79ibZHjBtGq4IYsmt_l9mHR4wsRNXV0w_zCOhQfH1R8sczNff7eKcVnDo14FeadzZEqSNoKGU1C_6TZMOa7zzETGQPekh279ylKUaOZ9EshI_P3aRw71XNEdE2C-uOMZPuJIA3zPBvgYxdfppBXENTh8quyQAzHFmIMubPMg2zCNTD6ANvC5eTEH1B675sA9emI9DnC2UJVmNBJQPIpkncxQd98eaeYS0tHaUyzD7HQFJBFQOCmEh-ORdrJVoab1A36idPdzLusO0Tm1e.ZrEoUqMjNICG-4yAF6sAPw; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjJlMTcxNjRlMy0xMjU4LTQ3ZTYtYTJmYi1jN2JhM2FmNWRiZWUlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJlYTNmNmY4NC0zNzNhLTQ0ODgtYTRjMi1mYjgxMzk1YzNiMzElMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0ODU2MzQxJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NTAzMDcxOSUyQyUyMmxhc3RFdmVudElkJTIyJTNBNjElMkMlMjJwYWdlQ291bnRlciUyMiUzQTEyJTdE; _clsk=szrjt7%7C1736385030758%7C10%7C1%7Cq.clarity.ms%2Fcollect; _ga_ME15C3DGRL=GS1.1.1736384853.1.1.1736385031.0.0.0"
|
129
132
|
token = "__Host-next-auth.csrf-token=b6b37b10948a6156a1a39d09bd43ab6d0867fcd6001987531fe6f86f802bb0aa%7C3afdfd56119e801c5cb80dc96670031c85a2d9a02e8205f38fc5d6128e1a4075; _gcl_au=1.1.386131236.1736384852; _ga=GA1.1.282109674.1736384854; AMP_MKTG_7268c9db0f=JTdCJTdE; _fbp=fb.1.1736384856672.571916090953259055; _clck=2fa0yj%7C2%7Cfsf%7C0%7C1835; x-recraft-referral-code=1f1xoKVYB9; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2Fprojects; _uetsid=1d264620ce2611efaf8a0f99cb3bbb99; _uetvid=1d2649e0ce2611efb597376fda548d79; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjJlMTcxNjRlMy0xMjU4LTQ3ZTYtYTJmYi1jN2JhM2FmNWRiZWUlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJlYTNmNmY4NC0zNzNhLTQ0ODgtYTRjMi1mYjgxMzk1YzNiMzElMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0ODU2MzQxJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NTAzMTczNyUyQyUyMmxhc3RFdmVudElkJTIyJTNBNjQlMkMlMjJwYWdlQ291bnRlciUyMiUzQTEzJTdE; _clsk=szrjt7%7C1736385032306%7C11%7C1%7Cq.clarity.ms%2Fcollect; _ga_ME15C3DGRL=GS1.1.1736384853.1.1.1736385032.0.0.0; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..SyUWD5O3-8Fu7f9K.jbfQGmUTAstB_wL4cyqA7QcbWKp4AFMnouf-WtJnwaPC4gIfu7iuNkXmrvbfp2YsqFJzSIl-5MvZrXt-bhk-DJtwqAdPzTw6sSa33I3IHWSS3TVlVFc9Ze-HT_6dIeMpIiN-rCSNGdpmtkEJLp_3WrCSGPB0NbJLLL_MGg6cQdS5WYz4trehD8sPSQUgYlTw_VaMImqVZOxKujLLgmGfgYdV8nl9p-JmFHMbpfcgn-yXqLca8E50sQOWldPw0p4RqsYyByUANX1POJAW33rm9fsRDHEKtVxOtlW5Hy1jev__V9UqSrhcvH_OQREngiQGYbtD0qLogeUg-vbL0VUAL-9USzXIn2Una3lP04lp3m_NKldiSShXsHJT8RW8IAl7K28ILGilA1fgx0V09JFIHhM4fX-hrPzqoh-BuxaaiF5czEHTtTPLXmnV1UiQgZVmfgliI2e_r9J3WtF-SgSc1Il2cvwxAsp66p5cjixFbpj7AULPXndQniHhTiU9zgDDdv-fEf0arKzW2w0--zwSmYizXMMpNblgxZ9k51CdOBCAM9YGtzDaB-NSA8I9RuHzmgXMvT5GMZSiezuoLdRRcVpuJBz-XF0v9QoQz7SQt6aMaCCTa-fxee--nfYZELu1Uhh90StcuT84VOAlx-wg6FxPEDI6cjlVtKuzcN_RMVYbWKO2z5xLw4zlqyGBleRjt7hNNt-IeCbGuaDxgbUViwhNr_qdh-_ZjQlz_FL4rzlJwPrl6puOsydFF8NIy0MU9oBdelGTtG8LwzNnOW_hGdqEfhXfDP9mzv4Fs4kqGNQxvT0PU2NQ5hIOTb540yHqTGb3kihXPaZL4YregR2-UPRxOM1qmWwgRZ93d9m0BUplhO9s9U2hYoLhp01ID8kiNi2AWp0hRcalh6PwgqSdzgbif3IH8AcHRJpnV2pRSbD7k883O6ukkItWPE-ysv-ak_Hl8FR046xjDaX1ITtyrJmTzFqQ627PGuOt01RmsVMOb1IFCcx4Fr4AYwOMDY0RDk1YxIUUqU4kyMZMVlMrI_ITcrYshdJwdr4k3hNk51gS3QUrhIDnUq93mvUSidSUy_jX47H-ORf9Al5poN3vNJPye9ogASdqRr2psn1UpceMzrejXz_xDSBllWGlSyAmHDlXniKfzGSbRtqET9xRZfy7X0iOGd0WW2Sb9BkI2OE6h2abFkeSmTXJTMaZXhQ244XkhvDVnps1QX4mdSIa1Js0Pb73DcWLV5TR1sTVxm5h9c1l5r-YxWQ9hjF3A43_V0Jp9ATDlcPIjewTqAcPuuNhcQRR6i7pt2CadiFpfT-h7DA1PvPRo7ReySBzDK9VhnlvodflQugnxj5gsRljH6r43s4OrgpJwCtENl-_yw4jDJCCXkJwHfLpSKhLR6CFSM52vrMa9fWg7iW1C4HIVVqyqIwC98-CTe5jYDMKrX_g40oDZL3XEhFCTfzl5o_UfqXJEWlDKZ0D_Aig7iNLDOEq3cwK9QDiP4-bX6jtM1zkltpCY-HPpwTXbtV4iIP6usg9lSJgCDgJjaS39rpBVYSrj-Y_PtPlPW5rJMVkSnp_f_J7uAwQWnluuEpxrb0Ap-vF4Vk4q9gBESbnk3PBg8wfFPC1GesPI4HyG8Jy3oIss8pDXba6D70soJiozgBcPTSxdeDIP1CXsRN2wiItYHeyslQE-_egn8oezT9__8LyVrY8guv14Nu-WGPx3R9xzpHn4TPY3nJQ6bU9H0PlB0qmJLsSh6tWtJ0Yl8-NMlEKr9WkcjOJB-QpFiDEyw3V7r65U5b_BOaNpzRA5OUJ_ZmCfufmyfnHm8R6mE5wqrwUfmxYBRfP_w8_ix58zwTzFsLe7Fii5_J411vqxFHefcljnpgFgf1UIOoAPBUfygBTVdpdJcWzA2QXNI9lKxUIC6pLme9rpNlXE2bCE1cn74qA974x1gBjZ5B_FVsmkYhFRwSboi8ypRFA1F6EWwSNO-LUQH8uVbrDisjjjAX19xq_Sibwq5P-dZMY6aLCuInQjfWic5NGsjjwh4xtBv3FTyt1nvt9SonxdsJi_wvcjEoCVyP7PfYy5Eo-MkOpznzGYc9slQscUhKPihaB7wlAJZxe99tBUHLJI6XoI1o2Z3G4KGRK6PTO_THOTVFBylKTMbg_jvHw63TL4-LNlhJ2efmSjnEZqpGkgIUb8wYSoG3OR-v3H7WPvvAtJAs-NfvQXSGaFZ3O-LnStvyT869zXwP9U6_NZjml7gB9iA0cZVw4o5tAFI5DPVstJAqSrjIW59cpTxxDo2zeBdl8aq5FoKIZ63w8QebUeibLT8_lejsWQtg8RX4WrSTbuZN-gtCsMY4Q-TY4gJtVygtjz44QMzYDXq0G5mlqnPanLvR9tOfZODm8z87e355KdmD7pI305NimlYjMAFECfAaQN4G3oDZiDb85KkO92JXlVwWbo1xfbx4FTikedjY-BI1ErQB5gxTgPo252aw5r9fItydPBE_nuZU211tc41k8IF2F_cbSZ9tUjZz14yb4Ux4RWUdtHs3y7Jh9_5Pj0dnS3dEgJ-7jlhz-v2tmrcgzcEKqDPQGdhKfLl__AMM_11LqMuvj0boYiiaDx8DHN95J_d48um0YvB5IU3sQucEXiRK2j8FpAXc9ptQqPTGdSzz4VhIE0EIzZIV3QqqaRqH6ZEXcNuV_DXwl6HOjui78yu-rpqz50E9fxePaV5LHPbzXp_ZEOLrWonqo9ZAIHzWhCbVM_vMxK7CnrfmhW4ow8l71maoD0ToyTW7J0KbegCnEVyVhAF-IqYc98gq0vEbfgH42JKk07-8v1gVNQ6TZpAbtgajdrRe9XCuR58f_dt7_y8xWLXw_tINMB-x5MLNbdomfSMsit9Vfl29Yr8yD4KIkYhsfhl-nH-7ntrx4KkkLdLoNhKbhdI7o7NO1zdJ22ur7op4YlAWSNq5q-q2uhF3bKTkYhAIJ2FnPZpYmv7NoldLkAML79C7xtbZTJ0ZgXCjxzbEI50-9qvhEMSNm5AjZLrE3tTp6GVJWfIvjb3HmTvEAxR3rRefzzTaKW-MO9t3OurUPood1vkMR7oQzQY_n6DaZKUcxA6L8sK8s2MfEb78h_ZKeKDRAFsnspHdVTYf4xEu_SbXyDYbx2vBU2beXYdhzcdLWff32f3jioAf_q8hk2wKAcj2Spik7Ng-HPbme3XPD0w1b6d266bJ8GIWCUoGmJ9Wm0UalL-ZnoX16yN9El_wfOEoXBFWRe56Ur1ih6ZwZkcuCMZcnUAlXaL3JGgrxtwQjUtuSPSAo7kBZGIS7xXzFL7aJOi9ctqBAJVH0C3g8TJcW7ilF-qzEwrOoo1zWfLQpxMXhg8XKLDzOPAFBwyEOlDaRdoj20aE6NTeWST-X3QEufdM0PE0uB3FAhYWTPyILrAulrIsMJphGU-9sABotQs9apb8Vvekzou3oQ02Nr8n_CHVdDfE7m9I1lOxnB8Yz78oJhBs0WAbcZL9Vy-c-RVBauUMgceqSyQJ3uHR3iWsze4yeVOb4LE4nUxsfBMHQhW-Via3wFpInCCJxS3je2wtiyDTztuMNN8Mxn_GuTJ1i-KkDdvWiAL9c4zg_6HQfsMpLXQXpJ4Ovk-wUAV_NaW9NnVXHR-ygTcsf-BUHEV6dm0EPEk3tNVdlOTMDzXeYmpXn7xSSPuHglNcLnCzbmiANoqs1N5knV9_gVx49MLkYzE2rK_xdAFZUgiR4uujQ16mWNHtzrUUZOWmPu0HrAt2cJsz0snCfakahNceO3di-MQCDppMUnoSlq2ZnRcsMYu_n7mjOP6suimdawk9Ik1y_RpJ1O92UjKl63SqTtknADbwywiDiLr62V59YEUxKhGIaNrg; __Secure-next-auth.session-token.1=q9Nx6cKkfa0ZpdMRs7aQg5BCEByRK-upafTx1BRw9yA7R30AXoMtQfz6ExKBqsbpyVHqJFnLBQuZqJEi_Bmk34FeYJrUjD1ddsPmEex0ftUACPSugpdrgsTxc8CN0f4a8t_m8wTHxhQWbE5_GT-A4Hb4T68U9pDkzA1kWMVHkQ6h1x7HyW_Ykh1KXejgZFJBhdvv4dAKpv0ckYCNXwJVgVwCKGCNikx-ubtZ-5XDX5ZquUNzVEGpx1cr-F4e0-aw8CDQmdZ0Zh7VHV5DKL7SkQW20FHjpiK-J6gdkkjGFX7EybuEM1KCZ-KI_9hna9JzZc52f_yyoN05hqTzWmfh4aFeQL3j1nErMn23uiava2BfKIoQ59dKWOO5zos66El2TtIFerhUFJDyt8sUOcybCWsmmf05oSeLzHeaJYBA8j7SP.FYyhM198a9ZP-Ep6hZRQNQ"
|
130
133
|
token = "_gcl_au=1.1.906962865.1730362257; _ga=GA1.1.435165527.1730362257; _fbp=fb.1.1730362257600.714008794112161913; AMP_MKTG_7268c9db0f=JTdCJTdE; _tt_enable_cookie=1; _pin_unauth=dWlkPU0yWmxPR1JsWkRJdE5qZGlZeTAwTWpNeUxXRmpNVEV0TlRrd1l6RTNZelEwTldZMw; __zlcmid=1OVn8OoYVNvKEWM; __stripe_mid=d21b2291-edb8-4cb1-8fac-05c6a9493ca8d85a3c; _ga_ME15C3DGRL=deleted; _ttp=412qSInHGw3jjdyNR6K4tBIYmNZ.tt.1; __Host-next-auth.csrf-token=5a254fcd5cf01dbe6f4d38ff6653073673eb96145321a4aa4e032c1361db4067%7Cfcc1ced5fcc03aca73a9b3374bfaf0f518079e6802a706311c2428b8b12a5639; _clck=uflztg%7C2%7Cfsf%7C0%7C1765; __Secure-next-auth.callback-url=https%3A%2F%2Fwww.recraft.ai%2F; _ga_ME15C3DGRL=GS1.1.1736384021.94.1.1736384813.0.0.0; _uetsid=3bef14a0cd5c11ef8908d9361f23bf21; _uetvid=a8a766f0975f11ef9b7921e48a0cd258; AMP_7268c9db0f=JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjI2OTE1YzI1My1jMTJjLTQ5ODYtYjM3Ni0xMTI3Y2ZmMTFlMjglMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjJjNDdkY2ZiYi0yOWE5LTQ1Y2EtYWRiZS1hM2ZhYWZiODhkNzQlMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzM2Mzg0MDIxMjg4JTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTczNjM4NDgxNTMzMSUyQyUyMmxhc3RFdmVudElkJTIyJTNBMTQ3JTJDJTIycGFnZUNvdW50ZXIlMjIlM0E0MiU3RA==; _clsk=lpjwif%7C1736384816977%7C21%7C1%7Cq.clarity.ms%2Fcollect; __Secure-next-auth.session-token.0=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..i9IpV1p6GdtCwBJf.GhX0MZyY886Dpslr3HPr3QQrF4cLCeL14lby_VsLhOfc1VBDE5ZmRX6fYfPtHPJNfYIPlj8U83UVMZyNmiSeRCTLDKKht5oWGdbMS8Q6KCLYzpFtO3wgfROiWTy4Jaq2XdXvTJiFHpHtg4FNsDcKfD-zyCt6-ffuq7gTtKhWl3ie33vu2Y1dBksAadej9hGGsozwQZRju2GaNw2QpWdgbP-cYbojKSFxFkara0-_yZgXYtjlSNXpj-AXI6wmkDi701dyZPHS0i_eNRg4d36SMOLTWqPxtgk-0PjYKGAndHeLlrypt_4HS94WAy5_Ond46YIvFtY6MS5P0wQePXka_kj95uV7_Vj-aBNhcJhOjv7FP2TRvOqjx0aKIS6ilq6ljCIrAp4iC-P-uEpRWxQ7l4VwejsrM1_k8IzatOUFjNxhmTsGQG8t-CaN6zq0GI6SkSXlOj_X6jUIfu7aaT4nvzNM_yDz53P-H90mgl6-6KmHhldPRZPPwA6mOci1sZ2hQp4l4nZCSSXmrJ9KSEIhcqUM599xDL90bBmIyb0LMwa9smXavJFq0dlmjcqGGmfCWmriNf7eSw96ewhOT-bA-yNt7Igmsj0YAV59_FVBicRwPkMSZshfikl0Pxz_pmTQrSllF1WXeyCEflhqncXRXNnl1n23l3rC6XK72fyMX7Q4kB1G3stQpZ8BZ2jaoV4P9RmKWje_ruY30myXj4Kf8Hzh5YjzfxAdVv8aVCOceuAcQCaZzySFSAWV2R7XLONGCOiQqcRyHeP4KzEac-w_w_8AgOpn5Bt0vkzw_roK4WK13mNyrx-sLbAy-Pufuln_6V_hyJiYdPnC3kykTFveaeYNrSTrhOSMSTRWMwbO32apU-6a5l42FWZVQaVRTYw4IN7aOrhbqINzSN-yRlkze_4YfRUqIE6ip6r8OSjsu65WdmA2haUaTlPwSfsJh2zm-SlDRPUlZkUXO1rKlfWccdUarlAyX085fSxs3amQlg5SBe9ziyCH0-1FIY0fJN96dYrNcHXWxUYu01UKbR1IX27OhOj6gmgtUHeZZorJZ_Ce4fnuTfnK65Athovqjy0_U6JXwJoQ9T_we5IlYQ3Rv95ezdbA7HSY49F3PuCxpf_-QujriKIWTGRQ_KbJy3bOxv1dV7mmHvMBumNVOq3VIqyKS3NnjtD2fjGcGWh8sCViU6wOCTERI6lbxMsHL6oMKTvzQuIp80DgKyQOWO5LoIPKtpz4b0mf6A1Xncz0ProBBvL7ZIiFEpiiFztqQJigVTsRirTMOqViOqU4Eht6AIvIczsW6GyuOK7gCgty6RezCHQsSwXD0FfwpvxjCFZQZ4A4ZFatHCirBDv6djBdBJIOJoSVVkoN6_Q2E8U4C7J1J5UQYZZq1fm5xBjEwQBzdP18doD4q7KNsgQIjGU5ZMJsaZgUNAhjU-UyA3BwLXhtmpMGnx9G2Pxf11OgHOUUYKd-DsX4yFrelf0QFe6VI0TMz7V8xpJrW-BTYYmaCupxkyLmwRfTO_HDkbyKoZES2yiCFh-Vfkyxz2gLuBhhryczt4HogMh_CmuHcOWPv6TAuH4QDZpyBWzyThBx3ZKvLfxo87LwbQgRfoediXV2c9DEWTx-pBcMosr1L-GZQ1eTVDVhcmsVshVL9Nb-DYh7C7-d97aq1Wl06Ljsf74xzijQPTgQAMgqwdPOWBg_WvRZP_cxiiz2XsUbbjYW2uQeqFL8dhYmzr8t2ABPpP9_damETeR5bkYA2jOwF6sNwhe0uIXP4xjN2xqzJ4OnSE_zeh1L5bqRajroLnYbRsZ0QwBoqf7am51RFzcyZRvRPKxLbA3rRDqKun41AcC3usyrFw6wX1dBH9IBLfqwP4qVPlwMdpVkQuH6A0rawFDM7ulJ6uYWy5XuiSUGejnBt6LICYki0C3bgOV--932msjQlzwVcWPHGWP634teJ8do0UMDIlII9ogA307POi8j4Ab92QxWLt1DAe3bh-vBkuEvIzmiKvq3RjgP52ysvTlDZtqEi19RkVBJ55aBNAK84oddVNrYIv0-SZ736WxqtpqNQggOkwubG96a9IL2K0nM3lD-IweswFzhd5d2t2GIwDnkRWCn_3sMFblMFGsvof-dbcp2fKgB5BFFtel6DO8cKZiGrFTKNNaTUEIpQYFZueXZMDMhpGFmsbWcABXJAyQk4gl5DR0hY_-zRrEnaBQ5f_wquwpENKFl0tBzVKLi45F3jgrnMYAyyIR4GVrS4x2a3PIBFl2HPwDvPNfuP2lnICf6Bbeh84BhI_V2aCoaxur4OTuc4E1HUM_p0gLq0d3xVpVbmYlDSff7YyrnwP0FdaiTt0dcMKyoGL44W_WdvPete8U6hlNhGSySHp-srMFyl4eMliYAITeiRwwZuYjfnW95-kK1rTm6tiBlpBJcSLEaxe6iZTTJcEAm5MLO07jEny_C6thxrYPug_5Ih8SdM9DOEkqF0slCWne82S8x49dp0pMllCZJAvtdYQbEmtE2KjytyKU5ns6OiraQpFm16fQGpmu7HYQbBU0fwASerwXdMRa6e7lTVGLd2mdDoF9gBdQClA75LyaKdrPg7rkV4x2NOulsFsPSPxhyQl-r0jqc-7qMs0hCbKr8I7O04T5F8Jg0ZWvYvUCvbnfiW767XltnjN_hNy3zQDVjR-4XxlYWmq_wzj7a0U5r9MzISR_DsFEP-mI5qKXfNFUzatM0UmKs-m1YLxm3InlWaA0VH1W5pABHK-npbuHmUlQ5_HBvO0JK84P0iif9M2-KXIEOxzMPLOw9cjs0j98hETINMm2-_6AGcNVrqLAmxrgE9sREJ2YVSweVVxLzi0UvZnjPwOs4qAaM3O2IWy5UZ1cB6bFxAj2HvDBQZ3j04kPxT0Sl33MGQS0Td7J_9ap8r2IBQUof9bOGjjMZHV1YsIcHVC5vCT2EZCovmz1avFFW04o0B2DC-A1kTujPp4SWtxT33470WPSk1CMGK_tKv0w2ou6lTkdGdTWCTDA2uNMVZRGxYwGnGo1q0OkC_a60JlvzPTXbOVcfZu_lcATm-aLt60H9jHuCBmKEvg46B5Qc2TZW3Dwz2T7Tl125jkfPWYEBoVnqB7mNPzhZxaDY3sMd8I0O_FNeNRZ3BEqpJkNWIMOnf8aZ6nCoMw8DdpL1POGvAZ-XhedkAIICUkJ_SYbvho2lZ3oEIAFxl5arPmQPnIpW4Abry_PWYvZx7kVXA0frDjYZv89NlctrGKMBfyYZVKTRnoQkXf-K6JGCZcySJuuWOuADGQfNTarwuy6M9e7k83d-mFZTYHhllPQakN8xXZ2ExTBDIHH7D9y1qKoOwb22Lg8hjv7cD9uq21iZTmD2K45D4W76Yrz1rX3n8t1tv1l1HTSB3UeuoCGaT5LkCSDKsHhM5iTChuIfxVefYBZh9We-TiU8QyHOxud1zOpE8Op6Ky9dUaCnUl5YUxeDntgeceaqP20ZmjlwvADd6P8UOjvvq-uZAhSlJ9Q4rYmO4pP2lfaRuo-thyrowHwOETPC8kmsMcm43MqFCzNNqnyXDHuyggjexTrk8T0swpo-eeBpvElZcP9-U5bFbS5vyb5H4tOLspSo8JcxsRVT4b32plWTRT-EQpAosu5IQNO-MQAGKnwqgzwhiePc8_K-6QbfDaZ7UwvCxJBvp8Ql5NRgMAUiViLuxD4BkUaKXuouXp9UcvyW6qrJFHVzyDVjTKW7oG0lYLhRREePp3OLqLUH-upSEWFMnkOljpn_kE3W_F62fnyC-6YG25kGKhw8bMpIVaKLAfe0SXto8pKrQPb4cLKTTTPHXCz9PKtO1xE2qHIE2Ys1k7-JlkTK6AvoY6sI6t3EPL-1rXPmB8P; __Secure-next-auth.session-token.1=yFjlKz8Sy8-L5993eI09Y6KcuLf5lx4fC99u6YFtWp_BQLG0Mk0GI7RllqeDlxU-5QO9VYeBlTNh-sp8SJ7hkNv5hpMnWaCE-7sPMHLcJAFNA5Sx43a4aJglZFEkCI8RFe4HGAusm9qQG18PBByIKj_ZhLnsS9zXaGQ5YL7eX9QVWrpkowuA35WfksZp3mvwkGR_6LrmpR7kmmK2_C_X5e5SsXTXhUfrBT8r79I39P18D9E1S-hT31ETyajNNgw-u3BHbET4buRhT043W_c3x2RwIc6Fzs5DAeTUFR39e3_jT-ge_RIG5-1YRhvtEXHVUInRVeoYorqzN62JO-8RDeBNry6wUGR9O7QCLOH_a0w.976ySjYDq2pGONqc_zx8Ng"
|
134
|
+
token = None
|
131
135
|
|
132
136
|
# arun(get_access_token())
|
133
137
|
data = {
|
@@ -143,10 +147,11 @@ if __name__ == '__main__':
|
|
143
147
|
**data
|
144
148
|
)
|
145
149
|
|
146
|
-
|
147
|
-
|
148
|
-
# tokens = [token]
|
150
|
+
with timer():
|
151
|
+
arun(generate(request, token=token))
|
149
152
|
|
150
|
-
tokens =
|
153
|
+
# tokens = [token]
|
151
154
|
|
152
|
-
|
155
|
+
# tokens = list(arun(aget_spreadsheet_values(feishu_url=FEISHU_URL, to_dataframe=True))[0]) | xfilter_
|
156
|
+
#
|
157
|
+
# r = arun(check_token(tokens))
|
meutils/apis/jimeng/images.py
CHANGED
@@ -40,7 +40,7 @@ async def create_draft_content(request: ImageRequest, token: str):
|
|
40
40
|
|
41
41
|
if urls := parse_url(request.prompt):
|
42
42
|
url = urls[-1]
|
43
|
-
image_uri = upload_for_image(url, token)
|
43
|
+
image_uri = await upload_for_image(url, token)
|
44
44
|
|
45
45
|
request.prompt = request.prompt.replace(url, '')
|
46
46
|
request.model = "high_aes_general_v20_L:general_v2.0_L" # 2.1不支持图片编辑
|
@@ -164,8 +164,8 @@ async def create_draft_content(request: ImageRequest, token: str):
|
|
164
164
|
"main_component_id": main_component_id,
|
165
165
|
"component_list": [component]
|
166
166
|
}
|
167
|
-
|
168
|
-
logger.debug(bjson(draft_content))
|
167
|
+
logger.debug(draft_content)
|
168
|
+
# logger.debug(bjson(draft_content))
|
169
169
|
|
170
170
|
return draft_content
|
171
171
|
|
@@ -181,6 +181,9 @@ async def create_task(request: ImageRequest, token: Optional[str] = None):
|
|
181
181
|
request.model = "high_aes_general_v20_L:general_v2.0_L"
|
182
182
|
|
183
183
|
draft_content = await create_draft_content(request, token)
|
184
|
+
|
185
|
+
logger.debug(json.dumps(draft_content))
|
186
|
+
|
184
187
|
payload = {
|
185
188
|
"extend": {
|
186
189
|
"root_model": request.model,
|
@@ -194,7 +197,6 @@ async def create_task(request: ImageRequest, token: Optional[str] = None):
|
|
194
197
|
}
|
195
198
|
}
|
196
199
|
|
197
|
-
logger.debug(bjson(payload))
|
198
200
|
|
199
201
|
async with httpx.AsyncClient(base_url=BASE_URL, headers=headers, timeout=60) as client:
|
200
202
|
response = await client.post(url, json=payload)
|
@@ -276,7 +278,10 @@ async def generate(request: ImageRequest):
|
|
276
278
|
response = await get_task(task_response.task_id, task_response.system_fingerprint)
|
277
279
|
logger.debug(response)
|
278
280
|
if response.status.lower().startswith("fail"):
|
279
|
-
raise
|
281
|
+
raise HTTPException(
|
282
|
+
status_code=status.HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS,
|
283
|
+
detail=response.message
|
284
|
+
)
|
280
285
|
|
281
286
|
if data := response.data:
|
282
287
|
return {"data": data}
|
@@ -312,10 +317,18 @@ if __name__ == '__main__':
|
|
312
317
|
# t3 = ("10186352959490", "eb4d120829cfd3ee957943f63d6152ed")
|
313
318
|
#
|
314
319
|
# arun(get_task(*t3))
|
320
|
+
data = {
|
321
|
+
"model": "seededit",
|
322
|
+
"prompt": "https://oss.ffire.cc/files/kling_watermark.png 让这个女人带上墨镜,衣服换个颜色",
|
323
|
+
"size": "1024x1024"
|
324
|
+
}
|
325
|
+
# arun(generate(ImageRequest(**data)))
|
315
326
|
|
316
|
-
arun(generate(ImageRequest(prompt="做一个圣诞节的海报")))
|
317
|
-
|
318
|
-
|
327
|
+
# arun(generate(ImageRequest(prompt="做一个圣诞节的海报")))
|
328
|
+
prompt = "A plump Chinese beauty wearing a wedding dress revealing her skirt and underwear is swinging on the swing,Happy smile,cleavage,Exposed thighs,Spread your legs open,Extend your leg,panties,upskirt,Barefoot,sole"
|
329
|
+
request = ImageRequest(prompt=prompt)
|
319
330
|
# task = arun(create_task(request))
|
320
331
|
|
321
332
|
# arun(get_task(task.task_id, task.system_fingerprint))
|
333
|
+
|
334
|
+
arun(generate(request))
|
meutils/apis/search/metaso.py
CHANGED
@@ -16,6 +16,8 @@ from meutils.apis.proxy.ips import FEISHU_URL_METASO, get_one_proxy, get_proxies
|
|
16
16
|
from meutils.schemas.openai_types import ChatCompletionRequest
|
17
17
|
from meutils.notice.feishu import send_message
|
18
18
|
|
19
|
+
from meutils.llm.clients import zhipuai_client
|
20
|
+
|
19
21
|
token = "wr8+pHu3KYryzz0O2MaBSNUZbVLjLUYC1FR4sKqSW0p19vmcZAoEmHC72zPh/fHtOhYhCcR5GKXrxQs9QjN6dulxfOKfQkLdVkLMahMclPPjNVCPE8bLQut3zBABECLaSqpI0fVWBrdbJptnhASrSw=="
|
20
22
|
|
21
23
|
MODELS = {
|
@@ -27,6 +29,8 @@ MODELS = {
|
|
27
29
|
"ai-search-pro:scholar": "research"
|
28
30
|
}
|
29
31
|
|
32
|
+
""
|
33
|
+
|
30
34
|
|
31
35
|
async def get_session_id(request: MetasoRequest, headers: Optional[dict] = None, proxy: Optional[str] = None):
|
32
36
|
if proxy:
|
@@ -86,7 +90,13 @@ async def create(request: ChatCompletionRequest, response_format: Optional[str]
|
|
86
90
|
if ":" in request.model:
|
87
91
|
_, engine_type = request.model.split(':')
|
88
92
|
|
93
|
+
model = None
|
94
|
+
if request.model.startswith("deepseek"):
|
95
|
+
model = "ds-r1"
|
96
|
+
system_fingerprint = "deepseek-r1"
|
97
|
+
|
89
98
|
request = MetasoRequest(
|
99
|
+
model=model,
|
90
100
|
mode=MODELS.get(request.model, "concise"),
|
91
101
|
engineType=engine_type,
|
92
102
|
question=request.last_content,
|
@@ -139,14 +149,32 @@ async def create(request: ChatCompletionRequest, response_format: Optional[str]
|
|
139
149
|
|
140
150
|
reference_mapping = {}
|
141
151
|
async for chunk in response.aiter_lines():
|
152
|
+
|
142
153
|
if (chunk := chunk.strip()) and chunk != "data:[DONE]":
|
143
154
|
# logger.debug(chunk)
|
144
155
|
|
145
156
|
try:
|
146
157
|
response = MetasoResponse(chunk=chunk)
|
158
|
+
logger.debug(response)
|
159
|
+
|
160
|
+
if not response.content and response.data.get("infoType") == 'weather':
|
161
|
+
# yield response.data
|
162
|
+
|
163
|
+
################################################################ todo: 外部搜索
|
164
|
+
chatcompletionchunks = await zhipuai_client.chat.completions.create(
|
165
|
+
model="glm-4-flash",
|
166
|
+
messages=[
|
167
|
+
{"role": "user", "content": response.data}
|
168
|
+
],
|
169
|
+
stream=True
|
170
|
+
)
|
171
|
+
async for chatcompletionchunk in chatcompletionchunks:
|
172
|
+
yield chatcompletionchunk.choices[0].delta.content
|
173
|
+
################################################################
|
174
|
+
break
|
147
175
|
|
148
176
|
if len(response.content) == 1 and response.content.startswith('秘'): # 替换 模型水印
|
149
|
-
response.content = f"{system_fingerprint}AI搜索,它是一款能够深入理解您的问题的AI搜索引擎。"
|
177
|
+
response.content = f"{system_fingerprint} AI搜索,它是一款能够深入理解您的问题的AI搜索引擎。"
|
150
178
|
yield response.content
|
151
179
|
break
|
152
180
|
|
@@ -199,13 +227,16 @@ if __name__ == '__main__':
|
|
199
227
|
# arun(get_access_token(request))
|
200
228
|
|
201
229
|
request = ChatCompletionRequest(
|
202
|
-
# model="",
|
230
|
+
# model="deepseek-search",
|
231
|
+
model="deepseek-r1-search",
|
203
232
|
# model="ai-search",
|
204
|
-
model="ai-search:scholar",
|
233
|
+
# model="ai-search:scholar",
|
205
234
|
# model="ai-search-pro:scholar",
|
206
235
|
|
207
236
|
# model="search-pro",
|
208
237
|
|
238
|
+
messages=[{'role': 'user', 'content': '今天南京天气怎么样'}]
|
239
|
+
|
209
240
|
)
|
210
241
|
|
211
242
|
arun(create(request))
|
meutils/apis/vidu/vidu_video.py
CHANGED
@@ -185,7 +185,7 @@ async def check_token(token, threshold: float = 0):
|
|
185
185
|
|
186
186
|
|
187
187
|
if __name__ == '__main__':
|
188
|
-
token = "
|
188
|
+
token = "io=Q07avSD7V1xT3PIAAZOO; HMACCOUNT_BFESS=5E705F99269C2211; Hm_lvt_a3c8711bce1795293b1793d35916c067=1737419786; Hm_lpvt_a3c8711bce1795293b1793d35916c067=1737419786; HMACCOUNT=5E705F99269C2211; NEXT_LOCALE=zh; _ga=GA1.1.1631944243.1737419791; sajssdk_2015_cross_new_user=1; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3Mzg3MTU4MDQsImlhdCI6MTczNzQxOTgwNCwiaXNzIjoiaWFtIiwic3ViIjoiMjYxNDYwNzk0OTg5NjgyNSJ9.KmEoctBweMPmqSH-gTK00wHIb1iOz-UoMCf55zvhLfE; Shunt=; sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22snESnARGSGtGntsH%22%2C%22gae28_aV%22%3A%22EGStnSisEnunHS-AAVrGEiGrSrIVnst-EuHsHnIR-GsEnAA-EGStnSisEnyERyG%22%2C%22OemO2%22%3A%7B%22%24ki8r28_8eiggay_2mbeyr_8cOr%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24ki8r28_2rieyz_lrcMmeV%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24ki8r28_ergreere%22%3A%22%22%7D%2C%22aVr68a8ar2%22%3A%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlApXPAPF3JQo3sQFN8wXLlWFlJPFkkQ9KhWXPcpvAJPqKcQFPhQcAHwq1swX08wFlApXPAPF3JQowJQswH3aMax9klWZHAiD7HDsJCWskbDskl3qmawqPJQXPMQhlApFfHQqfcQ4xG%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22snESnARGSGtGntsH%22%7D%7D; aws-waf-token=fb511419-d35f-4c57-a627-a0f362c1d04b:AAoAjVEDV+K9AAAA:ciqXmsweAEsZksfstr3LIrBKbKpvwnmWcdovZIcjh8DPtGXU4Fb5jxZMRBSIwrc7q9V0xJJZn9HW87Gkq9Y06CTKYUcExMKgu0RCm7Y+z7p6OERTrwY0+ACEWHW7B398/TTBTVW1+hjLkvO9DWrEJx4goQzZt+SFW/jZEITLszARozPYzeTEkvHJrIQkJLS0YbcxLRhaLtVQD+D0q++D8YFPsIbRgYRmeHpabAB9GbSV7vTKXREhdHyzj0QEkmmK6fyr; _ga_ZJBV7VYP55=GS1.1.1737419791.1.1.1737419806.45.0.0; SERVERCORSID=354f7c594b90555807f965c4af1d10d3|1737419812|1737419793"
|
189
189
|
# FEISHU_URL = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=Hcr2i8"
|
190
190
|
# arun(get_next_token_for_polling(FEISHU_URL, check_token=check_token))
|
191
191
|
# arun(get_next_token_for_polling(FEISHU_URL_VIP, check_token=check_token, max_size=10000))
|
meutils/caches/acache.py
CHANGED
@@ -11,9 +11,28 @@ import os
|
|
11
11
|
|
12
12
|
from meutils.pipe import *
|
13
13
|
|
14
|
-
from aiocache import cached
|
14
|
+
from aiocache import cached
|
15
|
+
|
16
|
+
from aiocache import cached, Cache, RedisCache, caches
|
15
17
|
from aiocache import multi_cached
|
16
18
|
|
19
|
+
rcache = RedisCache(
|
20
|
+
endpoint="127.0.0.1", port=6379, namespace="me" # 缓存键前缀
|
21
|
+
)
|
22
|
+
|
23
|
+
|
24
|
+
# @cached(ttl=60)
|
25
|
+
# async def cached_fc(user_id, **kwargs):
|
26
|
+
# logger.debug(user_id)
|
27
|
+
# return False
|
28
|
+
|
29
|
+
|
30
|
+
@cached(ttl=60, cache=rcache)
|
31
|
+
async def redis_fc(user_id, **kwargs):
|
32
|
+
logger.debug(user_id)
|
33
|
+
return False
|
34
|
+
|
35
|
+
|
17
36
|
# @multi_cached(ttl=60, caches=[Cache.MEMORY, Cache.MEMORY])
|
18
37
|
# async def complex_function(user_id, **kwargs):
|
19
38
|
# logger.debug(user_id)
|
@@ -24,22 +43,24 @@ from aiocache import multi_cached
|
|
24
43
|
|
25
44
|
# Cache.REDIS
|
26
45
|
# mcache = cached(ttl=60, cache=Cache.REDIS)(cached)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
46
|
+
# from aiocache import Cache
|
47
|
+
#
|
48
|
+
# Cache(Cache.REDIS)
|
49
|
+
#
|
50
|
+
# rcache = Cache.from_url("redis://:chatfirechatfire@110.42.51.201:6379/11")
|
51
|
+
# print(rcache)
|
31
52
|
|
32
53
|
|
33
54
|
# @cached(ttl=60)
|
34
|
-
@cached(ttl=15, cache=rcache)
|
35
|
-
async def complex_function(user_id, **kwargs):
|
36
|
-
|
37
|
-
|
38
|
-
|
55
|
+
# @cached(ttl=15, cache=rcache)
|
56
|
+
# async def complex_function(user_id, **kwargs):
|
57
|
+
# logger.debug(user_id)
|
58
|
+
# return False
|
59
|
+
#
|
39
60
|
|
40
61
|
class A(BaseModel):
|
41
62
|
a: Any = 1
|
42
63
|
|
43
64
|
|
44
65
|
if __name__ == '__main__':
|
45
|
-
arun(
|
66
|
+
arun(redis_fc(A()))
|
meutils/caches/demo.py
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
from collections import namedtuple
|
4
|
+
|
5
|
+
from aiocache import cached, Cache, RedisCache
|
6
|
+
from aiocache.serializers import PickleSerializer
|
7
|
+
# With this we can store python objects in backends like Redis!
|
8
|
+
|
9
|
+
Result = namedtuple('Result', "content, status")
|
10
|
+
|
11
|
+
|
12
|
+
@cached(
|
13
|
+
cache=RedisCache(), key="key", serializer=PickleSerializer(), port=6379, namespace="main")
|
14
|
+
async def cached_call():
|
15
|
+
print("Sleeping for three seconds zzzz.....")
|
16
|
+
await asyncio.sleep(3)
|
17
|
+
return Result("content", 200)
|
18
|
+
|
19
|
+
|
20
|
+
async def run():
|
21
|
+
await cached_call()
|
22
|
+
await cached_call()
|
23
|
+
await cached_call()
|
24
|
+
cache = Cache(Cache.REDIS, endpoint="127.0.0.1", port=6379, namespace="main")
|
25
|
+
await cache.delete("key")
|
26
|
+
|
27
|
+
if __name__ == "__main__":
|
28
|
+
asyncio.run(run())
|
meutils/data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2025.
|
1
|
+
2025.02.06.13.05.49
|
meutils/data/oneapi/NOTICE.md
CHANGED
@@ -35,23 +35,9 @@
|
|
35
35
|
<summary><b>大额对公,请联系客服</b></summary>
|
36
36
|
</details>
|
37
37
|
|
38
|
-
## 2025-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
- 充值200增送 5%
|
43
|
-
|
44
|
-
- 充值500增送 10%
|
45
|
-
- 充值1000增送 20%
|
46
|
-
- 充值2000增送 25%
|
47
|
-
|
48
|
-
### 新上线模型Deepseek系列
|
49
|
-
|
50
|
-
- deepseek-v3
|
51
|
-
- deepseek-r1
|
52
|
-
- deepseek-r1:7b
|
53
|
-
|
54
|
-
|
38
|
+
## 2025-02-06(预祝大家新年快乐)
|
39
|
+
- deepseek-ai/deepseek-v3
|
40
|
+
- 即日起至北京时间 2025-02-09 00:00 同步官网倍率
|
55
41
|
|
56
42
|
|
57
43
|
---
|