From ad1b9c71fd39b334673214e56f4fb2c6cf5831c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=A6=82=E5=A8=81?= Date: Thu, 8 Jan 2026 13:09:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pipeline/api/rag.py | 6 ++++-- src/pipeline/main.py | 18 ++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/pipeline/api/rag.py b/src/pipeline/api/rag.py index a7bae94..9398396 100644 --- a/src/pipeline/api/rag.py +++ b/src/pipeline/api/rag.py @@ -3,6 +3,7 @@ from fastapi.responses import StreamingResponse from src.pipeline.services.rag import RagService from src.pipeline.schemas.schemas import ChatRequest from src.pipeline.utils import logger +import json router = APIRouter() @@ -11,8 +12,9 @@ async def stream_chat(body: ChatRequest): service = RagService() async def event_generator(): + yield f"data: {json.dumps({'': "", 'status': 'start'})}\n\n" async for tokens in service.stream_chat(body.query): - logger.debug(tokens) - yield f"data: {tokens}\n\n" + yield f"data: {json.dumps({'message': tokens, 'status': 'process'})}\n\n" + yield f"data: {json.dumps({'message': "", 'status': 'end'})}\n\n" return StreamingResponse(event_generator(), media_type="text/event-stream") diff --git a/src/pipeline/main.py b/src/pipeline/main.py index c92dcab..6f27963 100644 --- a/src/pipeline/main.py +++ b/src/pipeline/main.py @@ -4,29 +4,27 @@ from src.pipeline.config import config from contextlib import asynccontextmanager from src.pipeline.core import llm, es, nodes + @asynccontextmanager -async def lifespan(app:FastAPI): - print("------") +async def lifespan(app: FastAPI): await llm.init_client() await es.init_client() - + yield await llm.close_client() await es.close_client() -app = FastAPI( - title="AI Pipeline", - description="轻量级 AI Pipeline", - version=config.version, - lifespan=lifespan -) + +app = FastAPI(title="AI Pipeline", description="轻量级 AI Pipeline", version=config.version, lifespan=lifespan) include_router(app) + @app.get("/") async def healthz(): return {"status": "running", "version": config.version} -if __name__ == '__main__': + +if __name__ == "__main__": pass