pycoze 0.1.404__py3-none-any.whl → 0.1.406__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
@@ -86,6 +86,8 @@ def dumps_markdown_json(data):
86
86
 
87
87
 
88
88
 
89
+ import re
90
+
89
91
  import re
90
92
 
91
93
  async def stream_openai_response(conversation_history, start_new_stream):
@@ -128,6 +130,7 @@ async def stream_openai_response(conversation_history, start_new_stream):
128
130
  if json_start_match:
129
131
  # 提取 JSON 代码块之前的文本
130
132
  text_content += buffer[:json_start_match.start()]
133
+ # 如果 text_content 不为空,先 yield 文本
131
134
  if text_content.strip():
132
135
  yield ("text", text_content.strip())
133
136
  text_content = ""
@@ -135,7 +138,7 @@ async def stream_openai_response(conversation_history, start_new_stream):
135
138
  in_json_block = True
136
139
  buffer = buffer[json_start_match.end():]
137
140
  else:
138
- # 如果没有找到 JSON 代码块,直接处理为普通文本
141
+ # 如果没有找到 JSON 代码块,继续累积到 text_content
139
142
  text_content += buffer
140
143
  buffer = ""
141
144
  else:
@@ -144,6 +147,7 @@ async def stream_openai_response(conversation_history, start_new_stream):
144
147
  if json_end_match:
145
148
  # 提取 JSON 代码块内容
146
149
  json_block_content += buffer[:json_end_match.start()]
150
+ # yield JSON 代码块
147
151
  yield ("json", json_block_content.strip())
148
152
  json_block_content = ""
149
153
  in_json_block = False
@@ -152,7 +156,6 @@ async def stream_openai_response(conversation_history, start_new_stream):
152
156
  # 如果没有找到结束标记,继续累积 JSON 内容
153
157
  json_block_content += buffer
154
158
  buffer = ""
155
- print(".")
156
159
 
157
160
  # 如果流正常结束,退出 while 循环
158
161
  break
@@ -167,11 +170,18 @@ async def stream_openai_response(conversation_history, start_new_stream):
167
170
  if in_json_block:
168
171
  buffer = buffer.split("```")[0]
169
172
  json_block_content += buffer
170
- yield ("json", json_block_content.strip())
171
173
  else:
172
174
  text_content += buffer
173
- if text_content:
174
- yield ("text", text_content.strip())
175
+
176
+ # 处理流结束后的剩余内容
177
+ if in_json_block:
178
+ # 如果仍在 JSON 代码块模式,处理剩余的 JSON 内容
179
+ if json_block_content.strip():
180
+ yield ("json", json_block_content.strip())
181
+ else:
182
+ # 如果不在 JSON 代码块模式,处理剩余的文本内容
183
+ if text_content.strip():
184
+ yield ("text", text_content.strip())
175
185
 
176
186
 
177
187
  async def handle_user_inputs(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pycoze
3
- Version: 0.1.404
3
+ Version: 0.1.406
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -11,7 +11,7 @@ pycoze/api/lib/web.py,sha256=GWgtiTJOolKOX2drXcwuyqTcbo5FQVxa1NuBGcNyjyc,223
11
11
  pycoze/api/lib/window.py,sha256=dkzWfLwn5pE_L0DfQ38K8nx9tQyT5KO-GYyXi0rytFc,2073
12
12
  pycoze/bot/__init__.py,sha256=rL3Q-ycczRpSFfKn84fg3QBl5k22WpyeIU5qOEjEby8,79
13
13
  pycoze/bot/chat.py,sha256=qEuMxH0cVFU9QSU36FrOsjhRAxtsvOv7CQtuXvM3F6Y,6446
14
- pycoze/bot/chat_base.py,sha256=cqy36OdyZC0XmUwxEgRuU8IyL4-UUIgZSDn6RPOAJVM,11240
14
+ pycoze/bot/chat_base.py,sha256=L98zX_OdhS3WBLgw64XzRFsQdgw6POc9TqldbZbiB9c,11611
15
15
  pycoze/bot/lib.py,sha256=_bQ52mKsWgFGAogFHnmRBJbvK_tPOwsAJ8NqJNMR5K4,7210
16
16
  pycoze/bot/message.py,sha256=udnIi-h4QgGzkbr_5VcAsVGjoLp9wXJSfBCeuOz7_Bk,802
17
17
  pycoze/bot/prompt.md,sha256=t7NQdiiNe-jCDVfeVbvTPfq5WK5nF8CxFUQUFMyXJlo,13880
@@ -31,8 +31,8 @@ pycoze/utils/arg.py,sha256=jop1tBfe5hYkHW1NSpCeaZBEznkgguBscj_7M2dWfrs,503
31
31
  pycoze/utils/env.py,sha256=5pWlXfM1F5ZU9hhv1rHlDEanjEW5wf0nbyez9bNRqqA,559
32
32
  pycoze/utils/socket.py,sha256=bZbFFRH4mfThzRqt55BAAGQ6eICx_ja4x8UGGrUdAm8,2428
33
33
  pycoze/utils/text_or_file.py,sha256=gpxZVWt2DW6YiEg_MnMuwg36VNf3TX383QD_1oZNB0Y,551
34
- pycoze-0.1.404.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
35
- pycoze-0.1.404.dist-info/METADATA,sha256=iaKPJtSWZKAZkFsWdGzAxa_sGHN0qNP8BJcSskdialo,854
36
- pycoze-0.1.404.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
37
- pycoze-0.1.404.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
38
- pycoze-0.1.404.dist-info/RECORD,,
34
+ pycoze-0.1.406.dist-info/LICENSE,sha256=QStd_Qsd0-kAam_-sOesCIp_uKrGWeoKwt9M49NVkNU,1090
35
+ pycoze-0.1.406.dist-info/METADATA,sha256=2fM6sojGeWG_En2N0r81dQy2-mpaxdMXwoLUYxtlOjY,854
36
+ pycoze-0.1.406.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
37
+ pycoze-0.1.406.dist-info/top_level.txt,sha256=76dPeDhKvOCleL3ZC5gl1-y4vdS1tT_U1hxWVAn7sFo,7
38
+ pycoze-0.1.406.dist-info/RECORD,,