From a02ca16260fb372c42c4dc529dd49bfe3f0b8c83 Mon Sep 17 00:00:00 2001 From: Kevin Hu Date: Fri, 8 Aug 2025 17:05:55 +0800 Subject: [PATCH] Fix: add prologue to api. (#9322) ### What problem does this PR solve? ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- api/apps/canvas_app.py | 5 +++-- api/apps/sdk/session.py | 1 + api/db/services/canvas_service.py | 1 + api/db/services/llm_service.py | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/api/apps/canvas_app.py b/api/apps/canvas_app.py index 26ea74888..b94b29d12 100644 --- a/api/apps/canvas_app.py +++ b/api/apps/canvas_app.py @@ -28,7 +28,7 @@ from api.db import FileType from api.db.services.canvas_service import CanvasTemplateService, UserCanvasService, API4ConversationService from api.db.services.document_service import DocumentService from api.db.services.file_service import FileService -from api.db.services.user_service import TenantService +from api.db.services.user_service import TenantService, UserTenantService from api.db.services.user_canvas_version import UserCanvasVersionService from api.settings import RetCode from api.utils import get_uuid @@ -101,7 +101,8 @@ def save(): @login_required def get(canvas_id): e, c = UserCanvasService.get_by_tenant_id(canvas_id) - if not e or c["user_id"] != current_user.id: + tids = [t.tenant_id for t in UserTenantService.query(user_id=current_user.id)] + if not e or (c["user_id"] != current_user.id and c["user_id"] not in tids): return get_data_error_result(message="canvas not found.") return get_json_result(data=c) diff --git a/api/apps/sdk/session.py b/api/apps/sdk/session.py index a32d05889..09620394a 100644 --- a/api/apps/sdk/session.py +++ b/api/apps/sdk/session.py @@ -862,5 +862,6 @@ def begin_inputs(tenant_id, agent_id): "title": cvs.title, "avatar": cvs.avatar, "inputs": canvas.get_component_input_form("begin"), + "prologue": canvas.get_prologue() } ) diff --git a/api/db/services/canvas_service.py b/api/db/services/canvas_service.py index b15c12007..09efe68ec 100644 --- a/api/db/services/canvas_service.py +++ b/api/db/services/canvas_service.py @@ -172,6 +172,7 @@ def completion(tenant_id, agent_id, session_id=None, **kwargs): conv.message.append({"role": "assistant", "content": txt, "created_at": time.time(), "id": message_id}) conv.reference = canvas.get_reference() conv.errors = canvas.error + conv.dsl = str(canvas) conv = conv.to_dict() API4ConversationService.append_message(conv["id"], conv) diff --git a/api/db/services/llm_service.py b/api/db/services/llm_service.py index 607392944..dac080b64 100644 --- a/api/db/services/llm_service.py +++ b/api/db/services/llm_service.py @@ -225,10 +225,11 @@ class TenantLLMService(CommonService): if llm_id == llm["llm_name"]: return llm["model_type"].split(",")[-1] - for llm in TenantLLMService.query(llm_name=llm_id): + for llm in LLMService.query(llm_name=llm_id): return llm.model_type - for llm in LLMService.query(llm_name=llm_id): + llm = TenantLLMService.get_or_none(llm_name=llm_id) + if llm: return llm.model_type for llm in TenantLLMService.query(llm_name=llm_id): return llm.model_type