From 9e739e5b90078fb65d51da5ebe6836ac4f004954 Mon Sep 17 00:00:00 2001 From: WangzJi Date: Wed, 16 Jul 2025 14:29:05 +0800 Subject: [PATCH] fix(prompt): fix response_schema not persisting and displaying in edit mode - Add missing fields in ServeDao.to_request() to prevent data loss during updates - Update IPrompt interface to include response_schema and other missing fields - Initialize response_schema in edit form to display existing prompt data properly Fixes issue where response_schema was being cleared on update and not showing in edit mode. --- .../dbgpt-serve/src/dbgpt_serve/prompt/models/models.py | 4 ++++ web/pages/construct/prompt/[type]/index.tsx | 7 +++++++ web/types/prompt.ts | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/packages/dbgpt-serve/src/dbgpt_serve/prompt/models/models.py b/packages/dbgpt-serve/src/dbgpt_serve/prompt/models/models.py index 2efed1c55..3d2430821 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/prompt/models/models.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/prompt/models/models.py @@ -108,6 +108,10 @@ class ServeDao(BaseDao[ServeEntity, ServeRequest, ServerResponse]): prompt_name=entity.prompt_name, prompt_code=entity.prompt_code, content=entity.content, + response_schema=entity.response_schema, + input_variables=entity.input_variables, + model=entity.model, + prompt_language=entity.prompt_language, prompt_desc=entity.prompt_desc, user_code=entity.user_code, user_name=entity.user_name, diff --git a/web/pages/construct/prompt/[type]/index.tsx b/web/pages/construct/prompt/[type]/index.tsx index 78edab7e6..e6447cb04 100644 --- a/web/pages/construct/prompt/[type]/index.tsx +++ b/web/pages/construct/prompt/[type]/index.tsx @@ -349,6 +349,13 @@ const AddOrEditPrompt: React.FC = () => { const editData = JSON.parse(localStorage.getItem('edit_prompt_data') || '{}'); setVariables(JSON.parse(editData.input_variables ?? '[]')); setValue(editData?.content); + // 设置响应模板 + try { + const responseSchema = editData.response_schema ? JSON.parse(editData.response_schema) : {}; + setResponseTemplate(responseSchema); + } catch { + setResponseTemplate({}); + } topForm.setFieldsValue({ prompt_type: editData.prompt_type, prompt_name: editData.prompt_name, diff --git a/web/types/prompt.ts b/web/types/prompt.ts index 94fb14646..8c0769b91 100644 --- a/web/types/prompt.ts +++ b/web/types/prompt.ts @@ -21,6 +21,12 @@ export interface IPrompt { sub_chat_scene: string; user_name?: string; user_id?: string; + response_schema?: string; + input_variables?: string; + model?: string; + prompt_language?: string; + prompt_desc?: string; + prompt_code?: string; } export interface PromptTemplateProps {