pycoze 0.1.361__py3-none-any.whl → 0.1.363__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/chat.py CHANGED
@@ -6,6 +6,14 @@ import os
6
6
  import asyncio
7
7
  from pycoze import utils
8
8
  import tempfile
9
+ import re
10
+
11
+ def eclipse_tool_result(text):
12
+ # 使用正则表达式匹配 [Tool Result Begin] 和 [Tool Result End] 之间的内容
13
+ pattern = r'\[Tool Result Begin\].*?\[Tool Result End\]'
14
+ # 将匹配到的内容替换为 [Tool Result Begin]...[Tool Result End]
15
+ replaced_text = re.sub(pattern, '[Tool Result Begin]...[Tool Result End]', text, flags=re.DOTALL)
16
+ return replaced_text
9
17
 
10
18
 
11
19
  async def check_interrupt_file(interval, interrupt_file, chat_task):
@@ -66,6 +74,8 @@ def chat(bot_setting_file: str):
66
74
  with open(bot_setting_file, encoding="utf-8") as f:
67
75
  bot_setting = json.load(f)
68
76
  abilities = get_abilities(bot_setting)
77
+ remember_tool_results = bot_setting["remember_tool_results"]
78
+
69
79
  cwd = tempfile.mkdtemp()
70
80
  system_prompt, has_any_tool = get_system_prompt(abilities, bot_setting)
71
81
  conversation_history = [
@@ -105,8 +115,9 @@ def chat(bot_setting_file: str):
105
115
  bot_setting,
106
116
  )
107
117
  )
108
- print("has_output")
109
118
  output("assistant", CHAT_DATA["info"])
119
+ if not remember_tool_results:
120
+ conversation_history = [{"role": msg["role"], "content": eclipse_tool_result(msg["content"])} for msg in conversation_history]
110
121
 
111
122
 
112
123
  def get_chat_response(bot_setting_file: str, user_input: str):
pycoze/bot/chat_base.py CHANGED
@@ -159,6 +159,7 @@ async def handle_user_inputs(
159
159
  ):
160
160
  no_exit_if_incomplete = bot_setting["systemAbility"]["no_exit_if_incomplete"]
161
161
  programmer_mode = bot_setting["systemAbility"]["programmer_mode"]
162
+ show_tool_results = bot_setting["show_tool_results"]
162
163
 
163
164
  start_new_stream = {
164
165
  "value": False
@@ -233,13 +234,13 @@ async def handle_user_inputs(
233
234
  assistant_content = (
234
235
  "Executing tool: "
235
236
  + dumps_markdown_json(tool_request)
236
- + "\n\nResult: "
237
+ + "\n\n[Tool Result Begin]\n"
237
238
  + result
239
+ + "\n[Tool Result End]\n"
238
240
  )
239
- if is_json_dumps:
240
- info("assistant", "\n```json\n" + result + "\n```\n\n")
241
- else:
242
- info("assistant", "\n```text\n" + result + "\n```\n\n")
241
+ lang = "json" if is_json_dumps else "text"
242
+ if show_tool_results:
243
+ info("assistant", f"\n```{lang}\n" + result + "\n```\n\n")
243
244
  conversation_history.append(
244
245
  {"role": "assistant", "content": assistant_content}
245
246
  )
@@ -1,18 +1,22 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pycoze
3
- Version: 0.1.361
3
+ Version: 0.1.363
4
4
  Summary: Package for pycoze only!
5
- Home-page: UNKNOWN
6
5
  Author: Yuan Jie Xiong
7
6
  Author-email: aiqqqqqqq@qq.com
8
- License: UNKNOWN
9
- Platform: UNKNOWN
10
7
  Classifier: Programming Language :: Python :: 3
11
8
  Classifier: License :: OSI Approved :: MIT License
12
9
  Classifier: Operating System :: OS Independent
13
10
  Requires-Python: >=3.6
14
11
  Description-Content-Type: text/markdown
15
12
  License-File: LICENSE
13
+ Dynamic: author
14
+ Dynamic: author-email
15
+ Dynamic: classifier
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: requires-python
19
+ Dynamic: summary
16
20
 
17
21
  # PYCOZE
18
22
 
@@ -28,5 +32,3 @@ Package for pycoze only!
28
32
  <!-- python setup.py sdist bdist_wheel -->
29
33
  <!-- twine upload dist/* -->
30
34
  <!-- 修改src\renderer\layout\init\const.ts中的库版本要求 -->
31
-
32
-
@@ -12,8 +12,8 @@ pycoze/api/lib/view.py,sha256=_PIpTfeuTPPlMDKshMGsqFQYMq7ZiO4Hg5XwHwDoU60,7357
12
12
  pycoze/api/lib/web.py,sha256=GWgtiTJOolKOX2drXcwuyqTcbo5FQVxa1NuBGcNyjyc,223
13
13
  pycoze/api/lib/window.py,sha256=bTkQCzQZ7i3pYXB70bUSTBNJ9C4TW_X3yMae1VkquGk,1944
14
14
  pycoze/bot/__init__.py,sha256=rL3Q-ycczRpSFfKn84fg3QBl5k22WpyeIU5qOEjEby8,79
15
- pycoze/bot/chat.py,sha256=DB0fUb4B0EVRWWEavCzIa-cSXOpiZrxIusJnQYGPKG8,3765
16
- pycoze/bot/chat_base.py,sha256=ll9ulBPfKtsrJYLqBsrgaFKU7WjIPRDa-LjwCS6xM_M,9666
15
+ pycoze/bot/chat.py,sha256=LgOReTY3wu02Mw2LmLjDalAs10way8wMRVJPIn1MYc8,4379
16
+ pycoze/bot/chat_base.py,sha256=myh9QrGJIkbFwfV1mLxQ0a-q8uwg3UmpdiT8XXsMIJ0,9750
17
17
  pycoze/bot/lib.py,sha256=smigeWuhl8esHE-Y5l_9bpjJkEJ5OqrxTyPcO8JIubM,7224
18
18
  pycoze/bot/message.py,sha256=udnIi-h4QgGzkbr_5VcAsVGjoLp9wXJSfBCeuOz7_Bk,802
19
19
  pycoze/bot/prompt.md,sha256=OBxwUY6yiwEmusnUHhwixWYByrWX3BpwfxG_Gfas8UM,15783
@@ -33,8 +33,8 @@ pycoze/utils/arg.py,sha256=jop1tBfe5hYkHW1NSpCeaZBEznkgguBscj_7M2dWfrs,503
33
33
  pycoze/utils/env.py,sha256=5pWlXfM1F5ZU9hhv1rHlDEanjEW5wf0nbyez9bNRqqA,559
34
34
  pycoze/utils/socket.py,sha256=bZbFFRH4mfThzRqt55BAAGQ6eICx_ja4x8UGGrUdAm8,2428
35
35
  pycoze/utils/text_or_file.py,sha256=gpxZVWt2DW6YiEg_MnMuwg36VNf3TX383QD_1oZNB0Y,551
36
- pycoze-0.1.361.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
37
- pycoze-0.1.361.dist-info/METADATA,sha256=pAs0FPvxLnN8_Gtmn1C5KlbAi9_sJuem8MgUxCJJdbc,755
38
- pycoze-0.1.361.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
39
- pycoze-0.1.361.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
40
- pycoze-0.1.361.dist-info/RECORD,,
36
+ pycoze-0.1.363.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
37
+ pycoze-0.1.363.dist-info/METADATA,sha256=QUbJJ-jRHz2rAnxCXrN7mnEGfqRyL6lRQSkseP8grKQ,854
38
+ pycoze-0.1.363.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
39
+ pycoze-0.1.363.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
40
+ pycoze-0.1.363.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.37.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5