pycoze 0.1.164__tar.gz → 0.1.166__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. {pycoze-0.1.164 → pycoze-0.1.166}/PKG-INFO +1 -1
  2. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/agent.py +6 -3
  3. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/chat.py +2 -3
  4. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent_chat.py +2 -17
  5. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/bot.py +1 -8
  6. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze.egg-info/PKG-INFO +1 -1
  7. {pycoze-0.1.164 → pycoze-0.1.166}/setup.py +1 -1
  8. {pycoze-0.1.164 → pycoze-0.1.166}/LICENSE +0 -0
  9. {pycoze-0.1.164 → pycoze-0.1.166}/README.md +0 -0
  10. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/__init__.py +0 -0
  11. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ai/__init__.py +0 -0
  12. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ai/vram_reserve.py +0 -0
  13. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/__init__.py +0 -0
  14. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/__init__.py +0 -0
  15. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/agent_types/__init__.py +0 -0
  16. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/agent_types/const.py +0 -0
  17. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/agent_types/openai_func_call_agent.py +0 -0
  18. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/bot/agent/assistant.py +0 -0
  19. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/reference/__init__.py +0 -0
  20. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/reference/bot.py +0 -0
  21. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/reference/lib.py +0 -0
  22. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/reference/tool.py +0 -0
  23. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ui/__init__.py +0 -0
  24. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ui/base.py +0 -0
  25. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ui/color.py +0 -0
  26. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ui/typ.py +0 -0
  27. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/ui/ui_def.py +0 -0
  28. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/utils/__init__.py +0 -0
  29. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/utils/arg.py +0 -0
  30. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze/utils/text_or_file.py +0 -0
  31. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze.egg-info/SOURCES.txt +0 -0
  32. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze.egg-info/dependency_links.txt +0 -0
  33. {pycoze-0.1.164 → pycoze-0.1.166}/pycoze.egg-info/top_level.txt +0 -0
  34. {pycoze-0.1.164 → pycoze-0.1.166}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.164
3
+ Version: 0.1.166
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -13,10 +13,13 @@ from langchain_core.agents import AgentFinish
13
13
  from .agent_types.const import HumanToolString
14
14
 
15
15
 
16
- async def run_agent(agent, inputs: list, tool_compatibility_mode:bool):
16
+ async def run_agent(agent, inputs: list, tool_compatibility_mode: bool, should_exit):
17
17
  exist_ids = set()
18
18
  content_list = []
19
19
  async for event in agent.astream_events(inputs, version="v2"):
20
+ if should_exit.is_set():
21
+ break
22
+
20
23
  kind = event["event"]
21
24
  if kind == "on_chain_end":
22
25
  if "data" in event:
@@ -30,7 +33,7 @@ async def run_agent(agent, inputs: list, tool_compatibility_mode:bool):
30
33
  for msg in input_list:
31
34
  if isinstance(msg, HumanMessage) or isinstance(msg, SystemMessage):
32
35
  if not tool_compatibility_mode or not msg.content.startswith(HumanToolString):
33
- content_list = [] # 防止内容重复
36
+ content_list = [] # 防止内容重复
34
37
  if isinstance(msg, AIMessage) and not isinstance(
35
38
  msg, AIMessageChunk
36
39
  ):
@@ -87,4 +90,4 @@ if __name__ == "__main__":
87
90
  )
88
91
 
89
92
  inputs = [HumanMessage(content="计算根号7+根号88")]
90
- print(asyncio.run(run_agent(agent, inputs, True)))
93
+ print(asyncio.run(run_agent(agent, inputs, True, threading.Event())))
@@ -9,7 +9,7 @@ _INFOMATION_MESSAGE = "INFOMATION_MESSAGE=>"
9
9
  _LOG = "LOG=>"
10
10
 
11
11
 
12
- CHAT_DATA = {"output":"", "info":""}
12
+ CHAT_DATA = {"output":""}
13
13
 
14
14
 
15
15
  def log(content, *args, end="\n", **kwargs):
@@ -17,7 +17,7 @@ def log(content, *args, end="\n", **kwargs):
17
17
 
18
18
 
19
19
  def clear_chat_data():
20
- CHAT_DATA = {"output":"", "info":""}
20
+ CHAT_DATA = {"output":""}
21
21
 
22
22
 
23
23
  def output(role, content):
@@ -26,5 +26,4 @@ def output(role, content):
26
26
  print(_OUTPUT_MESSAGE + json.dumps({"role": role, "content": content}))
27
27
 
28
28
  def info(role, content):
29
- CHAT_DATA["info"] += content
30
29
  print(_INFOMATION_MESSAGE + json.dumps({"role": role, "content": content}))
@@ -75,20 +75,5 @@ async def agent_chat(bot_setting_file, history, should_exit):
75
75
  assistant_message=prompt,
76
76
  tool_compatibility_mode=cfg["toolCompatibilityMode"],
77
77
  )
78
-
79
- async def run_agent_with_exit_check():
80
- result = await run_agent(agent, history, cfg["toolCompatibilityMode"])
81
- if not should_exit.is_set():
82
- output("assistant", result)
83
-
84
- task = asyncio.create_task(run_agent_with_exit_check())
85
-
86
- while not task.done():
87
- if should_exit.is_set():
88
- task.cancel()
89
- try:
90
- await task
91
- except asyncio.CancelledError:
92
- pass
93
- break
94
- await asyncio.sleep(0.1)
78
+ result = asyncio.run(run_agent(agent, history, cfg["toolCompatibilityMode"], should_exit))
79
+ output("assistant", result)
@@ -54,11 +54,9 @@ def chat(bot_setting_file: str):
54
54
  next_input_text = input_queue.peek()
55
55
  if next_input_text == INTERRUPT_MESSAGE:
56
56
  should_exit.set() # 设置退出标志
57
- history.append(AIMessage(content=CHAT_DATA["info"]))
58
57
  break
59
58
  time.sleep(0.1) # 每隔 0.1 秒检查一次
60
- if next_input_text != INTERRUPT_MESSAGE:
61
- history.append(AIMessage(content=CHAT_DATA["output"]))
59
+ history.append(AIMessage(content=CHAT_DATA["output"]))
62
60
  except json.JSONDecodeError:
63
61
  print("Invalid JSON format in input message.")
64
62
  except KeyError:
@@ -73,11 +71,6 @@ def chat(bot_setting_file: str):
73
71
  def get_chat_response(bot_setting_file: str, input_text: str):
74
72
  history = [HumanMessage(input_text)]
75
73
  clear_chat_data()
76
-
77
- # 为每个线程创建一个独立的退出标志
78
74
  should_exit = threading.Event()
79
-
80
- # 使用 asyncio.run 来运行异步函数,并等待其完成
81
75
  asyncio.run(agent_chat(bot_setting_file, history, should_exit))
82
-
83
76
  return CHAT_DATA["output"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.164
3
+ Version: 0.1.166
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="pycoze",
5
- version="0.1.164",
5
+ version="0.1.166",
6
6
  packages=find_packages(),
7
7
  install_requires=[],
8
8
  author="Yuan Jie Xiong",
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