# -*- coding: utf-8 -*- """ 配风计划审查接口 —— PDF 上传 + SSE 流式 """ from fastapi import APIRouter, File, Form, UploadFile from fastapi.responses import StreamingResponse from agents.review_agent import stream_review router = APIRouter() @router.post("/vent/review/pdf") async def api_review( file: UploadFile = File(), session_id: str | None = Form(default=None), message: str | None = Form(default=None), force_refresh: bool = Form(default=False), ): """配风计划审查接口(SSE 流式) 用户上传配风计划 PDF 文件,系统自动进行审查: 1. 基本形式审查(版本、签字、编制时间、计算过程完整性、语病逻辑) 2. 数据一致性审查(用风地点完整性、瓦斯/CO2一致性、工作面参数、风速温度匹配) 3. 计算核验过程(逐地点核验需风量计算) 3个子智能体并行审查,结果汇总后流式返回。 请求体: multipart/form-data - file: PDF 文件 - session_id: 可选,会话ID - message: 可选,附加消息 - force_refresh: 可选,是否强制重新提取(忽略缓存),默认 False 响应: SSE 流(text/event-stream) """ return StreamingResponse( stream_review(file, message, session_id, force_refresh), media_type="text/event-stream", headers={ "Cache-Control": "no-cache", "Connection": "keep-alive", "X-Accel-Buffering": "no", "X-Session-Id": session_id or "", }, )