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 +15 -5
- {pycoze-0.1.404.dist-info → pycoze-0.1.406.dist-info}/METADATA +1 -1
- {pycoze-0.1.404.dist-info → pycoze-0.1.406.dist-info}/RECORD +6 -6
- {pycoze-0.1.404.dist-info → pycoze-0.1.406.dist-info}/LICENSE +0 -0
- {pycoze-0.1.404.dist-info → pycoze-0.1.406.dist-info}/WHEEL +0 -0
- {pycoze-0.1.404.dist-info → pycoze-0.1.406.dist-info}/top_level.txt +0 -0
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
|
-
|
174
|
-
|
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(
|
@@ -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=
|
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.
|
35
|
-
pycoze-0.1.
|
36
|
-
pycoze-0.1.
|
37
|
-
pycoze-0.1.
|
38
|
-
pycoze-0.1.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|