pycoze 0.1.380__py3-none-any.whl → 0.1.381__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_base.py CHANGED
@@ -65,18 +65,6 @@ def dumps_markdown_json(data):
65
65
  return f"\n```json\n{json_str}\n```\n"
66
66
 
67
67
 
68
- def process_code_block(language: str, content: str):
69
- """
70
- 处理并清理代码块内容,返回格式化后的字符串
71
- """
72
- if language and content:
73
- # 清理代码块内容
74
- cleaned_content = "\n".join(
75
- line.strip() for line in content.split("\n") if line.strip()
76
- )
77
- return (language, cleaned_content)
78
- return ""
79
-
80
68
 
81
69
  async def stream_openai_response(conversation_history, start_new_stream):
82
70
  """
@@ -84,9 +72,8 @@ async def stream_openai_response(conversation_history, start_new_stream):
84
72
  """
85
73
  stream = None
86
74
  buffer = ""
87
- in_code_block = False
88
- code_block_language = ""
89
- code_block_content = ""
75
+ in_json_block = False
76
+ json_block_content = ""
90
77
  text_content = ""
91
78
 
92
79
  while True:
@@ -97,9 +84,8 @@ async def stream_openai_response(conversation_history, start_new_stream):
97
84
  stream = chat_stream_async(conversation_history) # 获取新的异步生成器
98
85
  start_new_stream["value"] = False # 重置标志
99
86
  buffer = ""
100
- in_code_block = False
101
- code_block_language = ""
102
- code_block_content = ""
87
+ in_json_block = False
88
+ json_block_content = ""
103
89
  text_content = ""
104
90
 
105
91
  # 使用 async for 迭代异步生成器
@@ -115,24 +101,21 @@ async def stream_openai_response(conversation_history, start_new_stream):
115
101
  # 处理 buffer 中的每一行
116
102
  while "\n" in buffer:
117
103
  line, buffer = buffer.split("\n", 1)
118
- if not in_code_block:
119
- if line.strip().startswith("```"):
104
+ if not in_json_block:
105
+ if line.strip().lower().startswith("```json"):
120
106
  if text_content:
121
107
  yield ("text", text_content.strip())
122
108
  text_content = ""
123
- in_code_block = True
124
- code_block_language = line.strip()[3:].strip()
109
+ in_json_block = True
125
110
  else:
126
111
  text_content += line + "\n"
127
112
  else:
128
- if line.strip().startswith("```"):
129
- in_code_block = False
130
- yield process_code_block(
131
- code_block_language, code_block_content
132
- )
133
- code_block_content = ""
113
+ if line.strip().lower().startswith("```") and in_json_block:
114
+ yield ("json", json_block_content.strip())
115
+ json_block_content = ""
116
+ in_json_block = False
134
117
  else:
135
- code_block_content += line + "\n"
118
+ json_block_content += line + "\n"
136
119
 
137
120
  # 如果流正常结束,退出 while 循环
138
121
  break
@@ -144,10 +127,10 @@ async def stream_openai_response(conversation_history, start_new_stream):
144
127
 
145
128
  # 处理 buffer 中剩余的内容
146
129
  if buffer:
147
- if in_code_block:
130
+ if in_json_block:
148
131
  buffer = buffer.split("```")[0]
149
- code_block_content += buffer + "\n"
150
- yield process_code_block(code_block_language, code_block_content)
132
+ json_block_content += buffer
133
+ yield ("json", json_block_content.strip())
151
134
  else:
152
135
  text_content += buffer
153
136
  if text_content:
@@ -189,7 +172,7 @@ async def handle_user_inputs(
189
172
  ):
190
173
  if len(response) == 2:
191
174
  if (
192
- response[0] != "json"
175
+ response[0] == "text"
193
176
  and response[1].strip() != ""
194
177
  or (response[0] == "json" and not has_any_tool)
195
178
  ):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pycoze
3
- Version: 0.1.380
3
+ Version: 0.1.381
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -13,7 +13,7 @@ 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
15
  pycoze/bot/chat.py,sha256=cxaF20QCAoca54lo472o1K9VRXu5f3uU-bH7VdSumnU,5635
16
- pycoze/bot/chat_base.py,sha256=klJdK5W8pIeBB2zuIRXCgonKVKzExGfCP2IiSJsN4Bo,10231
16
+ pycoze/bot/chat_base.py,sha256=brVixiMf09PiDCm8h4-LDqqeyJbhj4GIMq0qR257UKw,9637
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.380.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
37
- pycoze-0.1.380.dist-info/METADATA,sha256=hHflUHg1pkvCCyNUwikenE0w9SnOHrauos6yFT4osGE,854
38
- pycoze-0.1.380.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
39
- pycoze-0.1.380.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
40
- pycoze-0.1.380.dist-info/RECORD,,
36
+ pycoze-0.1.381.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
37
+ pycoze-0.1.381.dist-info/METADATA,sha256=GWeG4zPBjwrWDmY_vxjJgYPjLXq0dbAxJneDLaGOqZ4,854
38
+ pycoze-0.1.381.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
39
+ pycoze-0.1.381.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
40
+ pycoze-0.1.381.dist-info/RECORD,,