From afe82feb5750649de22ecb6ec01ee5b71f524fc8 Mon Sep 17 00:00:00 2001 From: Kevin Hu Date: Mon, 9 Dec 2024 15:24:58 +0800 Subject: [PATCH] Fix error message for image access. (#3936) ### What problem does this PR solve? #3883 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- api/apps/document_app.py | 3 +++ api/db/services/canvas_service.py | 13 +++++++------ api/db/services/conversation_service.py | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/api/apps/document_app.py b/api/apps/document_app.py index cb41921c..92534a50 100644 --- a/api/apps/document_app.py +++ b/api/apps/document_app.py @@ -498,6 +498,9 @@ def change_parser(): # @login_required def get_image(image_id): try: + arr = image_id.split("-") + if len(arr) != 2: + return get_data_error_result(message="Image not found.") bkt, nm = image_id.split("-") response = flask.make_response(STORAGE_IMPL.get(bkt, nm)) response.headers.set('Content-Type', 'image/JPEG') diff --git a/api/db/services/canvas_service.py b/api/db/services/canvas_service.py index e7aada1f..cea0998c 100644 --- a/api/db/services/canvas_service.py +++ b/api/db/services/canvas_service.py @@ -16,7 +16,7 @@ import json from uuid import uuid4 from agent.canvas import Canvas -from api.db.db_models import DB, CanvasTemplate, UserCanvas +from api.db.db_models import DB, CanvasTemplate, UserCanvas, API4Conversation from api.db.services.api_service import API4ConversationService from api.db.services.common_service import CommonService from api.db.services.conversation_service import structure_answer @@ -65,23 +65,24 @@ def completion(tenant_id, agent_id, question, session_id=None, stream=True, **kw "id": session_id, "dialog_id": cvs.id, "user_id": kwargs.get("user_id", ""), - "message": [{"role": "assistant", "content": canvas.get_prologue()}], "source": "agent", "dsl": json.loads(cvs.dsl) } API4ConversationService.save(**conv) - yield "data:" + json.dumps({"code": 0, + if canvas.get_preset_param(): + yield "data:" + json.dumps({"code": 0, "message": "", "data": { "session_id": session_id, - "answer": canvas.get_prologue(), + "answer": "", "reference": [], "param": canvas.get_preset_param() } }, ensure_ascii=False) + "\n\n" - yield "data:" + json.dumps({"code": 0, "message": "", "data": True}, ensure_ascii=False) + "\n\n" - return + yield "data:" + json.dumps({"code": 0, "message": "", "data": True}, ensure_ascii=False) + "\n\n" + return + conv = API4Conversation(**conv) else: session_id = session_id e, conv = API4ConversationService.get_by_id(session_id) diff --git a/api/db/services/conversation_service.py b/api/db/services/conversation_service.py index 7844bcc6..b4aca45e 100644 --- a/api/db/services/conversation_service.py +++ b/api/db/services/conversation_service.py @@ -47,6 +47,8 @@ class ConversationService(CommonService): def structure_answer(conv, ans, message_id, session_id): reference = ans["reference"] + if not isinstance(reference, dict): + reference = {} temp_reference = deepcopy(ans["reference"]) if not conv.reference: conv.reference.append(temp_reference)