aient 1.1.23__py3-none-any.whl → 1.1.24__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/plugins/config.py +18 -4
- aient/utils/scripts.py +9 -2
- {aient-1.1.23.dist-info → aient-1.1.24.dist-info}/METADATA +1 -1
- {aient-1.1.23.dist-info → aient-1.1.24.dist-info}/RECORD +7 -7
- {aient-1.1.23.dist-info → aient-1.1.24.dist-info}/WHEEL +0 -0
- {aient-1.1.23.dist-info → aient-1.1.24.dist-info}/licenses/LICENSE +0 -0
- {aient-1.1.23.dist-info → aient-1.1.24.dist-info}/top_level.txt +0 -0
aient/plugins/config.py
CHANGED
@@ -8,10 +8,25 @@ from ..utils.prompt import search_key_word_prompt
|
|
8
8
|
async def get_tools_result_async(function_call_name, function_full_response, function_call_max_tokens, engine, robot, api_key, api_url, use_plugins, model, add_message, convo_id, language):
|
9
9
|
function_response = ""
|
10
10
|
function_to_call = None
|
11
|
+
call_args = json.loads(function_full_response)
|
11
12
|
if function_call_name in registry.tools:
|
12
13
|
function_to_call = registry.tools[function_call_name]
|
14
|
+
call_args_name_list = call_args.keys()
|
15
|
+
required_args = registry.tools_info[function_call_name].args
|
16
|
+
invalid_args = [arg_name for arg_name in call_args_name_list if arg_name not in required_args]
|
17
|
+
if invalid_args:
|
18
|
+
function_response = (
|
19
|
+
"function_response:"
|
20
|
+
"<tool_error>"
|
21
|
+
f"无效的参数: {invalid_args}"
|
22
|
+
f"{function_call_name} 只允许使用以下参数: {required_args}"
|
23
|
+
"</tool_error>"
|
24
|
+
)
|
25
|
+
yield function_response
|
26
|
+
return
|
27
|
+
|
13
28
|
if function_call_name == "get_search_results":
|
14
|
-
prompt =
|
29
|
+
prompt = call_args["query"]
|
15
30
|
yield "message_search_stage_1"
|
16
31
|
llm = robot(api_key=api_key, api_url=api_url, engine=engine, use_plugins=use_plugins)
|
17
32
|
keywords = (await llm.ask_async(search_key_word_prompt.format(source=prompt), model=model)).split("\n")
|
@@ -38,11 +53,10 @@ async def get_tools_result_async(function_call_name, function_full_response, fun
|
|
38
53
|
function_response = "无法找到相关信息,停止使用 tools"
|
39
54
|
|
40
55
|
elif function_to_call:
|
41
|
-
prompt = json.loads(function_full_response)
|
42
56
|
if inspect.iscoroutinefunction(function_to_call):
|
43
|
-
function_response = await function_to_call(**
|
57
|
+
function_response = await function_to_call(**call_args)
|
44
58
|
else:
|
45
|
-
function_response = function_to_call(**
|
59
|
+
function_response = function_to_call(**call_args)
|
46
60
|
|
47
61
|
function_response = (
|
48
62
|
f"function_response:{function_response}"
|
aient/utils/scripts.py
CHANGED
@@ -496,7 +496,7 @@ def parse_function_xml(xml_content: str, check_line_start: bool = True) -> List[
|
|
496
496
|
tag_inner_content = xml_content[tag_end+1:end_pos]
|
497
497
|
|
498
498
|
# 如果是普通辅助标签(如tool_call),则在其内部寻找函数调用
|
499
|
-
if tag_name in ["tool_call", "function_call", "tool", "function"]:
|
499
|
+
if tag_name in ["tool_call", "function_call", "tool", "function", "tools"]:
|
500
500
|
# 递归处理内部内容,此时不再检查行首条件
|
501
501
|
nested_functions = parse_function_xml(tag_inner_content, check_line_start=False)
|
502
502
|
result_functions.extend(nested_functions)
|
@@ -740,7 +740,14 @@ if __name__ == "__main__":
|
|
740
740
|
|
741
741
|
请提供前两个 `excute_command` 的执行结果。
|
742
742
|
"""
|
743
|
-
|
743
|
+
test_xml = """
|
744
|
+
好的,我现在执行第一步。
|
745
|
+
<tools>
|
746
|
+
<list_directory>
|
747
|
+
<path>/Downloads/GitHub/beswarm/work/test</path>
|
748
|
+
</list_directory>
|
749
|
+
</tools>
|
750
|
+
"""
|
744
751
|
print(parse_function_xml(test_xml))
|
745
752
|
|
746
753
|
# 运行本文件:python -m beswarm.aient.src.aient.utils.scripts
|
@@ -22,7 +22,7 @@ aient/models/groq.py,sha256=eXfSOaPxgQEtk4U8qseArN8rFYOFBfMsPwRcDW1nERo,8790
|
|
22
22
|
aient/models/vertex.py,sha256=qVD5l1Q538xXUPulxG4nmDjXE1VoV4yuAkTCpIeJVw0,16795
|
23
23
|
aient/plugins/__init__.py,sha256=p3KO6Aa3Lupos4i2SjzLQw1hzQTigOAfEHngsldrsyk,986
|
24
24
|
aient/plugins/arXiv.py,sha256=yHjb6PS3GUWazpOYRMKMzghKJlxnZ5TX8z9F6UtUVow,1461
|
25
|
-
aient/plugins/config.py,sha256=
|
25
|
+
aient/plugins/config.py,sha256=QGyI9LlNaU36GUpY531o7UbTFBB39u7LfS6rrx_RTWw,7103
|
26
26
|
aient/plugins/excute_command.py,sha256=i5AUSfnYe05cS4YZuNIhuCy-Cfxil7RJG372YwzteXs,10691
|
27
27
|
aient/plugins/get_time.py,sha256=Ih5XIW5SDAIhrZ9W4Qe5Hs1k4ieKPUc_LAd6ySNyqZk,654
|
28
28
|
aient/plugins/image.py,sha256=ZElCIaZznE06TN9xW3DrSukS7U3A5_cjk1Jge4NzPxw,2072
|
@@ -37,9 +37,9 @@ aient/prompt/__init__.py,sha256=GBtn6-JDT8KHFCcuPpfSNE_aGddg5p4FEyMCy4BfwGs,20
|
|
37
37
|
aient/prompt/agent.py,sha256=ZNsbgXRyvYzAFTRRziAnNVqcTyAnxrGcsGfGrt72j6k,25427
|
38
38
|
aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
39
|
aient/utils/prompt.py,sha256=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
|
40
|
-
aient/utils/scripts.py,sha256=
|
41
|
-
aient-1.1.
|
42
|
-
aient-1.1.
|
43
|
-
aient-1.1.
|
44
|
-
aient-1.1.
|
45
|
-
aient-1.1.
|
40
|
+
aient/utils/scripts.py,sha256=RFkuu3j1tC_x1SwQQsS__wQOZe5olmy7FPHEOk5Obds,29265
|
41
|
+
aient-1.1.24.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
|
42
|
+
aient-1.1.24.dist-info/METADATA,sha256=FyHXoKl3zIZncMu4FevGSBk52ZEEa-cn_o1KS4Ru18g,4968
|
43
|
+
aient-1.1.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
44
|
+
aient-1.1.24.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
|
45
|
+
aient-1.1.24.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|