aient 1.2.21__py3-none-any.whl → 1.2.23__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/models/chatgpt.py CHANGED
@@ -188,9 +188,9 @@ class chatgpt(BaseLLM):
188
188
  ])
189
189
  self.conversation[convo_id].append(AssistantMessage(convert_functions_to_xml(function_arguments)))
190
190
  if image_message_list:
191
- self.conversation[convo_id].append(UserMessage(message + image_message_list))
191
+ self.conversation[convo_id].append(UserMessage(message + image_message_list, Texts("\n\nYour message **must** end with [done] to signify the end of your output.", name="done", visible=self.check_done)))
192
192
  else:
193
- self.conversation[convo_id].append(UserMessage(message))
193
+ self.conversation[convo_id].append(UserMessage(message, Texts("\n\nYour message **must** end with [done] to signify the end of your output.", name="done", visible=self.check_done)))
194
194
  else:
195
195
  self.conversation[convo_id].append(AssistantMessage("我已经执行过这个工具了,接下来我需要做什么?"))
196
196
  else:
@@ -600,9 +600,6 @@ class chatgpt(BaseLLM):
600
600
  else:
601
601
  all_responses.append(f"[{tool_name}({tool_args}) Result]:\n\n{tool_response}")
602
602
 
603
- if self.check_done:
604
- all_responses.append("Your message **must** end with [done] to signify the end of your output.")
605
-
606
603
  # 合并所有工具响应
607
604
  function_response = "\n\n".join(all_responses).strip()
608
605
  if missing_required_params:
@@ -7,7 +7,7 @@ from .registry import register_tool
7
7
 
8
8
  # 读取文件内容
9
9
  @register_tool()
10
- def read_file(file_path):
10
+ def read_file(file_path, head: int = None):
11
11
  """
12
12
  Description: Request to read the contents of a file at the specified path. Use this when you need to examine the contents of an existing file you do not know the contents of, for example to analyze code, review text files, or extract information from configuration files. Automatically extracts raw text from PDF and DOCX files. May not be suitable for other types of binary files, as it returns the raw content as a string.
13
13
 
@@ -16,6 +16,7 @@ Description: Request to read the contents of a file at the specified path. Use t
16
16
 
17
17
  参数:
18
18
  file_path: 要读取的文件路径,(required) The path of the file to read (relative to the current working directory)
19
+ head: (可选) 读取文件的前N行,默认为None,读取整个文件
19
20
 
20
21
  返回:
21
22
  文件内容的字符串
@@ -161,13 +162,23 @@ Examples:
161
162
  # 捕获在此块中可能发生的其他错误,例如未被早期检查捕获的文件读取问题
162
163
  return f"<tool_error>处理通用文件 '{file_path}' 时发生错误: {e}</tool_error>"
163
164
 
164
- if file_path.lower().endswith('.csv'):
165
- lines = text_content.splitlines(True)
166
- if len(lines) > 500:
167
- top_lines = lines[:250]
168
- bottom_lines = lines[-250:]
169
- omitted_count = len(lines) - 500
170
- text_content = "".join(top_lines) + f"\n... (中间省略了 {omitted_count} 行) ...\n" + "".join(bottom_lines)
165
+ if head is not None:
166
+ try:
167
+ num_lines = int(head)
168
+ if num_lines > 0:
169
+ lines = text_content.splitlines(True)
170
+ return "".join(lines[:num_lines])
171
+ except (ValueError, TypeError):
172
+ # Invalid head value, ignore and proceed with normal logic.
173
+ pass
174
+
175
+ # if file_path.lower().endswith('.csv'):
176
+ # lines = text_content.splitlines(True)
177
+ # if len(lines) > 500:
178
+ # top_lines = lines[:250]
179
+ # bottom_lines = lines[-250:]
180
+ # omitted_count = len(lines) - 500
181
+ # text_content = "".join(top_lines) + f"\n... (中间省略了 {omitted_count} 行) ...\n" + "".join(bottom_lines)
171
182
 
172
183
  # 返回文件内容
173
184
  return text_content
@@ -182,6 +193,6 @@ Examples:
182
193
 
183
194
  if __name__ == "__main__":
184
195
  # python -m beswarm.aient.aient.plugins.read_file
185
- result = read_file("./work/cax/Lenia Notebook.ipynb")
196
+ result = read_file("./work/cax/Lenia Notebook.ipynb", head=10)
186
197
  print(result)
187
198
  print(len(result))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.2.21
3
+ Version: 1.2.23
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -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=kRd-8-WXzv4vwvsTGwnstK-WR8--vr9CdfCZzu8y9LA,1934
19
19
  aient/models/base.py,sha256=-nnihYnx-vHZMqeVO9ljjt3k4FcD3n-iMk4tT-10nRQ,7232
20
- aient/models/chatgpt.py,sha256=96E6Ggsy49GS_KWECi5agE0zeaEjaHTRd336fykyIJI,42606
20
+ aient/models/chatgpt.py,sha256=DtcbRJObXyCXlJdel9OItd1wgpOCVvenS2fXs4_xO34,42710
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
@@ -25,7 +25,7 @@ aient/plugins/excute_command.py,sha256=b-rxsyFN6_HnZJAhUi9Qsp8iJ6XTf-zU-CIUIxeQO
25
25
  aient/plugins/get_time.py,sha256=Ih5XIW5SDAIhrZ9W4Qe5Hs1k4ieKPUc_LAd6ySNyqZk,654
26
26
  aient/plugins/image.py,sha256=ZElCIaZznE06TN9xW3DrSukS7U3A5_cjk1Jge4NzPxw,2072
27
27
  aient/plugins/list_directory.py,sha256=V_uKkLx_fQDL5z__bSDC-PqAP-o32KmQW6Pdhx0Fx0s,1433
28
- aient/plugins/read_file.py,sha256=AOGGzSzkALG1R_ncpDmegX_zKFZBZr8ZhTBQCiwhZfU,8691
28
+ aient/plugins/read_file.py,sha256=qHAhdesOr1VMOCDkeHNvI8UV2ZI98HmJl6GhN4Aq9dU,9183
29
29
  aient/plugins/read_image.py,sha256=4FbIiMNVFUQpNyiH5ApGSRvOD9ujcXGyuqlGTJMd7ac,4017
30
30
  aient/plugins/readonly.py,sha256=qK5-kBM3NDH1b-otFxFHpAjV5BXEY_e7cTWBcpP7G5k,710
31
31
  aient/plugins/registry.py,sha256=YknzhieU_8nQ3oKlUSSWDB4X7t2Jx0JnqT2Jd9Xsvfk,3574
@@ -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=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
37
37
  aient/utils/scripts.py,sha256=VqtK4RFEx7KxkmcqG3lFDS1DxoNlFFGErEjopVcc8IE,40974
38
- aient-1.2.21.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
39
- aient-1.2.21.dist-info/METADATA,sha256=Z08dMsZnseBncF3d5A4Xbtq1hv6sgmw4Vqe93nEAavc,4842
40
- aient-1.2.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
- aient-1.2.21.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
42
- aient-1.2.21.dist-info/RECORD,,
38
+ aient-1.2.23.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
39
+ aient-1.2.23.dist-info/METADATA,sha256=70F7ytGF6-OpyIrMWjt-TsupS_ZrAQGZIDixwMk_WI8,4842
40
+ aient-1.2.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
+ aient-1.2.23.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
42
+ aient-1.2.23.dist-info/RECORD,,
File without changes