pycoze 0.1.201__tar.gz → 0.1.202__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. {pycoze-0.1.201 → pycoze-0.1.202}/PKG-INFO +1 -1
  2. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/bot.py +24 -42
  3. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze.egg-info/PKG-INFO +1 -1
  4. {pycoze-0.1.201 → pycoze-0.1.202}/setup.py +1 -1
  5. {pycoze-0.1.201 → pycoze-0.1.202}/LICENSE +0 -0
  6. {pycoze-0.1.201 → pycoze-0.1.202}/README.md +0 -0
  7. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/__init__.py +0 -0
  8. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ai/__init__.py +0 -0
  9. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ai/vram_reserve.py +0 -0
  10. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/automation/__init__.py +0 -0
  11. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/automation/browser/__init__.py +0 -0
  12. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/automation/browser/edge_driver_manager.py +0 -0
  13. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/__init__.py +0 -0
  14. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/__init__.py +0 -0
  15. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/agent.py +0 -0
  16. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/agent_types/__init__.py +0 -0
  17. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/agent_types/const.py +0 -0
  18. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/agent_types/openai_func_call_agent.py +0 -0
  19. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/assistant.py +0 -0
  20. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent/chat.py +0 -0
  21. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/bot/agent_chat.py +0 -0
  22. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/reference/__init__.py +0 -0
  23. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/reference/bot.py +0 -0
  24. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/reference/lib.py +0 -0
  25. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/reference/tool.py +0 -0
  26. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/reference/workflow.py +0 -0
  27. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ui/__init__.py +0 -0
  28. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ui/base.py +0 -0
  29. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ui/color.py +0 -0
  30. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ui/typ.py +0 -0
  31. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/ui/ui_def.py +0 -0
  32. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/utils/__init__.py +0 -0
  33. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/utils/arg.py +0 -0
  34. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/utils/env.py +0 -0
  35. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze/utils/text_or_file.py +0 -0
  36. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze.egg-info/SOURCES.txt +0 -0
  37. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze.egg-info/dependency_links.txt +0 -0
  38. {pycoze-0.1.201 → pycoze-0.1.202}/pycoze.egg-info/top_level.txt +0 -0
  39. {pycoze-0.1.201 → pycoze-0.1.202}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.201
3
+ Version: 0.1.202
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -9,59 +9,40 @@ import asyncio
9
9
  import multiprocessing
10
10
  from multiprocessing import Queue, Event
11
11
 
12
- # 假设 PeekableQueue 类已经定义好了,如果没有,请自行实现或使用其他方式
13
- class PeekableQueue:
14
- def __init__(self, maxsize=0):
15
- self.queue = Queue(maxsize=maxsize)
16
-
17
- def put(self, item):
18
- self.queue.put(item)
19
-
20
- def get(self):
21
- return self.queue.get()
22
-
23
- def peek(self):
24
- with self.queue.mutex:
25
- if self.queue.empty():
26
- return None
27
- return self.queue.queue[0]
28
-
29
- def empty(self):
30
- return self.queue.empty()
31
-
32
- def input_process(input_queue: Queue, interrupt_event: Event):
33
- while not interrupt_event.is_set():
34
- input_text = input()
35
- if input_text == INTERRUPT_MESSAGE or input_text.startswith(INPUT_MESSAGE):
36
- input_queue.put(input_text)
37
- else:
38
- raise ValueError("Invalid message")
39
12
 
40
- async def handle_input_queue(input_queue: Queue, should_exit: asyncio.Event, history):
41
- while not should_exit.is_set():
13
+ class PeekableQueue(queue.Queue):
14
+ def peek(self):
42
15
  try:
16
+ return self._get()
17
+ except queue.Empty:
18
+ return None
19
+
20
+ async def handle_input_queue(input_queue, should_exit, history):
21
+ while not should_exit.is_set():
22
+ if not input_queue.empty():
43
23
  next_input_text = input_queue.get_nowait()
44
24
  if next_input_text == INTERRUPT_MESSAGE:
45
25
  history.append(AIMessage(content=CHAT_DATA["info"]))
46
26
  should_exit.set() # 设置退出标志
47
27
  break
48
- except queue.Empty:
49
- pass
50
28
  await asyncio.sleep(0.1) # 非阻塞地等待一段时间
51
29
 
52
30
  def chat(bot_setting_file: str):
53
31
  history = []
54
32
  input_queue = PeekableQueue()
55
- interrupt_event = Event() # 用于中断输入进程的事件
56
33
 
57
- # 创建并启动输入进程
58
- input_process_instance = multiprocessing.Process(target=input_process, args=(input_queue, interrupt_event))
59
- input_process_instance.start()
34
+ def input_thread(input_queue: PeekableQueue):
35
+ while True:
36
+ input_text = input()
37
+ if input_text == INTERRUPT_MESSAGE or input_text.startswith(INPUT_MESSAGE):
38
+ input_queue.put(input_text)
39
+ else:
40
+ raise ValueError("Invalid message")
60
41
 
61
- try:
62
- loop = asyncio.new_event_loop()
63
- asyncio.set_event_loop(loop)
42
+ input_thread_instance = threading.Thread(target=input_thread, args=(input_queue,))
43
+ input_thread_instance.start()
64
44
 
45
+ try:
65
46
  while True:
66
47
  if not input_queue.empty():
67
48
  input_text = input_queue.get()
@@ -71,6 +52,10 @@ def chat(bot_setting_file: str):
71
52
  message = json.loads(input_text[len(INPUT_MESSAGE):])
72
53
  history.append(HumanMessage(message["content"]))
73
54
  clear_chat_data()
55
+
56
+ # 创建一个异步事件循环
57
+ loop = asyncio.new_event_loop()
58
+ asyncio.set_event_loop(loop)
74
59
 
75
60
  # 创建一个 Event 对象用于中断
76
61
  should_exit = asyncio.Event()
@@ -93,10 +78,7 @@ def chat(bot_setting_file: str):
93
78
  except Exception as e:
94
79
  print(f"An error occurred: {e}")
95
80
  finally:
96
- # 设置中断事件以停止输入进程
97
- interrupt_event.set()
98
- input_process_instance.join()
99
-
81
+ input_thread_instance.join()
100
82
 
101
83
 
102
84
  def get_chat_response(bot_setting_file: str, input_text: str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycoze
3
- Version: 0.1.201
3
+ Version: 0.1.202
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.201",
5
+ version="0.1.202",
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
File without changes