feat: has_emit_chunk优化
This commit is contained in:
@@ -86,8 +86,14 @@ def add_langgraph_chat_route(app: FastAPI):
|
|||||||
async def generator_function():
|
async def generator_function():
|
||||||
|
|
||||||
graph = await ChatAgent.get_agent()
|
graph = await ChatAgent.get_agent()
|
||||||
|
|
||||||
# chat_state = await ChatAgent.get_chat_state(thread_id)
|
# chat_state = await ChatAgent.get_chat_state(thread_id)
|
||||||
# chat_history_list = chat_state.get('messages')
|
# chat_history_list = chat_state.get('messages')
|
||||||
|
|
||||||
|
# has_emit_chunk 用来优化流式传输,避免将content为空的为AIMessageChunk发送给前端(实际上此时正在输出思考内容)
|
||||||
|
# 第一次的时候输出,后续再输出content为空的AIMessageChunk不发送给前端
|
||||||
|
has_emit_chunk = False
|
||||||
|
|
||||||
async for chunk in graph.astream(
|
async for chunk in graph.astream(
|
||||||
stream_input,
|
stream_input,
|
||||||
config=stream_config,
|
config=stream_config,
|
||||||
@@ -108,6 +114,7 @@ def add_langgraph_chat_route(app: FastAPI):
|
|||||||
# messages模式流式输出,此时 chunk[1][0] 为AIMessageChunk
|
# messages模式流式输出,此时 chunk[1][0] 为AIMessageChunk
|
||||||
chunk_message = chunk[1][0]
|
chunk_message = chunk[1][0]
|
||||||
if not chunk_message.content:
|
if not chunk_message.content:
|
||||||
|
if has_emit_chunk:
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
# updates模式流式输出
|
# updates模式流式输出
|
||||||
@@ -125,6 +132,7 @@ def add_langgraph_chat_route(app: FastAPI):
|
|||||||
"msg_type": chunk_message.type,
|
"msg_type": chunk_message.type,
|
||||||
"msg_content": chunk_message.content,
|
"msg_content": chunk_message.content,
|
||||||
}
|
}
|
||||||
|
has_emit_chunk = True
|
||||||
|
|
||||||
if isinstance(chunk_message, AIMessage):
|
if isinstance(chunk_message, AIMessage):
|
||||||
if chunk_message.tool_calls:
|
if chunk_message.tool_calls:
|
||||||
|
|||||||
Reference in New Issue
Block a user