aient 1.2.36__py3-none-any.whl → 1.2.38__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.
- aient/core/request.py +4 -2
- aient/core/response.py +7 -2
- aient/models/chatgpt.py +5 -4
- {aient-1.2.36.dist-info → aient-1.2.38.dist-info}/METADATA +1 -1
- {aient-1.2.36.dist-info → aient-1.2.38.dist-info}/RECORD +8 -8
- {aient-1.2.36.dist-info → aient-1.2.38.dist-info}/WHEEL +0 -0
- {aient-1.2.36.dist-info → aient-1.2.38.dist-info}/licenses/LICENSE +0 -0
- {aient-1.2.36.dist-info → aient-1.2.38.dist-info}/top_level.txt +0 -0
aient/core/request.py
CHANGED
@@ -196,7 +196,7 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
|
|
196
196
|
|
197
197
|
for field, value in request.model_dump(exclude_unset=True).items():
|
198
198
|
if field not in miss_fields and value is not None:
|
199
|
-
if field == "tools" and "gemini-2.0-flash-thinking" in original_model:
|
199
|
+
if field == "tools" and ("gemini-2.0-flash-thinking" in original_model or "gemini-2.5-flash-image" in original_model):
|
200
200
|
continue
|
201
201
|
if field == "tools":
|
202
202
|
# 处理每个工具的 function 定义
|
@@ -221,6 +221,8 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
|
|
221
221
|
}
|
222
222
|
})
|
223
223
|
elif field == "temperature":
|
224
|
+
if "gemini-2.5-flash-image" in original_model:
|
225
|
+
value = 1
|
224
226
|
generation_config["temperature"] = value
|
225
227
|
elif field == "max_tokens":
|
226
228
|
if value > 65536:
|
@@ -244,7 +246,7 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
|
|
244
246
|
"Image",
|
245
247
|
]
|
246
248
|
|
247
|
-
if "gemini-2.5" in original_model:
|
249
|
+
if "gemini-2.5" in original_model and "gemini-2.5-flash-image" not in original_model:
|
248
250
|
# 从请求模型名中检测思考预算设置
|
249
251
|
m = re.match(r".*-think-(-?\d+)", request.model)
|
250
252
|
if m:
|
aient/core/response.py
CHANGED
@@ -78,7 +78,7 @@ async def fetch_gemini_response_stream(client, url, headers, payload, model, tim
|
|
78
78
|
try:
|
79
79
|
response_json = await asyncio.to_thread(json.loads, parts_json)
|
80
80
|
except json.JSONDecodeError:
|
81
|
-
logger.error(f"JSON decode error: {parts_json}")
|
81
|
+
# logger.error(f"JSON decode error: {parts_json}")
|
82
82
|
continue
|
83
83
|
else:
|
84
84
|
parts_json += line
|
@@ -99,7 +99,12 @@ async def fetch_gemini_response_stream(client, url, headers, payload, model, tim
|
|
99
99
|
yield sse_string
|
100
100
|
|
101
101
|
if image_base64:
|
102
|
-
|
102
|
+
if "gemini-2.5-flash-image" not in model:
|
103
|
+
yield await generate_no_stream_response(timestamp, model, content=content, tools_id=None, function_call_name=None, function_call_content=None, role=None, total_tokens=totalTokenCount, prompt_tokens=promptTokenCount, completion_tokens=candidatesTokenCount, image_base64=image_base64)
|
104
|
+
else:
|
105
|
+
image_url = await upload_image_to_0x0st("data:image/png;base64," + image_base64)
|
106
|
+
sse_string = await generate_sse_response(timestamp, model, content=f"\n\n")
|
107
|
+
yield sse_string
|
103
108
|
|
104
109
|
if function_call_name:
|
105
110
|
sse_string = await generate_sse_response(timestamp, model, content=None, tools_id="chatcmpl-9inWv0yEtgn873CxMBzHeCeiHctTV", function_call_name=function_call_name)
|
aient/models/chatgpt.py
CHANGED
@@ -108,6 +108,7 @@ class chatgpt(BaseLLM):
|
|
108
108
|
cache_messages: list = None,
|
109
109
|
logger: logging.Logger = None,
|
110
110
|
check_done: bool = False,
|
111
|
+
retry_count: int = 999999,
|
111
112
|
) -> None:
|
112
113
|
"""
|
113
114
|
Initialize Chatbot with API key (from https://platform.openai.com/account/api-keys)
|
@@ -119,7 +120,7 @@ class chatgpt(BaseLLM):
|
|
119
120
|
self.function_calls_counter = {}
|
120
121
|
self.function_call_max_loop = function_call_max_loop
|
121
122
|
self.check_done = check_done
|
122
|
-
|
123
|
+
self.retry_count = retry_count
|
123
124
|
if logger:
|
124
125
|
self.logger = logger
|
125
126
|
else:
|
@@ -708,7 +709,8 @@ class chatgpt(BaseLLM):
|
|
708
709
|
# 发送请求并处理响应
|
709
710
|
retry_times = 0
|
710
711
|
error_to_raise = None
|
711
|
-
while
|
712
|
+
while retry_times < self.retry_count:
|
713
|
+
retry_times += 1
|
712
714
|
tmp_post_json = copy.deepcopy(json_post)
|
713
715
|
if need_done_prompt:
|
714
716
|
tmp_post_json["messages"].extend(need_done_prompt)
|
@@ -821,8 +823,7 @@ class chatgpt(BaseLLM):
|
|
821
823
|
error_message = "您输入了无效的API URL,请使用正确的URL并使用`/start`命令重新设置API URL。具体错误如下:\n\n" + str(e)
|
822
824
|
raise ConfigurationError(error_message)
|
823
825
|
# 最后一次重试失败,向上抛出异常
|
824
|
-
retry_times
|
825
|
-
if retry_times == 9:
|
826
|
+
if retry_times == self.retry_count:
|
826
827
|
raise RetryFailedError(str(e))
|
827
828
|
|
828
829
|
if error_to_raise:
|
@@ -7,8 +7,8 @@ aient/architext/test/test_save_load.py,sha256=o8DqH6gDYZkFkQy-a7blqLtJTRj5e4a-Li
|
|
7
7
|
aient/core/__init__.py,sha256=NxjebTlku35S4Dzr16rdSqSTWUvvwEeACe8KvHJnjPg,34
|
8
8
|
aient/core/log_config.py,sha256=kz2_yJv1p-o3lUQOwA3qh-LSc3wMHv13iCQclw44W9c,274
|
9
9
|
aient/core/models.py,sha256=KMlCRLjtq1wQHZTJGqnbWhPS2cHq6eLdnk7peKDrzR8,7490
|
10
|
-
aient/core/request.py,sha256
|
11
|
-
aient/core/response.py,sha256=
|
10
|
+
aient/core/request.py,sha256=w3HcsS4BOcrprPjSUWPz-sfcEnX26HxN7AZCThX2gE0,76949
|
11
|
+
aient/core/response.py,sha256=oKAb97XX4tbgLBdzSGTedJamGTQztp7hjL5YK3ZbJFQ,36792
|
12
12
|
aient/core/utils.py,sha256=Z8vTH9w3uS8uubBa65c_aJ11A3OKGYEzm4q0brNZDSk,31594
|
13
13
|
aient/core/test/test_base_api.py,sha256=pWnycRJbuPSXKKU9AQjWrMAX1wiLC_014Qc9hh5C2Pw,524
|
14
14
|
aient/core/test/test_geminimask.py,sha256=HFX8jDbNg_FjjgPNxfYaR-0-roUrOO-ND-FVsuxSoiw,13254
|
@@ -17,7 +17,7 @@ aient/core/test/test_payload.py,sha256=8jBiJY1uidm1jzL-EiK0s6UGmW9XkdsuuKFGrwFhF
|
|
17
17
|
aient/models/__init__.py,sha256=ZTiZgbfBPTjIPSKURE7t6hlFBVLRS9lluGbmqc1WjxQ,43
|
18
18
|
aient/models/audio.py,sha256=FNW4lxG1IhxOU7L8mvcbaeC1nXk_lpUZQlg9ijQ0h_Q,1937
|
19
19
|
aient/models/base.py,sha256=HWIGfa2A7OTccvHK0wG1-UlHB-yaWRC7hbi4oR1Mu1Y,7228
|
20
|
-
aient/models/chatgpt.py,sha256=
|
20
|
+
aient/models/chatgpt.py,sha256=SNgfFaAZ-ESOJmvViThS0vbro2ZAcrPtN1A0NHx3oZc,43711
|
21
21
|
aient/plugins/__init__.py,sha256=p3KO6Aa3Lupos4i2SjzLQw1hzQTigOAfEHngsldrsyk,986
|
22
22
|
aient/plugins/arXiv.py,sha256=yHjb6PS3GUWazpOYRMKMzghKJlxnZ5TX8z9F6UtUVow,1461
|
23
23
|
aient/plugins/config.py,sha256=TGgZ5SnNKZ8MmdznrZ-TEq7s2ulhAAwTSKH89bci3dA,7079
|
@@ -35,8 +35,8 @@ aient/plugins/write_file.py,sha256=Jt8fOEwqhYiSWpCbwfAr1xoi_BmFnx3076GMhuL06uI,3
|
|
35
35
|
aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
aient/utils/prompt.py,sha256=ZvGAt_ImJ_CGbDnWgpsWskfSV5fCkpFKRpNQjYL7M7s,11100
|
37
37
|
aient/utils/scripts.py,sha256=Q0tS7E9AmdikO7GeDBd_3Ii5opXHCvKjDGqHsXen6_A,40622
|
38
|
-
aient-1.2.
|
39
|
-
aient-1.2.
|
40
|
-
aient-1.2.
|
41
|
-
aient-1.2.
|
42
|
-
aient-1.2.
|
38
|
+
aient-1.2.38.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
|
39
|
+
aient-1.2.38.dist-info/METADATA,sha256=A3NYlZmG4UU3xryjyt8LdXhFnLQ9cXtx2eg7SGaoJR4,4842
|
40
|
+
aient-1.2.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
41
|
+
aient-1.2.38.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
|
42
|
+
aient-1.2.38.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|