pycoze 0.1.162__tar.gz → 0.1.164__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.162 → pycoze-0.1.164}/PKG-INFO +1 -1
  2. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent_chat.py +18 -3
  3. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/bot.py +16 -4
  4. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze.egg-info/PKG-INFO +1 -1
  5. {pycoze-0.1.162 → pycoze-0.1.164}/setup.py +1 -1
  6. {pycoze-0.1.162 → pycoze-0.1.164}/LICENSE +0 -0
  7. {pycoze-0.1.162 → pycoze-0.1.164}/README.md +0 -0
  8. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/__init__.py +0 -0
  9. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ai/__init__.py +0 -0
  10. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ai/vram_reserve.py +0 -0
  11. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/__init__.py +0 -0
  12. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/__init__.py +0 -0
  13. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/agent.py +0 -0
  14. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/agent_types/__init__.py +0 -0
  15. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/agent_types/const.py +0 -0
  16. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/agent_types/openai_func_call_agent.py +0 -0
  17. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/assistant.py +0 -0
  18. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/bot/agent/chat.py +0 -0
  19. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/reference/__init__.py +0 -0
  20. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/reference/bot.py +0 -0
  21. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/reference/lib.py +0 -0
  22. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/reference/tool.py +0 -0
  23. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ui/__init__.py +0 -0
  24. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ui/base.py +0 -0
  25. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ui/color.py +0 -0
  26. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ui/typ.py +0 -0
  27. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/ui/ui_def.py +0 -0
  28. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/utils/__init__.py +0 -0
  29. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/utils/arg.py +0 -0
  30. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze/utils/text_or_file.py +0 -0
  31. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze.egg-info/SOURCES.txt +0 -0
  32. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze.egg-info/dependency_links.txt +0 -0
  33. {pycoze-0.1.162 → pycoze-0.1.164}/pycoze.egg-info/top_level.txt +0 -0
  34. {pycoze-0.1.162 → pycoze-0.1.164}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.162
3
+ Version: 0.1.164
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -32,7 +32,7 @@ def load_abilities(bot_setting_file: str):
32
32
  return abilities
33
33
 
34
34
 
35
- def agent_chat(bot_setting_file, history):
35
+ async def agent_chat(bot_setting_file, history, should_exit):
36
36
  role_setting = load_role_setting(bot_setting_file)
37
37
  abilities = load_abilities(bot_setting_file)
38
38
 
@@ -75,5 +75,20 @@ def agent_chat(bot_setting_file, history):
75
75
  assistant_message=prompt,
76
76
  tool_compatibility_mode=cfg["toolCompatibilityMode"],
77
77
  )
78
- result = asyncio.run(run_agent(agent, history, cfg["toolCompatibilityMode"]))
79
- output("assistant", result)
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)
@@ -5,6 +5,7 @@ import json
5
5
  import threading
6
6
  import queue
7
7
  import time
8
+ import asyncio
8
9
 
9
10
 
10
11
  class PeekableQueue(queue.Queue):
@@ -36,18 +37,23 @@ def chat(bot_setting_file: str):
36
37
  if not input_queue.empty():
37
38
  input_text = input_queue.get()
38
39
  if input_text == INTERRUPT_MESSAGE:
39
- break
40
+ continue
40
41
  try:
41
42
  message = json.loads(input_text[len(INPUT_MESSAGE):])
42
43
  history.append(HumanMessage(message["content"]))
43
44
  clear_chat_data()
44
- agent_chat_thread = threading.Thread(target=agent_chat, args=(bot_setting_file, history))
45
+
46
+ # 为每个线程创建一个独立的退出标志
47
+ should_exit = threading.Event()
48
+ agent_chat_thread = threading.Thread(target=asyncio.run, args=(agent_chat(bot_setting_file, history, should_exit),))
45
49
  agent_chat_thread.start()
50
+
46
51
  next_input_text = ""
47
52
  while agent_chat_thread.is_alive():
48
53
  if not input_queue.empty():
49
54
  next_input_text = input_queue.peek()
50
55
  if next_input_text == INTERRUPT_MESSAGE:
56
+ should_exit.set() # 设置退出标志
51
57
  history.append(AIMessage(content=CHAT_DATA["info"]))
52
58
  break
53
59
  time.sleep(0.1) # 每隔 0.1 秒检查一次
@@ -67,5 +73,11 @@ def chat(bot_setting_file: str):
67
73
  def get_chat_response(bot_setting_file: str, input_text: str):
68
74
  history = [HumanMessage(input_text)]
69
75
  clear_chat_data()
70
- agent_chat(bot_setting_file, history)
71
- return CHAT_DATA["output"]
76
+
77
+ # 为每个线程创建一个独立的退出标志
78
+ should_exit = threading.Event()
79
+
80
+ # 使用 asyncio.run 来运行异步函数,并等待其完成
81
+ asyncio.run(agent_chat(bot_setting_file, history, should_exit))
82
+
83
+ return CHAT_DATA["output"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.162
3
+ Version: 0.1.164
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.162",
5
+ version="0.1.164",
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