Fix 法规对话

This commit is contained in:
2026-05-21 23:20:39 +08:00
parent 1b640f0084
commit bf6d47e1fd
11 changed files with 553 additions and 428 deletions

View File

@@ -2,7 +2,6 @@
from __future__ import annotations
import asyncio
import json
from typing import AsyncGenerator, List, Optional
@@ -20,6 +19,7 @@ from app.api.models import (
SessionInfo,
)
from app.config.settings import settings
from app.shared.async_utils import iter_in_thread
from app.shared.bootstrap import get_agent_conversation_service, get_conversation_store
# Keep route handlers close to their transport-layer wiring for easier auditing.
@@ -101,14 +101,13 @@ async def chat_stream_get(
top_k=settings.rag_top_k,
)
yield f"event: session\ndata: {json.dumps({'session_id': session_id_})}\n\n"
for event_data in event_stream:
async for event_data in iter_in_thread(event_stream):
event_type = event_data.get("event", "content")
data = event_data.get("data", "")
if isinstance(data, (dict, list)):
yield f"event: {event_type}\ndata: {json.dumps(data, ensure_ascii=False)}\n\n"
else:
yield f"event: {event_type}\ndata: {data}\n\n"
await asyncio.sleep(0)
except Exception as exc:
yield f"event: error\ndata: {str(exc)}\n\n"