aient 1.1.38__tar.gz → 1.1.40__tar.gz
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-1.1.38/src/aient.egg-info → aient-1.1.40}/PKG-INFO +1 -1
- {aient-1.1.38 → aient-1.1.40}/setup.py +1 -1
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/request.py +8 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/response.py +9 -12
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/excute_command.py +9 -4
- {aient-1.1.38 → aient-1.1.40/src/aient.egg-info}/PKG-INFO +1 -1
- {aient-1.1.38 → aient-1.1.40}/LICENSE +0 -0
- {aient-1.1.38 → aient-1.1.40}/MANIFEST.in +0 -0
- {aient-1.1.38 → aient-1.1.40}/README.md +0 -0
- {aient-1.1.38 → aient-1.1.40}/setup.cfg +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/__init__.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/.git +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/.gitignore +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/__init__.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/log_config.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/models.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/test/test_base_api.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/test/test_geminimask.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/test/test_image.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/test/test_payload.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/core/utils.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/__init__.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/audio.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/base.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/chatgpt.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/claude.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/duckduckgo.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/gemini.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/groq.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/models/vertex.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/__init__.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/arXiv.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/config.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/get_time.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/image.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/list_directory.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/read_file.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/read_image.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/readonly.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/registry.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/run_python.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/websearch.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/plugins/write_file.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/utils/__init__.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/utils/prompt.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient/utils/scripts.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient.egg-info/SOURCES.txt +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient.egg-info/dependency_links.txt +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient.egg-info/requires.txt +0 -0
- {aient-1.1.38 → aient-1.1.40}/src/aient.egg-info/top_level.txt +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_API.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_Deepbricks.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_Web_crawler.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_aiwaves.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_aiwaves_arxiv.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_ask_gemini.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_class.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_claude.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_claude_zh_char.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_ddg_search.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_download_pdf.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_gemini.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_get_token_dict.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_google_search.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_jieba.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_json.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_logging.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_ollama.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_plugin.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_py_run.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_requests.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_search.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_tikitoken.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_token.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_url.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_whisper.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_wildcard.py +0 -0
- {aient-1.1.38 → aient-1.1.40}/test/test_yjh.py +0 -0
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
|
|
4
4
|
|
5
5
|
setup(
|
6
6
|
name="aient",
|
7
|
-
version="1.1.
|
7
|
+
version="1.1.40",
|
8
8
|
description="Aient: The Awakening of Agent.",
|
9
9
|
long_description=Path.open(Path("README.md"), encoding="utf-8").read(),
|
10
10
|
long_description_content_type="text/markdown",
|
@@ -240,6 +240,10 @@ async def get_gemini_payload(request, engine, provider, api_key=None):
|
|
240
240
|
val = int(m.group(1))
|
241
241
|
if val < 0:
|
242
242
|
val = 0
|
243
|
+
elif val > 32768 and "gemini-2.5-pro" in original_model:
|
244
|
+
val = 32768
|
245
|
+
elif val < 128 and "gemini-2.5-pro" in original_model:
|
246
|
+
val = 128
|
243
247
|
elif val > 24576:
|
244
248
|
val = 24576
|
245
249
|
payload["generationConfig"]["thinkingConfig"]["thinkingBudget"] = val
|
@@ -532,6 +536,10 @@ async def get_vertex_gemini_payload(request, engine, provider, api_key=None):
|
|
532
536
|
val = int(m.group(1))
|
533
537
|
if val < 0:
|
534
538
|
val = 0
|
539
|
+
elif val > 32768 and "gemini-2.5-pro" in original_model:
|
540
|
+
val = 32768
|
541
|
+
elif val < 128 and "gemini-2.5-pro" in original_model:
|
542
|
+
val = 128
|
535
543
|
elif val > 24576:
|
536
544
|
val = 24576
|
537
545
|
payload["generationConfig"]["thinkingConfig"]["thinkingBudget"] = val
|
@@ -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
|
-
|
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
|
-
|
622
|
-
|
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)
|
@@ -68,14 +68,19 @@ def get_python_executable(command: str) -> str:
|
|
68
68
|
@register_tool()
|
69
69
|
def excute_command(command):
|
70
70
|
"""
|
71
|
-
执行命令并返回输出结果 (标准输出会实时打印到控制台)
|
72
|
-
|
71
|
+
执行命令并返回输出结果 (标准输出会实时打印到控制台)。
|
72
|
+
|
73
|
+
重要规则:
|
74
|
+
- **克隆仓库**: 使用 `git clone` 时,必须指定一个新的子目录作为目标,以避免在非空工作目录中出错。
|
75
|
+
- **正确示例**: `git clone https://github.com/user/repo_name.git repo_name`
|
76
|
+
- **错误用法**: `git clone https://github.com/user/repo_name.git .`
|
77
|
+
- **禁止**: 禁止用于查看pdf,禁止使用 `pdftotext` 命令。
|
73
78
|
|
74
79
|
参数:
|
75
|
-
command:
|
80
|
+
command: 要执行的命令,例如克隆仓库、安装依赖、运行代码等。
|
76
81
|
|
77
82
|
返回:
|
78
|
-
|
83
|
+
命令执行的最终状态和收集到的输出/错误信息。
|
79
84
|
"""
|
80
85
|
try:
|
81
86
|
command = unescape_html(command)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|