pycoze 0.1.162__py3-none-any.whl → 0.1.163__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/agent_chat.py +18 -3
- pycoze/bot/bot.py +15 -4
- {pycoze-0.1.162.dist-info → pycoze-0.1.163.dist-info}/METADATA +1 -1
- {pycoze-0.1.162.dist-info → pycoze-0.1.163.dist-info}/RECORD +7 -7
- {pycoze-0.1.162.dist-info → pycoze-0.1.163.dist-info}/LICENSE +0 -0
- {pycoze-0.1.162.dist-info → pycoze-0.1.163.dist-info}/WHEEL +0 -0
- {pycoze-0.1.162.dist-info → pycoze-0.1.163.dist-info}/top_level.txt +0 -0
pycoze/bot/agent_chat.py
CHANGED
@@ -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
|
-
|
79
|
-
|
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)
|
pycoze/bot/bot.py
CHANGED
@@ -36,18 +36,23 @@ def chat(bot_setting_file: str):
|
|
36
36
|
if not input_queue.empty():
|
37
37
|
input_text = input_queue.get()
|
38
38
|
if input_text == INTERRUPT_MESSAGE:
|
39
|
-
|
39
|
+
continue
|
40
40
|
try:
|
41
41
|
message = json.loads(input_text[len(INPUT_MESSAGE):])
|
42
42
|
history.append(HumanMessage(message["content"]))
|
43
43
|
clear_chat_data()
|
44
|
-
|
44
|
+
|
45
|
+
# 为每个线程创建一个独立的退出标志
|
46
|
+
should_exit = threading.Event()
|
47
|
+
agent_chat_thread = threading.Thread(target=asyncio.run, args=(agent_chat(bot_setting_file, history, should_exit),))
|
45
48
|
agent_chat_thread.start()
|
49
|
+
|
46
50
|
next_input_text = ""
|
47
51
|
while agent_chat_thread.is_alive():
|
48
52
|
if not input_queue.empty():
|
49
53
|
next_input_text = input_queue.peek()
|
50
54
|
if next_input_text == INTERRUPT_MESSAGE:
|
55
|
+
should_exit.set() # 设置退出标志
|
51
56
|
history.append(AIMessage(content=CHAT_DATA["info"]))
|
52
57
|
break
|
53
58
|
time.sleep(0.1) # 每隔 0.1 秒检查一次
|
@@ -67,5 +72,11 @@ def chat(bot_setting_file: str):
|
|
67
72
|
def get_chat_response(bot_setting_file: str, input_text: str):
|
68
73
|
history = [HumanMessage(input_text)]
|
69
74
|
clear_chat_data()
|
70
|
-
|
71
|
-
|
75
|
+
|
76
|
+
# 为每个线程创建一个独立的退出标志
|
77
|
+
should_exit = threading.Event()
|
78
|
+
|
79
|
+
# 使用 asyncio.run 来运行异步函数,并等待其完成
|
80
|
+
asyncio.run(agent_chat(bot_setting_file, history, should_exit))
|
81
|
+
|
82
|
+
return CHAT_DATA["output"]
|
@@ -2,8 +2,8 @@ pycoze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
pycoze/ai/__init__.py,sha256=odM2lgYSnApxw4AzLV_5AyaxL5_MLfydOSB1VmLGFyA,75
|
3
3
|
pycoze/ai/vram_reserve.py,sha256=QbqaA8qv87cnEpOVDMygi0BNMxuhLYwj1UKfR_D5BD4,4340
|
4
4
|
pycoze/bot/__init__.py,sha256=6HHMxDQVOyZM9dtSjQm9tjGnhj4h7CixD0JOvEwTi48,41
|
5
|
-
pycoze/bot/agent_chat.py,sha256=
|
6
|
-
pycoze/bot/bot.py,sha256=
|
5
|
+
pycoze/bot/agent_chat.py,sha256=ZNSbXOmsAgd77DcDmhylMAbEFxZCM09kE8kPJ1uuvcY,3282
|
6
|
+
pycoze/bot/bot.py,sha256=bKJgA3LyulMAJY7V34jlTbzfXRNuYcEc3E4hFXr2aME,3221
|
7
7
|
pycoze/bot/agent/__init__.py,sha256=3wE8_FFQS8j2BY-g9Cr-onV0POEvDRZaw_NCzpqrNus,265
|
8
8
|
pycoze/bot/agent/agent.py,sha256=Aue8nWeW_I7e1jo4o7cUjFFjrsV9NtVUiTX3EQYHmbA,3507
|
9
9
|
pycoze/bot/agent/assistant.py,sha256=3iLxnRvf_ia0cP-FHK5Fv4ylltlnzPq1KscRCFYqjkc,1147
|
@@ -23,8 +23,8 @@ pycoze/ui/ui_def.py,sha256=UhhU_yB3GV9ISbvTWT48hsHPHI250BhMILh6bu5Uioo,4206
|
|
23
23
|
pycoze/utils/__init__.py,sha256=ET0W5wzq4zlY3dr1wHVbbeRKlKdC_zqHt9b0jZyHohw,94
|
24
24
|
pycoze/utils/arg.py,sha256=orLVEGw3x2f3l7bZDbBPkkdDPSdqXo-_Rs-4ZhzmrEw,984
|
25
25
|
pycoze/utils/text_or_file.py,sha256=gpxZVWt2DW6YiEg_MnMuwg36VNf3TX383QD_1oZNB0Y,551
|
26
|
-
pycoze-0.1.
|
27
|
-
pycoze-0.1.
|
28
|
-
pycoze-0.1.
|
29
|
-
pycoze-0.1.
|
30
|
-
pycoze-0.1.
|
26
|
+
pycoze-0.1.163.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
|
27
|
+
pycoze-0.1.163.dist-info/METADATA,sha256=4cOMkFtdFTivaZgSqRzEJk7jIWhhiZo40bIFn75C-wY,726
|
28
|
+
pycoze-0.1.163.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
|
29
|
+
pycoze-0.1.163.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
|
30
|
+
pycoze-0.1.163.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|