fix: Corpus Agent SSE token events not forwarded to frontend\n\nRoot cause: Portal chat-v2 sends token events as {"token":"铸"} without a "type"\nfield. The Corpus Agent was checking data.get("type", "") == SSE_TYPE_TOKEN, but\nsince there was no "type" field, all token events were silently dropped.\n\nFix: Also match events where event_type is empty but a "token" key exists in data.
This commit is contained in:
parent
b465d173f0
commit
088548405a
@ -592,8 +592,8 @@ async def chat_with_agent(req: ChatRequest, token: str = Query(...)):
|
|||||||
if event_type == SSE_TYPE_PERSONA:
|
if event_type == SSE_TYPE_PERSONA:
|
||||||
yield f"data: {json.dumps({'type': SSE_TYPE_PERSONA, 'persona': data.get('persona', ''), 'fromDB': data.get('fromDB', False)})}\n\n"
|
yield f"data: {json.dumps({'type': SSE_TYPE_PERSONA, 'persona': data.get('persona', ''), 'fromDB': data.get('fromDB', False)})}\n\n"
|
||||||
|
|
||||||
# 转发 token 事件
|
# 转发 token 事件(兼容Portal原始格式:{"token":"铸"} 无type字段)
|
||||||
elif event_type == SSE_TYPE_TOKEN:
|
if event_type == SSE_TYPE_TOKEN or (not event_type and "token" in data):
|
||||||
token_text = data.get("token", "")
|
token_text = data.get("token", "")
|
||||||
full_response += token_text
|
full_response += token_text
|
||||||
yield f"data: {json.dumps({'type': SSE_TYPE_TOKEN, 'token': token_text})}\n\n"
|
yield f"data: {json.dumps({'type': SSE_TYPE_TOKEN, 'token': token_text})}\n\n"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user