From f249dda1376dd5a525e74617900351c5bbc61705 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期一, 02 十二月 2024 09:26:18 +0800
Subject: [PATCH] 报告生成

---
 app/api/files.py |   49 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/app/api/files.py b/app/api/files.py
index dd9166a..2189f94 100644
--- a/app/api/files.py
+++ b/app/api/files.py
@@ -75,7 +75,7 @@
         if agent_id == "basic_excel_talk":
             # 澶勭悊鍗曚釜鏂囦欢鐨勬儏鍐�
             file_list = file
-            if len(file) == 1 and agent.agent_type != AgentType.BASIC:
+            if len(file) == 1:  # and agent.agent_type != AgentType.BASIC
                 file_list = [file[0]]  # 濡傛灉鍙湁涓�涓枃浠讹紝纭繚瀹冩槸涓�涓垪琛�
             service = BasicService(base_url=settings.basic_base_url)
             # 閬嶅巻file_list锛屽瓨鍒癴iles 鍒楄〃涓�
@@ -94,21 +94,21 @@
             service = BasicService(base_url=settings.basic_paper_url)
             result = await service.paper_file_upload(chat_id, file.filename, file_content)
 
-        elif agent.agent_type == AgentType.DIFY:
-            file = file[0]
-            # 璇诲彇涓婁紶鐨勬枃浠跺唴瀹�
-            try:
-                file_content = await file.read()
-            except Exception as e:
-                return Response(code=400, msg=str(e))
-            dify_service = DifyService(base_url=settings.dify_base_url)
-            try:
-                token = get_bisheng_token(db, current_user.id)
-                result = await dify_service.upload(token, file.filename, file_content)
-            except Exception as e:
-                raise HTTPException(status_code=500, detail=str(e))
-            result["file_name"] = file.filename
-            return Response(code=200, msg="", data=result)
+    elif agent.agent_type == AgentType.DIFY:
+        file = file[0]
+        # 璇诲彇涓婁紶鐨勬枃浠跺唴瀹�
+        try:
+            file_content = await file.read()
+        except Exception as e:
+            return Response(code=400, msg=str(e))
+        dify_service = DifyService(base_url=settings.dify_base_url)
+        try:
+            token = settings.dify_api_token
+            result = await dify_service.upload(token, file.filename, file_content, current_user.id)
+        except Exception as e:
+            raise HTTPException(status_code=500, detail=str(e))
+        # result["file_name"] = file.filename
+        return Response(code=200, msg="", data=result)
 
         return Response(code=200, msg="", data=result)
 
@@ -188,4 +188,19 @@
             headers={"Content-Disposition": f"attachment; filename={filename}"}
         )
     else:
-        return Response(code=400, msg="Unsupported file type")
\ No newline at end of file
+        return Response(code=400, msg="Unsupported file type")
+
+
+@router.get("/image/{imageId}", response_model=Response)
+async def download_image_file(imageId: str, db=Depends(get_db)):
+    file_path = f"app/images/{imageId}.png"
+
+    def generate():
+        with open(file_path, "rb") as file:
+            while True:
+                data = file.read(1048576)  # 璇诲彇1MB
+                if not data:
+                    break
+                yield data
+
+    return StreamingResponse(generate(), media_type="application/octet-stream")
\ No newline at end of file

--
Gitblit v1.8.0