From df08f308fa705961e437568cf9ceca9a7bf9bfb8 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 22 Jul 2025 16:25:39 +0800 Subject: [PATCH] 'commit' --- dsLightRag/Start.py | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/dsLightRag/Start.py b/dsLightRag/Start.py index 83f2ae6e..2f6a11b9 100644 --- a/dsLightRag/Start.py +++ b/dsLightRag/Start.py @@ -27,6 +27,7 @@ logger.addHandler(handler) async def lifespan(app: FastAPI): yield + app = FastAPI(lifespan=lifespan) # 挂载静态文件目录 @@ -340,32 +341,28 @@ async def chat(request: fastapi.Request): data = await request.json() topic = 'ShiJi' mode = data.get("mode", "hybrid") # 默认为hybrid模式 - # 拼接路径 WORKING_PATH = "./Topic/" + topic - # 查询的问题 query = data.get("query") - # 关闭参考资料 user_prompt = "\n 1、总结回答时,要注意不要太繁琐!" + user_prompt = user_prompt + "\n 2、最后将以语音的形式进行播报,无法语音输出的内容不可返回!" + user_prompt = user_prompt + "\n 3、不要返回引用等信息!" - async def generate_response_stream(query: str): - try: - rag = await initialize_rag(WORKING_PATH) - resp = await rag.aquery( - query=query, - param=QueryParam(mode=mode, stream=True, user_prompt=user_prompt, enable_rerank=True)) + try: + rag = await initialize_rag(WORKING_PATH) + # 设置stream=False以禁用流式调用 + resp = await rag.aquery( + query=query, + param=QueryParam(mode=mode, stream=False, user_prompt=user_prompt, enable_rerank=True)) - async for chunk in resp: - if not chunk: - continue - yield f"data: {json.dumps({'reply': chunk})}\n\n" - print(chunk, end='', flush=True) - except Exception as e: - yield f"data: {json.dumps({'error': str(e)})}\n\n" - finally: - # 清理资源 - await rag.finalize_storages() + # 直接返回JSON格式的完整响应 + return {"code": 0, "data": {"reply": resp}} + + except Exception as e: + return {"code": 1, "msg": str(e)} + finally: + # 清理资源 + await rag.finalize_storages() - return EventSourceResponse(generate_response_stream(query=query)) if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)