aient 1.0.76__tar.gz → 1.0.78__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.
Files changed (79) hide show
  1. {aient-1.0.76/src/aient.egg-info → aient-1.0.78}/PKG-INFO +1 -1
  2. {aient-1.0.76 → aient-1.0.78}/setup.py +1 -1
  3. {aient-1.0.76 → aient-1.0.78}/src/aient/models/chatgpt.py +13 -1
  4. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/read_file.py +42 -1
  5. {aient-1.0.76 → aient-1.0.78/src/aient.egg-info}/PKG-INFO +1 -1
  6. {aient-1.0.76 → aient-1.0.78}/LICENSE +0 -0
  7. {aient-1.0.76 → aient-1.0.78}/MANIFEST.in +0 -0
  8. {aient-1.0.76 → aient-1.0.78}/README.md +0 -0
  9. {aient-1.0.76 → aient-1.0.78}/setup.cfg +0 -0
  10. {aient-1.0.76 → aient-1.0.78}/src/aient/__init__.py +0 -0
  11. {aient-1.0.76 → aient-1.0.78}/src/aient/core/.git +0 -0
  12. {aient-1.0.76 → aient-1.0.78}/src/aient/core/.gitignore +0 -0
  13. {aient-1.0.76 → aient-1.0.78}/src/aient/core/__init__.py +0 -0
  14. {aient-1.0.76 → aient-1.0.78}/src/aient/core/log_config.py +0 -0
  15. {aient-1.0.76 → aient-1.0.78}/src/aient/core/models.py +0 -0
  16. {aient-1.0.76 → aient-1.0.78}/src/aient/core/request.py +0 -0
  17. {aient-1.0.76 → aient-1.0.78}/src/aient/core/response.py +0 -0
  18. {aient-1.0.76 → aient-1.0.78}/src/aient/core/test/test_base_api.py +0 -0
  19. {aient-1.0.76 → aient-1.0.78}/src/aient/core/test/test_image.py +0 -0
  20. {aient-1.0.76 → aient-1.0.78}/src/aient/core/test/test_payload.py +0 -0
  21. {aient-1.0.76 → aient-1.0.78}/src/aient/core/utils.py +0 -0
  22. {aient-1.0.76 → aient-1.0.78}/src/aient/models/__init__.py +0 -0
  23. {aient-1.0.76 → aient-1.0.78}/src/aient/models/audio.py +0 -0
  24. {aient-1.0.76 → aient-1.0.78}/src/aient/models/base.py +0 -0
  25. {aient-1.0.76 → aient-1.0.78}/src/aient/models/claude.py +0 -0
  26. {aient-1.0.76 → aient-1.0.78}/src/aient/models/duckduckgo.py +0 -0
  27. {aient-1.0.76 → aient-1.0.78}/src/aient/models/gemini.py +0 -0
  28. {aient-1.0.76 → aient-1.0.78}/src/aient/models/groq.py +0 -0
  29. {aient-1.0.76 → aient-1.0.78}/src/aient/models/vertex.py +0 -0
  30. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/__init__.py +0 -0
  31. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/arXiv.py +0 -0
  32. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/config.py +0 -0
  33. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/excute_command.py +0 -0
  34. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/get_time.py +0 -0
  35. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/image.py +0 -0
  36. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/list_directory.py +0 -0
  37. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/registry.py +0 -0
  38. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/run_python.py +0 -0
  39. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/websearch.py +0 -0
  40. {aient-1.0.76 → aient-1.0.78}/src/aient/plugins/write_file.py +0 -0
  41. {aient-1.0.76 → aient-1.0.78}/src/aient/prompt/__init__.py +0 -0
  42. {aient-1.0.76 → aient-1.0.78}/src/aient/prompt/agent.py +0 -0
  43. {aient-1.0.76 → aient-1.0.78}/src/aient/utils/__init__.py +0 -0
  44. {aient-1.0.76 → aient-1.0.78}/src/aient/utils/prompt.py +0 -0
  45. {aient-1.0.76 → aient-1.0.78}/src/aient/utils/scripts.py +0 -0
  46. {aient-1.0.76 → aient-1.0.78}/src/aient.egg-info/SOURCES.txt +0 -0
  47. {aient-1.0.76 → aient-1.0.78}/src/aient.egg-info/dependency_links.txt +0 -0
  48. {aient-1.0.76 → aient-1.0.78}/src/aient.egg-info/requires.txt +0 -0
  49. {aient-1.0.76 → aient-1.0.78}/src/aient.egg-info/top_level.txt +0 -0
  50. {aient-1.0.76 → aient-1.0.78}/test/test.py +0 -0
  51. {aient-1.0.76 → aient-1.0.78}/test/test_API.py +0 -0
  52. {aient-1.0.76 → aient-1.0.78}/test/test_Deepbricks.py +0 -0
  53. {aient-1.0.76 → aient-1.0.78}/test/test_Web_crawler.py +0 -0
  54. {aient-1.0.76 → aient-1.0.78}/test/test_aiwaves.py +0 -0
  55. {aient-1.0.76 → aient-1.0.78}/test/test_aiwaves_arxiv.py +0 -0
  56. {aient-1.0.76 → aient-1.0.78}/test/test_ask_gemini.py +0 -0
  57. {aient-1.0.76 → aient-1.0.78}/test/test_class.py +0 -0
  58. {aient-1.0.76 → aient-1.0.78}/test/test_claude.py +0 -0
  59. {aient-1.0.76 → aient-1.0.78}/test/test_claude_zh_char.py +0 -0
  60. {aient-1.0.76 → aient-1.0.78}/test/test_ddg_search.py +0 -0
  61. {aient-1.0.76 → aient-1.0.78}/test/test_download_pdf.py +0 -0
  62. {aient-1.0.76 → aient-1.0.78}/test/test_gemini.py +0 -0
  63. {aient-1.0.76 → aient-1.0.78}/test/test_get_token_dict.py +0 -0
  64. {aient-1.0.76 → aient-1.0.78}/test/test_google_search.py +0 -0
  65. {aient-1.0.76 → aient-1.0.78}/test/test_jieba.py +0 -0
  66. {aient-1.0.76 → aient-1.0.78}/test/test_json.py +0 -0
  67. {aient-1.0.76 → aient-1.0.78}/test/test_langchain_search_old.py +0 -0
  68. {aient-1.0.76 → aient-1.0.78}/test/test_logging.py +0 -0
  69. {aient-1.0.76 → aient-1.0.78}/test/test_ollama.py +0 -0
  70. {aient-1.0.76 → aient-1.0.78}/test/test_plugin.py +0 -0
  71. {aient-1.0.76 → aient-1.0.78}/test/test_py_run.py +0 -0
  72. {aient-1.0.76 → aient-1.0.78}/test/test_requests.py +0 -0
  73. {aient-1.0.76 → aient-1.0.78}/test/test_search.py +0 -0
  74. {aient-1.0.76 → aient-1.0.78}/test/test_tikitoken.py +0 -0
  75. {aient-1.0.76 → aient-1.0.78}/test/test_token.py +0 -0
  76. {aient-1.0.76 → aient-1.0.78}/test/test_url.py +0 -0
  77. {aient-1.0.76 → aient-1.0.78}/test/test_whisper.py +0 -0
  78. {aient-1.0.76 → aient-1.0.78}/test/test_wildcard.py +0 -0
  79. {aient-1.0.76 → aient-1.0.78}/test/test_yjh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.0.76
3
+ Version: 1.0.78
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
4
4
 
5
5
  setup(
6
6
  name="aient",
7
- version="1.0.76",
7
+ version="1.0.78",
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",
@@ -409,7 +409,19 @@ class chatgpt(BaseLLM):
409
409
 
410
410
  function_parameter = parse_function_xml(full_response)
411
411
  if function_parameter:
412
- need_function_call = True
412
+ for tool_dict in function_parameter:
413
+ if tool_dict.get("function_name", "") not in self.plugins.keys():
414
+ function_parameter.remove(tool_dict)
415
+ if function_parameter:
416
+ need_function_call = True
417
+ else:
418
+ if self.print_log:
419
+ print("Failed to parse function_parameter", function_parameter)
420
+ print("full_response", full_response)
421
+ full_response = (
422
+ f"{full_response}"
423
+ "\n\nFailed to parse function parameter, I need to try again."
424
+ )
413
425
 
414
426
  # 处理函数调用
415
427
  if need_function_call and self.use_plugins != False:
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import json
2
3
  from pdfminer.high_level import extract_text
3
4
 
4
5
  from .registry import register_tool
@@ -63,6 +64,40 @@ Examples:
63
64
  # 如果提取结果为空
64
65
  if not text_content:
65
66
  return f"错误: 无法从 '{file_path}' 提取文本内容"
67
+ elif file_path.lower().endswith('.ipynb'):
68
+ try:
69
+ with open(file_path, 'r', encoding='utf-8') as file:
70
+ notebook_content = json.load(file)
71
+
72
+ for cell in notebook_content.get('cells', []):
73
+ if cell.get('cell_type') == 'code' and 'outputs' in cell:
74
+ filtered_outputs = []
75
+ for output in cell.get('outputs', []):
76
+ new_output = output.copy()
77
+ if 'data' in new_output:
78
+ original_data = new_output['data']
79
+ filtered_data = {}
80
+ for key, value in original_data.items():
81
+ if key.startswith('image/'):
82
+ continue
83
+ if key == 'text/html':
84
+ html_content = "".join(value) if isinstance(value, list) else value
85
+ if isinstance(html_content, str) and '<table class="show_videos"' in html_content:
86
+ continue
87
+ filtered_data[key] = value
88
+ if filtered_data:
89
+ new_output['data'] = filtered_data
90
+ filtered_outputs.append(new_output)
91
+ elif 'output_type' in new_output and new_output['output_type'] in ['stream', 'error']:
92
+ filtered_outputs.append(new_output)
93
+
94
+ cell['outputs'] = filtered_outputs
95
+
96
+ text_content = json.dumps(notebook_content, indent=2, ensure_ascii=False)
97
+ except json.JSONDecodeError:
98
+ return f"错误: 文件 '{file_path}' 不是有效的JSON格式 (IPython Notebook)。"
99
+ except Exception as e:
100
+ return f"处理IPython Notebook文件 '{file_path}' 时发生错误: {e}"
66
101
  else:
67
102
  # 读取文件内容
68
103
  with open(file_path, 'r', encoding='utf-8') as file:
@@ -76,4 +111,10 @@ Examples:
76
111
  except UnicodeDecodeError:
77
112
  return f"错误: 文件 '{file_path}' 不是文本文件或编码不是UTF-8"
78
113
  except Exception as e:
79
- return f"读取文件时发生错误: {e}"
114
+ return f"读取文件时发生错误: {e}"
115
+
116
+ if __name__ == "__main__":
117
+ # python -m beswarm.aient.src.aient.plugins.read_file
118
+ result = read_file("./work/cax/Lenia Notebook.ipynb")
119
+ print(result)
120
+ print(len(result))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.0.76
3
+ Version: 1.0.78
4
4
  Summary: Aient: The Awakening of Agent.
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
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