diff --git a/api/apps/document_app.py b/api/apps/document_app.py index cb41921c2..92534a501 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 e7aada1fd..cea0998cb 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 7844bcc6a..b4aca45e7 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)