pycoze 0.1.202__py3-none-any.whl → 0.1.203__py3-none-any.whl
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.
- pycoze/bot/bot.py +17 -29
- {pycoze-0.1.202.dist-info → pycoze-0.1.203.dist-info}/METADATA +1 -1
- {pycoze-0.1.202.dist-info → pycoze-0.1.203.dist-info}/RECORD +6 -6
- {pycoze-0.1.202.dist-info → pycoze-0.1.203.dist-info}/LICENSE +0 -0
- {pycoze-0.1.202.dist-info → pycoze-0.1.203.dist-info}/WHEEL +0 -0
- {pycoze-0.1.202.dist-info → pycoze-0.1.203.dist-info}/top_level.txt +0 -0
pycoze/bot/bot.py
CHANGED
@@ -6,8 +6,6 @@ import threading
|
|
6
6
|
import queue
|
7
7
|
import time
|
8
8
|
import asyncio
|
9
|
-
import multiprocessing
|
10
|
-
from multiprocessing import Queue, Event
|
11
9
|
|
12
10
|
|
13
11
|
class PeekableQueue(queue.Queue):
|
@@ -16,16 +14,6 @@ class PeekableQueue(queue.Queue):
|
|
16
14
|
return self._get()
|
17
15
|
except queue.Empty:
|
18
16
|
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():
|
23
|
-
next_input_text = input_queue.get_nowait()
|
24
|
-
if next_input_text == INTERRUPT_MESSAGE:
|
25
|
-
history.append(AIMessage(content=CHAT_DATA["info"]))
|
26
|
-
should_exit.set() # 设置退出标志
|
27
|
-
break
|
28
|
-
await asyncio.sleep(0.1) # 非阻塞地等待一段时间
|
29
17
|
|
30
18
|
def chat(bot_setting_file: str):
|
31
19
|
history = []
|
@@ -38,6 +26,7 @@ def chat(bot_setting_file: str):
|
|
38
26
|
input_queue.put(input_text)
|
39
27
|
else:
|
40
28
|
raise ValueError("Invalid message")
|
29
|
+
|
41
30
|
|
42
31
|
input_thread_instance = threading.Thread(target=input_thread, args=(input_queue,))
|
43
32
|
input_thread_instance.start()
|
@@ -53,24 +42,22 @@ def chat(bot_setting_file: str):
|
|
53
42
|
history.append(HumanMessage(message["content"]))
|
54
43
|
clear_chat_data()
|
55
44
|
|
56
|
-
#
|
57
|
-
|
58
|
-
asyncio.
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
if not should_exit.is_set():
|
45
|
+
# 为每个线程创建一个独立的退出标志
|
46
|
+
should_exit = threading.Event()
|
47
|
+
agent_chat_thread = threading.Thread(target=asyncio.run, args=(agent_chat(bot_setting_file, history, should_exit),))
|
48
|
+
agent_chat_thread.start()
|
49
|
+
|
50
|
+
next_input_text = ""
|
51
|
+
while agent_chat_thread.is_alive():
|
52
|
+
if not input_queue.empty():
|
53
|
+
next_input_text = input_queue.peek()
|
54
|
+
if next_input_text == INTERRUPT_MESSAGE:
|
55
|
+
history.append(AIMessage(content=CHAT_DATA["info"]))
|
56
|
+
should_exit.set() # 设置退出标志
|
57
|
+
break
|
58
|
+
time.sleep(0.1) # 每隔 0.1 秒检查一次
|
59
|
+
if next_input_text != INTERRUPT_MESSAGE:
|
72
60
|
history.append(AIMessage(content=CHAT_DATA["output"]))
|
73
|
-
|
74
61
|
except json.JSONDecodeError:
|
75
62
|
print("Invalid JSON format in input message.")
|
76
63
|
except KeyError:
|
@@ -81,6 +68,7 @@ def chat(bot_setting_file: str):
|
|
81
68
|
input_thread_instance.join()
|
82
69
|
|
83
70
|
|
71
|
+
|
84
72
|
def get_chat_response(bot_setting_file: str, input_text: str):
|
85
73
|
history = [HumanMessage(input_text)]
|
86
74
|
clear_chat_data()
|
@@ -6,7 +6,7 @@ pycoze/automation/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
6
6
|
pycoze/automation/browser/edge_driver_manager.py,sha256=gpgseunph5owZH6EskSYthuhey2SU3UP204gY0yIcuI,3022
|
7
7
|
pycoze/bot/__init__.py,sha256=6HHMxDQVOyZM9dtSjQm9tjGnhj4h7CixD0JOvEwTi48,41
|
8
8
|
pycoze/bot/agent_chat.py,sha256=hr0jGTd-lvLSe4vCcvaN2rKhB7BMBcVBtI1FpVa6ngs,3016
|
9
|
-
pycoze/bot/bot.py,sha256=
|
9
|
+
pycoze/bot/bot.py,sha256=CCnBmxtmpmz7aLR_MIIiOuKR9IACo5P4uSkQXb5d0KU,3061
|
10
10
|
pycoze/bot/agent/__init__.py,sha256=3wE8_FFQS8j2BY-g9Cr-onV0POEvDRZaw_NCzpqrNus,265
|
11
11
|
pycoze/bot/agent/agent.py,sha256=Ueste4xWvkQFk5Giklv4c-kcxiPL-D-KafzZ4DONosY,3613
|
12
12
|
pycoze/bot/agent/assistant.py,sha256=3iLxnRvf_ia0cP-FHK5Fv4ylltlnzPq1KscRCFYqjkc,1147
|
@@ -28,8 +28,8 @@ pycoze/utils/__init__.py,sha256=Gi5EnrWZGMD2JRejgV4c_VLCXyvA2wwBFI_niDF5MUE,110
|
|
28
28
|
pycoze/utils/arg.py,sha256=GtfGbMTMdaK75Fwh6MpUe1pCA5X6Ep4LFG7a72YrzjI,525
|
29
29
|
pycoze/utils/env.py,sha256=W04lhvTHhAAC6EldP6kk2xrctqtu8K6kl1vDLZDNeh8,561
|
30
30
|
pycoze/utils/text_or_file.py,sha256=gpxZVWt2DW6YiEg_MnMuwg36VNf3TX383QD_1oZNB0Y,551
|
31
|
-
pycoze-0.1.
|
32
|
-
pycoze-0.1.
|
33
|
-
pycoze-0.1.
|
34
|
-
pycoze-0.1.
|
35
|
-
pycoze-0.1.
|
31
|
+
pycoze-0.1.203.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
|
32
|
+
pycoze-0.1.203.dist-info/METADATA,sha256=0avX2C5q7v5RHgIqf0ZMJOEj3cA5Fl37d67c6vzmvFc,726
|
33
|
+
pycoze-0.1.203.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
|
34
|
+
pycoze-0.1.203.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
|
35
|
+
pycoze-0.1.203.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|