aient 1.1.39__py3-none-any.whl → 1.1.41__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 CHANGED
@@ -10,6 +10,7 @@ from .utils import (
10
10
  c3o,
11
11
  c3h,
12
12
  c35s,
13
+ c4,
13
14
  gemini1,
14
15
  gemini2,
15
16
  gemini2_5_pro_exp,
@@ -240,6 +241,10 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
240
241
  val = int(m.group(1))
241
242
  if val < 0:
242
243
  val = 0
244
+ elif val > 32768 and "gemini-2.5-pro" in original_model:
245
+ val = 32768
246
+ elif val < 128 and "gemini-2.5-pro" in original_model:
247
+ val = 128
243
248
  elif val > 24576:
244
249
  val = 24576
245
250
  payload["generationConfig"]["thinkingConfig"]["thinkingBudget"] = val
@@ -532,6 +537,10 @@ async def get_vertex_gemini_payload(request, engine, provider, api_key=None):
532
537
  val = int(m.group(1))
533
538
  if val < 0:
534
539
  val = 0
540
+ elif val > 32768 and "gemini-2.5-pro" in original_model:
541
+ val = 32768
542
+ elif val < 128 and "gemini-2.5-pro" in original_model:
543
+ val = 128
535
544
  elif val > 24576:
536
545
  val = 24576
537
546
  payload["generationConfig"]["thinkingConfig"]["thinkingBudget"] = val
@@ -568,6 +577,8 @@ async def get_vertex_claude_payload(request, engine, provider, api_key=None):
568
577
  location = c35s
569
578
  elif "claude-3-opus" in original_model:
570
579
  location = c3o
580
+ elif "claude-sonnet-4" in original_model or "claude-opus-4" in original_model:
581
+ location = c4
571
582
  elif "claude-3-sonnet" in original_model:
572
583
  location = c3s
573
584
  elif "claude-3-haiku" in original_model:
@@ -790,23 +801,6 @@ async def get_aws_payload(request, engine, provider, api_key=None):
790
801
  # url = f"{base_url}/model/{original_model}/invoke"
791
802
  url = f"{base_url}/model/{original_model}/invoke-with-response-stream"
792
803
 
793
- # if "claude-3-5-sonnet" in original_model or "claude-3-7-sonnet" in original_model:
794
- # location = c35s
795
- # elif "claude-3-opus" in original_model:
796
- # location = c3o
797
- # elif "claude-3-sonnet" in original_model:
798
- # location = c3s
799
- # elif "claude-3-haiku" in original_model:
800
- # location = c3h
801
-
802
- # claude_stream = "streamRawPredict"
803
- # url = "https://{LOCATION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/anthropic/models/{MODEL}:{stream}".format(
804
- # LOCATION=await location.next(),
805
- # PROJECT_ID=project_id,
806
- # MODEL=original_model,
807
- # stream=claude_stream
808
- # )
809
-
810
804
  messages = []
811
805
  system_prompt = None
812
806
  tool_id = None
aient/core/response.py CHANGED
@@ -568,6 +568,7 @@ async def fetch_response(client, url, headers, payload, engine, model):
568
568
 
569
569
  elif engine == "gemini" or engine == "vertex-gemini" or engine == "aws":
570
570
  response_json = response.json()
571
+ # print("response_json", json.dumps(response_json, indent=4, ensure_ascii=False))
571
572
 
572
573
  if isinstance(response_json, str):
573
574
  import ast
@@ -579,7 +580,7 @@ async def fetch_response(client, url, headers, payload, engine, model):
579
580
  else:
580
581
  logger.error(f"error fetch_response: Unknown response_json type: {type(response_json)}")
581
582
  parsed_data = response_json
582
- # print("parsed_data", json.dumps(parsed_data, indent=4, ensure_ascii=False))
583
+
583
584
  content = ""
584
585
  reasoning_content = ""
585
586
  image_base64 = ""
@@ -596,15 +597,6 @@ async def fetch_response(client, url, headers, payload, engine, model):
596
597
  reasoning_content += chunk
597
598
  else:
598
599
  content += chunk
599
- # for item in parsed_data:
600
- # chunk = safe_get(item, "candidates", 0, "content", "parts", 0, "text")
601
- # is_think = safe_get(item, "candidates", 0, "content", "parts", 0, "thought", default=False)
602
- # # logger.info(f"chunk: {repr(chunk)}")
603
- # if chunk:
604
- # if is_think:
605
- # reasoning_content += chunk
606
- # else:
607
- # content += chunk
608
600
 
609
601
  usage_metadata = safe_get(parsed_data, -1, "usageMetadata")
610
602
  prompt_tokens = safe_get(usage_metadata, "promptTokenCount", default=0)
@@ -618,8 +610,13 @@ async def fetch_response(client, url, headers, payload, engine, model):
618
610
  logger.error(f"Unknown role: {role}, parsed_data: {parsed_data}")
619
611
  role = "assistant"
620
612
 
621
- function_call_name = safe_get(parsed_data, -1, "candidates", 0, "content", "parts", 0, "functionCall", "name", default=None)
622
- function_call_content = safe_get(parsed_data, -1, "candidates", 0, "content", "parts", 0, "functionCall", "args", default=None)
613
+ has_think = safe_get(parsed_data, 0, "candidates", 0, "content", "parts", 0, "thought", default=False)
614
+ if has_think:
615
+ function_message_parts_index = -1
616
+ else:
617
+ function_message_parts_index = 0
618
+ function_call_name = safe_get(parsed_data, -1, "candidates", 0, "content", "parts", function_message_parts_index, "functionCall", "name", default=None)
619
+ function_call_content = safe_get(parsed_data, -1, "candidates", 0, "content", "parts", function_message_parts_index, "functionCall", "args", default=None)
623
620
 
624
621
  timestamp = int(datetime.timestamp(datetime.now()))
625
622
  yield await generate_no_stream_response(timestamp, model, content=content, tools_id=None, function_call_name=function_call_name, function_call_content=function_call_content, role=role, total_tokens=total_tokens, prompt_tokens=prompt_tokens, completion_tokens=candidates_tokens, reasoning_content=reasoning_content, image_base64=image_base64)
aient/core/utils.py CHANGED
@@ -436,6 +436,7 @@ provider_api_circular_list = defaultdict(ThreadSafeCircularList)
436
436
  c35s = ThreadSafeCircularList(["us-east5", "europe-west1"])
437
437
  c3s = ThreadSafeCircularList(["us-east5", "us-central1", "asia-southeast1"])
438
438
  c3o = ThreadSafeCircularList(["us-east5"])
439
+ c4 = ThreadSafeCircularList(["us-east5", "us-central1", "europe-west4", "asia-southeast1"])
439
440
  c3h = ThreadSafeCircularList(["us-east5", "us-central1", "europe-west1", "europe-west4"])
440
441
  gemini1 = ThreadSafeCircularList(["us-central1", "us-east4", "us-west1", "us-west4", "europe-west1", "europe-west2"])
441
442
  gemini2 = ThreadSafeCircularList(["us-central1"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.1.39
3
+ Version: 1.1.41
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -4,9 +4,9 @@ aient/core/.gitignore,sha256=5JRRlYYsqt_yt6iFvvzhbqh2FTUQMqwo6WwIuFzlGR8,13
4
4
  aient/core/__init__.py,sha256=NxjebTlku35S4Dzr16rdSqSTWUvvwEeACe8KvHJnjPg,34
5
5
  aient/core/log_config.py,sha256=kz2_yJv1p-o3lUQOwA3qh-LSc3wMHv13iCQclw44W9c,274
6
6
  aient/core/models.py,sha256=d4MISNezTSe0ls0-fjuToI2SoT-sk5fWqAJuKVinIlo,7502
7
- aient/core/request.py,sha256=6Nwduj7kFuubFaZ0ZLkT_zd03XpT-bFhgrKVOZiGBOQ,71918
8
- aient/core/response.py,sha256=RYy70Ld_txixHHd61Dqtlo0tKHMU_OIXqxGWd6EfATI,35315
9
- aient/core/utils.py,sha256=fhI5wBxr01lVEp8nMfjG9dQ859AE-VdrWyb9suLzzqM,27400
7
+ aient/core/request.py,sha256=1iY-GUgbGCt0gXpO91QDEERIfkptI_anCHg9ElDvVVc,71765
8
+ aient/core/response.py,sha256=mAVsCnNhWY09DXNe0lyPUJq-1ljtGjC67Az-Uh7ozIw,35166
9
+ aient/core/utils.py,sha256=NcXdb8zBN0GE01OGaUzg8U34RaraoFf2MaLDDGFvvC4,27492
10
10
  aient/core/test/test_base_api.py,sha256=pWnycRJbuPSXKKU9AQjWrMAX1wiLC_014Qc9hh5C2Pw,524
11
11
  aient/core/test/test_geminimask.py,sha256=HFX8jDbNg_FjjgPNxfYaR-0-roUrOO-ND-FVsuxSoiw,13254
12
12
  aient/core/test/test_image.py,sha256=_T4peNGdXKBHHxyQNx12u-NTyFE8TlYI6NvvagsG2LE,319
@@ -37,8 +37,8 @@ aient/plugins/write_file.py,sha256=hExFLuoNPtjYxJI3pVbofZRpokvUabpXdEkd3mZJPPc,3
37
37
  aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  aient/utils/prompt.py,sha256=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
39
39
  aient/utils/scripts.py,sha256=h7EA2xBydUF_wdZLsPgjCq4Egdycx1gf2qrdrm0I7y0,40909
40
- aient-1.1.39.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
41
- aient-1.1.39.dist-info/METADATA,sha256=61ptj-W1QQYypJuZ6j6J4Vl2OBz03Ex91wFqDHOvNS0,4968
42
- aient-1.1.39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
43
- aient-1.1.39.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
44
- aient-1.1.39.dist-info/RECORD,,
40
+ aient-1.1.41.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
41
+ aient-1.1.41.dist-info/METADATA,sha256=hMAJ7yUTFHx9-QqfRUy1Vu9BBRZGHKUco1m3nGdQC28,4968
42
+ aient-1.1.41.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
43
+ aient-1.1.41.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
44
+ aient-1.1.41.dist-info/RECORD,,
File without changes