update
Browse files
app.py
CHANGED
@@ -54,6 +54,8 @@ def respond(
|
|
54 |
with requests.post(API_URL, headers=headers, json=data, stream=True) as r:
|
55 |
if r.status_code == 200:
|
56 |
current_response = ""
|
|
|
|
|
57 |
for line in r.iter_lines():
|
58 |
if line:
|
59 |
line = line.decode('utf-8')
|
@@ -65,11 +67,30 @@ def respond(
|
|
65 |
if 'content' in delta:
|
66 |
content = delta['content']
|
67 |
if content:
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
formatted_response = current_response
|
70 |
-
if '<think>' in formatted_response and '</think>' in formatted_response:
|
71 |
-
formatted_response = formatted_response.replace('<think>', '```\n')
|
72 |
-
formatted_response = formatted_response.replace('</think>', '\n```')
|
73 |
formatted_response = formatted_response.replace('<', '<').replace('>', '>')
|
74 |
formatted_response = formatted_response.replace('*', '\\*')
|
75 |
yield formatted_response
|
|
|
54 |
with requests.post(API_URL, headers=headers, json=data, stream=True) as r:
|
55 |
if r.status_code == 200:
|
56 |
current_response = ""
|
57 |
+
buffer = "" # 用于累积可能被分割的内容
|
58 |
+
in_think_block = False
|
59 |
for line in r.iter_lines():
|
60 |
if line:
|
61 |
line = line.decode('utf-8')
|
|
|
67 |
if 'content' in delta:
|
68 |
content = delta['content']
|
69 |
if content:
|
70 |
+
buffer += content
|
71 |
+
|
72 |
+
if not in_think_block and '<think>' in buffer:
|
73 |
+
in_think_block = True
|
74 |
+
parts = buffer.split('<think>')
|
75 |
+
if len(parts) > 1:
|
76 |
+
if parts[0]:
|
77 |
+
current_response += parts[0]
|
78 |
+
current_response += '```\n'
|
79 |
+
buffer = parts[1]
|
80 |
+
|
81 |
+
if in_think_block and ('</think>' in buffer or '**Final Answer**' in buffer):
|
82 |
+
in_think_block = False
|
83 |
+
current_response += buffer.split('</think>')[0] + '\n```'
|
84 |
+
if '</think>' in buffer:
|
85 |
+
buffer = buffer.split('</think>')[1]
|
86 |
+
else:
|
87 |
+
buffer = buffer.split('**Final Answer**')[1]
|
88 |
+
|
89 |
+
if not in_think_block and buffer:
|
90 |
+
current_response += buffer
|
91 |
+
buffer = ""
|
92 |
+
|
93 |
formatted_response = current_response
|
|
|
|
|
|
|
94 |
formatted_response = formatted_response.replace('<', '<').replace('>', '>')
|
95 |
formatted_response = formatted_response.replace('*', '\\*')
|
96 |
yield formatted_response
|