Update app.py
Browse files
app.py
CHANGED
@@ -403,13 +403,15 @@ def handsome_chat_completions():
|
|
403 |
content_accumulated = ""
|
404 |
first_reasoning_chunk = True
|
405 |
|
406 |
-
for chunk in response.iter_content(chunk_size=
|
407 |
if chunk:
|
408 |
if first_chunk_time is None:
|
409 |
first_chunk_time = time.time()
|
410 |
full_response_content += chunk.decode("utf-8")
|
411 |
|
412 |
for line in chunk.decode("utf-8").splitlines():
|
|
|
|
|
413 |
if line.startswith("data:"):
|
414 |
try:
|
415 |
chunk_json = json.loads(line.lstrip("data: ").strip())
|
@@ -418,14 +420,17 @@ def handsome_chat_completions():
|
|
418 |
|
419 |
if delta.get("reasoning_content") is not None:
|
420 |
reasoning_chunk = delta["reasoning_content"]
|
|
|
421 |
if first_reasoning_chunk:
|
422 |
-
reasoning_chunk = "
|
423 |
first_reasoning_chunk = False
|
424 |
yield f"data: {json.dumps({'choices': [{'delta': {'content': reasoning_chunk}, 'index': 0}]})}\n\n"
|
425 |
|
426 |
if delta.get("content") is not None:
|
427 |
if not first_reasoning_chunk:
|
428 |
-
yield f"data: {json.dumps({'choices': [{'delta': {'content': '\n```\n'}, 'index': 0}]})}\n\n"
|
|
|
|
|
429 |
first_reasoning_chunk = True
|
430 |
yield f"data: {json.dumps({'choices': [{'delta': {'content': delta["content"]}, 'index': 0}]})}\n\n"
|
431 |
|
@@ -433,7 +438,6 @@ def handsome_chat_completions():
|
|
433 |
logging.error(f"解析流式响应单行 JSON 失败: {e}, 行内容: {line}")
|
434 |
continue
|
435 |
|
436 |
-
|
437 |
end_time = time.time()
|
438 |
first_token_time = (
|
439 |
first_chunk_time - start_time
|
|
|
403 |
content_accumulated = ""
|
404 |
first_reasoning_chunk = True
|
405 |
|
406 |
+
for chunk in response.iter_content(chunk_size=100000):
|
407 |
if chunk:
|
408 |
if first_chunk_time is None:
|
409 |
first_chunk_time = time.time()
|
410 |
full_response_content += chunk.decode("utf-8")
|
411 |
|
412 |
for line in chunk.decode("utf-8").splitlines():
|
413 |
+
# print(line)
|
414 |
+
|
415 |
if line.startswith("data:"):
|
416 |
try:
|
417 |
chunk_json = json.loads(line.lstrip("data: ").strip())
|
|
|
420 |
|
421 |
if delta.get("reasoning_content") is not None:
|
422 |
reasoning_chunk = delta["reasoning_content"]
|
423 |
+
reasoning_chunk = reasoning_chunk.replace('\n', '\n> ')
|
424 |
if first_reasoning_chunk:
|
425 |
+
reasoning_chunk = "> " + reasoning_chunk
|
426 |
first_reasoning_chunk = False
|
427 |
yield f"data: {json.dumps({'choices': [{'delta': {'content': reasoning_chunk}, 'index': 0}]})}\n\n"
|
428 |
|
429 |
if delta.get("content") is not None:
|
430 |
if not first_reasoning_chunk:
|
431 |
+
# yield f"data: {json.dumps({'choices': [{'delta': {'content': '\n```\n'}, 'index': 0}]})}\n\n"
|
432 |
+
# yield f"data: {json.dumps({'choices': [{'delta': {'content': '\n\n---\n\n### 结果输出\n'}, 'index': 0}]})}\n\n"
|
433 |
+
yield f"data: {json.dumps({'choices': [{'delta': {'content': '\n'}, 'index': 0}]})}\n\n"
|
434 |
first_reasoning_chunk = True
|
435 |
yield f"data: {json.dumps({'choices': [{'delta': {'content': delta["content"]}, 'index': 0}]})}\n\n"
|
436 |
|
|
|
438 |
logging.error(f"解析流式响应单行 JSON 失败: {e}, 行内容: {line}")
|
439 |
continue
|
440 |
|
|
|
441 |
end_time = time.time()
|
442 |
first_token_time = (
|
443 |
first_chunk_time - start_time
|