aient 1.0.59__tar.gz → 1.0.60__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 (78) hide show
  1. {aient-1.0.59/src/aient.egg-info → aient-1.0.60}/PKG-INFO +1 -1
  2. {aient-1.0.59 → aient-1.0.60}/setup.py +1 -1
  3. {aient-1.0.59 → aient-1.0.60}/src/aient/core/response.py +2 -3
  4. {aient-1.0.59 → aient-1.0.60}/src/aient/models/base.py +1 -0
  5. {aient-1.0.59 → aient-1.0.60}/src/aient/models/chatgpt.py +5 -11
  6. {aient-1.0.59 → aient-1.0.60/src/aient.egg-info}/PKG-INFO +1 -1
  7. {aient-1.0.59 → aient-1.0.60}/LICENSE +0 -0
  8. {aient-1.0.59 → aient-1.0.60}/MANIFEST.in +0 -0
  9. {aient-1.0.59 → aient-1.0.60}/README.md +0 -0
  10. {aient-1.0.59 → aient-1.0.60}/setup.cfg +0 -0
  11. {aient-1.0.59 → aient-1.0.60}/src/aient/__init__.py +0 -0
  12. {aient-1.0.59 → aient-1.0.60}/src/aient/core/.git +0 -0
  13. {aient-1.0.59 → aient-1.0.60}/src/aient/core/__init__.py +0 -0
  14. {aient-1.0.59 → aient-1.0.60}/src/aient/core/log_config.py +0 -0
  15. {aient-1.0.59 → aient-1.0.60}/src/aient/core/models.py +0 -0
  16. {aient-1.0.59 → aient-1.0.60}/src/aient/core/request.py +0 -0
  17. {aient-1.0.59 → aient-1.0.60}/src/aient/core/test/test_base_api.py +0 -0
  18. {aient-1.0.59 → aient-1.0.60}/src/aient/core/test/test_image.py +0 -0
  19. {aient-1.0.59 → aient-1.0.60}/src/aient/core/test/test_payload.py +0 -0
  20. {aient-1.0.59 → aient-1.0.60}/src/aient/core/utils.py +0 -0
  21. {aient-1.0.59 → aient-1.0.60}/src/aient/models/__init__.py +0 -0
  22. {aient-1.0.59 → aient-1.0.60}/src/aient/models/audio.py +0 -0
  23. {aient-1.0.59 → aient-1.0.60}/src/aient/models/claude.py +0 -0
  24. {aient-1.0.59 → aient-1.0.60}/src/aient/models/duckduckgo.py +0 -0
  25. {aient-1.0.59 → aient-1.0.60}/src/aient/models/gemini.py +0 -0
  26. {aient-1.0.59 → aient-1.0.60}/src/aient/models/groq.py +0 -0
  27. {aient-1.0.59 → aient-1.0.60}/src/aient/models/vertex.py +0 -0
  28. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/__init__.py +0 -0
  29. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/arXiv.py +0 -0
  30. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/config.py +0 -0
  31. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/excute_command.py +0 -0
  32. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/get_time.py +0 -0
  33. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/image.py +0 -0
  34. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/list_directory.py +0 -0
  35. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/read_file.py +0 -0
  36. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/registry.py +0 -0
  37. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/run_python.py +0 -0
  38. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/websearch.py +0 -0
  39. {aient-1.0.59 → aient-1.0.60}/src/aient/plugins/write_file.py +0 -0
  40. {aient-1.0.59 → aient-1.0.60}/src/aient/prompt/__init__.py +0 -0
  41. {aient-1.0.59 → aient-1.0.60}/src/aient/prompt/agent.py +0 -0
  42. {aient-1.0.59 → aient-1.0.60}/src/aient/utils/__init__.py +0 -0
  43. {aient-1.0.59 → aient-1.0.60}/src/aient/utils/prompt.py +0 -0
  44. {aient-1.0.59 → aient-1.0.60}/src/aient/utils/scripts.py +0 -0
  45. {aient-1.0.59 → aient-1.0.60}/src/aient.egg-info/SOURCES.txt +0 -0
  46. {aient-1.0.59 → aient-1.0.60}/src/aient.egg-info/dependency_links.txt +0 -0
  47. {aient-1.0.59 → aient-1.0.60}/src/aient.egg-info/requires.txt +0 -0
  48. {aient-1.0.59 → aient-1.0.60}/src/aient.egg-info/top_level.txt +0 -0
  49. {aient-1.0.59 → aient-1.0.60}/test/test.py +0 -0
  50. {aient-1.0.59 → aient-1.0.60}/test/test_API.py +0 -0
  51. {aient-1.0.59 → aient-1.0.60}/test/test_Deepbricks.py +0 -0
  52. {aient-1.0.59 → aient-1.0.60}/test/test_Web_crawler.py +0 -0
  53. {aient-1.0.59 → aient-1.0.60}/test/test_aiwaves.py +0 -0
  54. {aient-1.0.59 → aient-1.0.60}/test/test_aiwaves_arxiv.py +0 -0
  55. {aient-1.0.59 → aient-1.0.60}/test/test_ask_gemini.py +0 -0
  56. {aient-1.0.59 → aient-1.0.60}/test/test_class.py +0 -0
  57. {aient-1.0.59 → aient-1.0.60}/test/test_claude.py +0 -0
  58. {aient-1.0.59 → aient-1.0.60}/test/test_claude_zh_char.py +0 -0
  59. {aient-1.0.59 → aient-1.0.60}/test/test_ddg_search.py +0 -0
  60. {aient-1.0.59 → aient-1.0.60}/test/test_download_pdf.py +0 -0
  61. {aient-1.0.59 → aient-1.0.60}/test/test_gemini.py +0 -0
  62. {aient-1.0.59 → aient-1.0.60}/test/test_get_token_dict.py +0 -0
  63. {aient-1.0.59 → aient-1.0.60}/test/test_google_search.py +0 -0
  64. {aient-1.0.59 → aient-1.0.60}/test/test_jieba.py +0 -0
  65. {aient-1.0.59 → aient-1.0.60}/test/test_json.py +0 -0
  66. {aient-1.0.59 → aient-1.0.60}/test/test_langchain_search_old.py +0 -0
  67. {aient-1.0.59 → aient-1.0.60}/test/test_logging.py +0 -0
  68. {aient-1.0.59 → aient-1.0.60}/test/test_ollama.py +0 -0
  69. {aient-1.0.59 → aient-1.0.60}/test/test_plugin.py +0 -0
  70. {aient-1.0.59 → aient-1.0.60}/test/test_py_run.py +0 -0
  71. {aient-1.0.59 → aient-1.0.60}/test/test_requests.py +0 -0
  72. {aient-1.0.59 → aient-1.0.60}/test/test_search.py +0 -0
  73. {aient-1.0.59 → aient-1.0.60}/test/test_tikitoken.py +0 -0
  74. {aient-1.0.59 → aient-1.0.60}/test/test_token.py +0 -0
  75. {aient-1.0.59 → aient-1.0.60}/test/test_url.py +0 -0
  76. {aient-1.0.59 → aient-1.0.60}/test/test_whisper.py +0 -0
  77. {aient-1.0.59 → aient-1.0.60}/test/test_wildcard.py +0 -0
  78. {aient-1.0.59 → aient-1.0.60}/test/test_yjh.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.0.59
3
+ Version: 1.0.60
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.59",
7
+ version="1.0.60",
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",
@@ -191,7 +191,7 @@ async def fetch_gpt_response_stream(client, url, headers, payload):
191
191
  while "\n" in buffer:
192
192
  line, buffer = buffer.split("\n", 1)
193
193
  # logger.info("line: %s", repr(line))
194
- if line and line != "data: " and line != "data:" and not line.startswith(": ") and (result:=line.lstrip("data: ").strip()):
194
+ if line and not line.startswith(": ") and (result:=line.lstrip("data: ").strip()):
195
195
  if result.strip() == "[DONE]":
196
196
  break
197
197
  line = json.loads(result)
@@ -298,8 +298,7 @@ async def fetch_azure_response_stream(client, url, headers, payload):
298
298
  while "\n" in buffer:
299
299
  line, buffer = buffer.split("\n", 1)
300
300
  # logger.info("line: %s", repr(line))
301
- if line and line != "data: " and line != "data:" and not line.startswith(": "):
302
- result = line.lstrip("data: ")
301
+ if line and not line.startswith(": ") and (result:=line.lstrip("data: ").strip()):
303
302
  if result.strip() == "[DONE]":
304
303
  break
305
304
  line = json.loads(result)
@@ -82,6 +82,7 @@ class BaseLLM:
82
82
  ],
83
83
  }
84
84
  self.tokens_usage = defaultdict(int)
85
+ self.current_tokens = defaultdict(int)
85
86
  self.function_calls_counter = {}
86
87
  self.function_call_max_loop = 10
87
88
  self.use_plugins = use_plugins
@@ -207,6 +207,7 @@ class chatgpt(BaseLLM):
207
207
  history_len = history_len - 1
208
208
 
209
209
  if total_tokens:
210
+ self.current_tokens[convo_id] = total_tokens
210
211
  self.tokens_usage[convo_id] += total_tokens
211
212
 
212
213
  def truncate_conversation(self, convo_id: str = "default") -> None:
@@ -215,25 +216,17 @@ class chatgpt(BaseLLM):
215
216
  """
216
217
  while True:
217
218
  if (
218
- self.tokens_usage[convo_id] > self.truncate_limit
219
+ self.current_tokens[convo_id] > self.truncate_limit
219
220
  and len(self.conversation[convo_id]) > 1
220
221
  ):
221
222
  # Don't remove the first message
222
223
  mess = self.conversation[convo_id].pop(1)
224
+ string_mess = json.dumps(mess, ensure_ascii=False)
225
+ self.current_tokens[convo_id] -= len(string_mess) / 4
223
226
  print("Truncate message:", mess)
224
227
  else:
225
228
  break
226
229
 
227
- def extract_values(self, obj):
228
- if isinstance(obj, dict):
229
- for value in obj.values():
230
- yield from self.extract_values(value)
231
- elif isinstance(obj, list):
232
- for item in obj:
233
- yield from self.extract_values(item)
234
- else:
235
- yield obj
236
-
237
230
  async def get_post_body(
238
231
  self,
239
232
  prompt: str,
@@ -789,6 +782,7 @@ class chatgpt(BaseLLM):
789
782
  {"role": "system", "content": self.system_prompt},
790
783
  ]
791
784
  self.tokens_usage[convo_id] = 0
785
+ self.current_tokens[convo_id] = 0
792
786
 
793
787
  def save(self, file: str, *keys: str) -> None:
794
788
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aient
3
- Version: 1.0.59
3
+ Version: 1.0.60
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