From de98ea59b1b7e865ee02f069f6b4a63a430874f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=B9=8F?= Date: Wed, 15 Jul 2026 17:31:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=20Prompt=20=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=8E=E7=94=9F=E6=88=90=E6=B5=81=E7=A8=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1712695621-1782569508/state/server-info | 1 + .../1712695621-1782569508/state/server.pid | 1 + .../1775386462-1782569491/state/server.pid | 1 + .../807-1781880145/state/server-stopped | 1 + .../807-1781880145/state/server.pid | 1 + .../codex-1783309757/state/server-stopped | 1 + .../state/server-stopped | 1 + .../codex-20260707-151010/state/server.pid | 1 + .../state/server-info | 1 + .../state/server.pid | 0 .../state/server.pid | 1 + .../state/server.pid | 1 + .../state/server.pid | 1 + .../state/server.pid | 1 + .../state/server-info | 1 + .../manual-31932-20260527140727/state/events | 2 + .../state/server-info | 1 + .../state/server.pid | 1 + .../state/server.pid | 1 + .../state/server.pid | 0 RuoYi-Vue/docs/prompt-management-center.md | 10 +- .../2026-07-10-ai-software-factory-roadmap.md | 14 +- .../easycode-web/.vite/deps/_metadata.json | 8 + .../easycode-web/.vite/deps/package.json | 3 + .../easycode-web/src/views/GenerateView.vue | 474 +++++-- .../src/views/generateView.test.mjs | 9 +- .../src/main/resources/application.yml | 3 - .../config/PromptRegistryProperties.java | 19 - .../controller/PromptTemplateController.java | 8 - .../ai/prompt/BuiltinPromptRegistry.java | 169 --- .../ai/prompt/DatabasePromptRegistry.java | 37 +- .../ai/prompt/model/PromptTemplateDetail.java | 4 - .../ai/stage/oneclick/DesignStageHandler.java | 8 +- .../factory/flow/FlowConfigSanitizer.java | 40 + .../mapper/factory/PromptRegistryMapper.java | 2 - .../service/IPromptTemplateService.java | 2 - .../service/PromptTemplateServiceImpl.java | 108 +- .../service/front/AiGenerateServiceImpl.java | 23 +- .../front/FlowConfigContractService.java | 63 +- .../FlowConfigPageBindingReconciler.java | 163 +++ .../service/front/HttpDeepSeekClient.java | 33 +- .../service/front/IDeepSeekClient.java | 4 - .../OneClickProjectGenerationServiceImpl.java | 13 + .../factory-prompts/app_blueprint/system.txt | 1 - .../factory-prompts/app_blueprint/user.txt | 22 - .../factory-prompts/code_analysis/system.txt | 1 - .../factory-prompts/code_analysis/user.txt | 12 - .../factory-prompts/database/system.txt | 1 - .../factory-prompts/database/user.txt | 30 - .../database_change_sync/system.txt | 1 - .../database_change_sync/user.txt | 3 - .../factory-prompts/default/system.txt | 1 - .../factory-prompts/diagram_spec/system.txt | 1 - .../factory-prompts/diagram_spec/user.txt | 6 - .../factory-prompts/flow_config/system.txt | 55 - .../factory-prompts/flow_config/user.txt | 2 - .../one_click_project/system.txt | 1 - .../one_click_project/user.txt | 3 - .../factory-prompts/paper_draft/system.txt | 1 - .../factory-prompts/paper_draft/user.txt | 13 - .../factory-prompts/paper_outline/system.txt | 1 - .../factory-prompts/paper_outline/user.txt | 16 - .../factory-prompts/requirement/system.txt | 1 - .../factory-prompts/requirement/user.txt | 17 - .../mapper/factory/PromptRegistryMapper.xml | 18 - .../ai/prompt/BuiltinPromptRegistryTest.java | 94 -- .../ai/prompt/DatabasePromptRegistryTest.java | 49 +- .../PromptRegistrySchemaScriptTest.java | 10 +- .../oneclick/DesignStageHandlerTest.java | 86 ++ .../factory/flow/FlowConfigCompilerTest.java | 50 + .../PromptTemplateServiceImplTest.java | 91 +- .../front/AiPromptExternalizationTest.java | 43 +- .../FlowConfigPageBindingReconcilerTest.java | 126 ++ .../service/front/HttpDeepSeekClientTest.java | 17 + .../ruoyi-ui/src/api/generator/prompt.js | 4 - .../src/views/generator/prompt/index.vue | 34 +- ...t_flow_relation_field_upgrade_20260715.sql | 105 ++ ...source_detail_binding_upgrade_20260715.sql | 161 +++ RuoYi-Vue/tmp-logs/logback-local.xml | 13 + .../tmp-logs/metric-empty-current-backend.pid | 1 + .../tmp-logs/metric-empty-fixed-backend.pid | 1 + .../tmp-logs/qing-ui-preview/babel.config.js | 5 + .../tmp-logs/qing-ui-preview/package.json | 24 + .../qing-ui-preview/public/index.html | 13 + .../tmp-logs/qing-ui-preview/src/App.vue | 543 ++++++++ .../tmp-logs/qing-ui-preview/src/main.js | 21 + .../qing-ui-preview/src/router/index.js | 50 + .../tmp-logs/qing-ui-preview/src/style.css | 1 + .../qing-ui-preview/src/utils/dict.js | 32 + .../qing-ui-preview/src/utils/request.js | 6 + .../src/views/demo/product/index.vue | 1122 +++++++++++++++++ .../qing-ui-preview/src/views/login/index.vue | 291 +++++ .../tmp-logs/qing-ui-preview/vue.config.js | 18 + 93 files changed, 3474 insertions(+), 980 deletions(-) create mode 100644 RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server-info create mode 100644 RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/1775386462-1782569491/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server-stopped create mode 100644 RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-1783309757/state/server-stopped create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server-stopped create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-22612-20260707133826/state/server-info create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977071/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977098/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977120/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977149/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977177/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977251/state/server-info create mode 100644 RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/events create mode 100644 RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server-info create mode 100644 RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/manual-39820-20260527140704/state/server.pid create mode 100644 RuoYi-Vue/.superpowers/brainstorm/manual-49892-20260527140633/state/server.pid create mode 100644 RuoYi-Vue/easycode-web/.vite/deps/_metadata.json create mode 100644 RuoYi-Vue/easycode-web/.vite/deps/package.json delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/config/PromptRegistryProperties.java delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/factory/ai/prompt/BuiltinPromptRegistry.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FlowConfigPageBindingReconciler.java delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/app_blueprint/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/app_blueprint/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/code_analysis/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/code_analysis/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/database/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/database/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/database_change_sync/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/database_change_sync/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/default/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/diagram_spec/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/diagram_spec/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/flow_config/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/flow_config/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/one_click_project/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/one_click_project/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/paper_draft/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/paper_draft/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/paper_outline/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/paper_outline/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/requirement/system.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/main/resources/factory-prompts/requirement/user.txt delete mode 100644 RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/factory/ai/prompt/BuiltinPromptRegistryTest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/factory/ai/stage/oneclick/DesignStageHandlerTest.java create mode 100644 RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FlowConfigPageBindingReconcilerTest.java create mode 100644 RuoYi-Vue/sql/prompt_flow_relation_field_upgrade_20260715.sql create mode 100644 RuoYi-Vue/sql/prompt_resource_detail_binding_upgrade_20260715.sql create mode 100644 RuoYi-Vue/tmp-logs/logback-local.xml create mode 100644 RuoYi-Vue/tmp-logs/metric-empty-current-backend.pid create mode 100644 RuoYi-Vue/tmp-logs/metric-empty-fixed-backend.pid create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/babel.config.js create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/package.json create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/public/index.html create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/App.vue create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/main.js create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/router/index.js create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/style.css create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/utils/dict.js create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/utils/request.js create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/views/demo/product/index.vue create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/src/views/login/index.vue create mode 100644 RuoYi-Vue/tmp-logs/qing-ui-preview/vue.config.js diff --git a/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server-info b/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server-info new file mode 100644 index 0000000..9cda528 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server-info @@ -0,0 +1 @@ +{"type":"server-started","port":64796,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:64796","screen_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\1712695621-1782569508\\content","state_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\1712695621-1782569508\\state"} diff --git a/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server.pid new file mode 100644 index 0000000..a37033a --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/1712695621-1782569508/state/server.pid @@ -0,0 +1 @@ +13900 diff --git a/RuoYi-Vue/.superpowers/brainstorm/1775386462-1782569491/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/1775386462-1782569491/state/server.pid new file mode 100644 index 0000000..12ba45a --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/1775386462-1782569491/state/server.pid @@ -0,0 +1 @@ +37624 diff --git a/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server-stopped b/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server-stopped new file mode 100644 index 0000000..266db8d --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server-stopped @@ -0,0 +1 @@ +{"reason":"idle timeout","timestamp":1781882785790} diff --git a/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server.pid new file mode 100644 index 0000000..882e319 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/807-1781880145/state/server.pid @@ -0,0 +1 @@ +807 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-1783309757/state/server-stopped b/RuoYi-Vue/.superpowers/brainstorm/codex-1783309757/state/server-stopped new file mode 100644 index 0000000..8012b5e --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-1783309757/state/server-stopped @@ -0,0 +1 @@ +{"reason":"idle timeout","timestamp":1783312098015} diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server-stopped b/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server-stopped new file mode 100644 index 0000000..e056c32 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server-stopped @@ -0,0 +1 @@ +{"reason":"idle timeout","timestamp":1783410216217} diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server.pid new file mode 100644 index 0000000..9328a1e --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-20260707-151010/state/server.pid @@ -0,0 +1 @@ +31444 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-22612-20260707133826/state/server-info b/RuoYi-Vue/.superpowers/brainstorm/codex-22612-20260707133826/state/server-info new file mode 100644 index 0000000..79427bd --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-22612-20260707133826/state/server-info @@ -0,0 +1 @@ +{"type":"server-started","port":60598,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:60598","screen_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\codex-22612-20260707133826\\content","state_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\codex-22612-20260707133826\\state"} diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977071/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977071/state/server.pid new file mode 100644 index 0000000..e69de29 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977098/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977098/state/server.pid new file mode 100644 index 0000000..a1917e7 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977098/state/server.pid @@ -0,0 +1 @@ +18352 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977120/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977120/state/server.pid new file mode 100644 index 0000000..1d0ed60 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977120/state/server.pid @@ -0,0 +1 @@ +35088 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977149/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977149/state/server.pid new file mode 100644 index 0000000..591bcc0 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977149/state/server.pid @@ -0,0 +1 @@ +13008 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977177/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977177/state/server.pid new file mode 100644 index 0000000..5976668 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977177/state/server.pid @@ -0,0 +1 @@ +49784 diff --git a/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977251/state/server-info b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977251/state/server-info new file mode 100644 index 0000000..b7d2467 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/codex-frontend-reorg-1779977251/state/server-info @@ -0,0 +1 @@ +{"type":"server-started","port":51050,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:51050","screen_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\codex-frontend-reorg-1779977251\\content","state_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\codex-frontend-reorg-1779977251\\state"} diff --git a/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/events b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/events new file mode 100644 index 0000000..6c615b7 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/events @@ -0,0 +1,2 @@ +{"type":"click","text":"A. 集成到现有生成工作台\n \n \n \n 菜单树\n 图书目录\n 我的借阅\n 订单记录\n \n \n 页面画布\n 搜索区:书名 / 分类 / 状态\n 工具栏:新增 / 导出 / 批量删除\n 表格列:书名、作者、库存、状态、操作\n \n \n 属性面板\n \n \n 保存设计\n \n \n \n \n \n \n A. 轻量集成版(推荐先做)\n 在 easycode-web 的生成页中新增“页面设计”步骤,复用现有 appBlueprint、database、businessActions。实现最快,风险最低。","choice":"a","id":null,"timestamp":1779862739299} +{"type":"click","text":"A. 集成到现有生成工作台\n \n \n \n 菜单树\n 图书目录\n 我的借阅\n 订单记录\n \n \n 页面画布\n 搜索区:书名 / 分类 / 状态\n 工具栏:新增 / 导出 / 批量删除\n 表格列:书名、作者、库存、状态、操作\n \n \n 属性面板\n \n \n 保存设计\n \n \n \n \n \n \n A. 轻量集成版(推荐先做)\n 在 easycode-web 的生成页中新增“页面设计”步骤,复用现有 appBlueprint、database、businessActions。实现最快,风险最低。","choice":"a","id":null,"timestamp":1779862742233} diff --git a/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server-info b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server-info new file mode 100644 index 0000000..9099729 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server-info @@ -0,0 +1 @@ +{"type":"server-started","port":57643,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:57643","screen_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\manual-31932-20260527140727\\content","state_dir":"D:\\codes\\yidaima\\RuoYi-Vue\\.superpowers\\brainstorm\\manual-31932-20260527140727\\state"} diff --git a/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server.pid new file mode 100644 index 0000000..5b0851b --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/manual-31932-20260527140727/state/server.pid @@ -0,0 +1 @@ +19976 diff --git a/RuoYi-Vue/.superpowers/brainstorm/manual-39820-20260527140704/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/manual-39820-20260527140704/state/server.pid new file mode 100644 index 0000000..17df2e3 --- /dev/null +++ b/RuoYi-Vue/.superpowers/brainstorm/manual-39820-20260527140704/state/server.pid @@ -0,0 +1 @@ +29288 diff --git a/RuoYi-Vue/.superpowers/brainstorm/manual-49892-20260527140633/state/server.pid b/RuoYi-Vue/.superpowers/brainstorm/manual-49892-20260527140633/state/server.pid new file mode 100644 index 0000000..e69de29 diff --git a/RuoYi-Vue/docs/prompt-management-center.md b/RuoYi-Vue/docs/prompt-management-center.md index a01cd7a..33ff612 100644 --- a/RuoYi-Vue/docs/prompt-management-center.md +++ b/RuoYi-Vue/docs/prompt-management-center.md @@ -10,11 +10,9 @@ - 在线调试:草稿、已发布和已退役版本均可测试,记录输入、输出、模型、耗时、成功状态和人工评分。 - A/B 测试:同一模板下选择两个不可变版本,用相同输入运行对比,统计成功次数、平均耗时与人工评分。 -## 初始化 V1 +## 唯一来源 -首次启用后,在 Prompt 中心点击“初始化 V1”。系统会把每个生成类型各自的业务 Prompt 写成 `V1` 并立即发布,包括对应任务、输出格式和业务约束的 System Prompt、Builder 合约、`{{input}}` User Prompt 模板和模型网关配置。 - -初始化是幂等的:处理完全没有版本的模板;早期由系统生成且内容同质化的唯一 V1 会被安全修复。已有人工草稿、后续版本或实验版本的模板都会跳过,不覆盖后台维护内容。 +Prompt 中心的数据库发布版是运行时唯一来源。系统不提供代码内置 Prompt、初始化 V1 或缺失回退;模板没有当前已发布版本、被停用或版本内容校验失败时,生成任务会明确失败。首个版本应通过部署 SQL 导入,或由管理员在 Prompt 中心创建并发布。 ## 数据库升级 @@ -25,13 +23,13 @@ 3. `sql/factory_prompt_lab.sql` 4. `sql/prompt_registry_menu.sql` -然后将 `factory.prompt-registry.database-enabled`(环境变量 `FACTORY_PROMPT_REGISTRY_DATABASE_ENABLED`)设为 `true`,数据库中的已发布版本才会替代内置 Prompt。关闭时仍使用应用内置资源版本作为安全后备。 +完成升级后,确认每个正在使用的生成类型都有当前已发布版本。运行时始终读取数据库,不存在切换到代码内置 Prompt 的配置项。 ## 结构化上下文契约 前台 AI 生成入口只向 Prompt Registry 传递 JSON 动态上下文。角色设定、输出格式、字段约束、禁止项和纠错规则均由 Prompt 中心的 System Prompt 与 User Prompt 模板控制,User Prompt 模板必须保留 `{{input}}`。 -当前可执行契约使用 `context-json::v1`。升级前发布的 `legacy-builder:*` 版本依赖 Java 内置规则,系统会将其视为过期版本并安全回退到资源模板;需要在 Prompt 中心基于新的 JSON 契约创建并发布新版本,才能重新由数据库版本接管。 +当前版本通常使用 `context-json::v1`。契约和 Prompt 正文均随后台版本保存;升级前的 `legacy-builder:*` 版本不会触发代码回退,应在 Prompt 中心创建并发布完整的新版本。 ## 权限 diff --git a/RuoYi-Vue/docs/superpowers/specs/2026-07-10-ai-software-factory-roadmap.md b/RuoYi-Vue/docs/superpowers/specs/2026-07-10-ai-software-factory-roadmap.md index 3155c22..379361b 100644 --- a/RuoYi-Vue/docs/superpowers/specs/2026-07-10-ai-software-factory-roadmap.md +++ b/RuoYi-Vue/docs/superpowers/specs/2026-07-10-ai-software-factory-roadmap.md @@ -1195,20 +1195,20 @@ P1-B 已完成,见下方记录。 - 新增 `factory_prompt_template` 与 `factory_prompt_version`:模板保存稳定 Prompt code、生成类型、启用状态和当前发布指针,版本保存不可变的 system Prompt、user Prompt builder 合约、provider/model、规范化 SHA-256 和发布状态。 - Prompt 版本正文创建后不可更新;版本号在模板行锁内单调递增,草稿发布与历史版本回滚会在同一事务中退役旧版本、切换状态并移动当前指针。 -- 新增 `PromptFingerprintService`,内置发布、数据库发布和发布服务复用同一规范化指纹算法;运行时会重新计算数据库内容哈希并拒绝漂移。 -- 新增主运行实现 `DatabasePromptRegistry`:显式开启数据库开关后按生成类型解析当前发布,并支持按 Prompt code/version 精确解析已发布或已退役版本,保证排队任务可重放。 -- 数据库功能未开启、没有当前数据库发布或模板被停用时继续回落到内置 Prompt,确保迁移前和逐步启用期间不阻断现有生成链路。 -- 发布与回滚前校验内容指纹、当前代码真实实现的 user Prompt builder 合约和已注册 ModelGateway provider,避免发布无法执行的虚假版本。 +- 新增 `PromptFingerprintService`,数据库发布和发布服务复用同一规范化指纹算法;运行时会重新计算数据库内容哈希并拒绝漂移。 +- 新增主运行实现 `DatabasePromptRegistry`:始终按生成类型解析数据库当前发布,并支持按 Prompt code/version 精确解析已发布或已退役版本,保证排队任务可重放。 +- 没有当前数据库发布或模板被停用时直接失败,不回落到代码内置 Prompt。 +- 发布与回滚前校验内容指纹和已注册 ModelGateway provider,避免发布无法执行的虚假版本。 - 新增带权限控制的模板列表、详情、创建、元数据编辑、版本创建、发布和回滚 API;Prompt code 与生成类型创建后不可变。 -- 新增 RuoYi Prompt 管理页面和 API:可搜索模板、查看当前发布与指纹、创建不可变草稿、发布草稿、回滚已退役版本,并从内置发布预填首个数据库版本。 +- 新增 RuoYi Prompt 管理页面和 API:可搜索模板、查看当前发布与指纹、创建不可变草稿、发布草稿、回滚已退役版本;新版本只从当前后台版本复制内容。 - 新增 `prompt_registry_menu.sql` 菜单权限脚本;`factory_prompt_registry.sql` 提供现有库升级和 11 类内置生成用途的模板元数据种子,完整建库脚本同步更新。 启用顺序: 1. 执行 `sql/factory_prompt_registry.sql` 创建表并写入模板元数据。 2. 执行 `sql/prompt_registry_menu.sql` 创建 Prompt 管理菜单和权限。 -3. 设置 `FACTORY_PROMPT_REGISTRY_DATABASE_ENABLED=true`。 -4. 重启后端;首个数据库版本可在管理页基于内置发布创建并发布。 +3. 在管理页或部署 SQL 中为每个生成类型创建并发布数据库版本。 +4. 启动生成任务;缺少发布版时系统会明确报错。 验证结果: diff --git a/RuoYi-Vue/easycode-web/.vite/deps/_metadata.json b/RuoYi-Vue/easycode-web/.vite/deps/_metadata.json new file mode 100644 index 0000000..385e272 --- /dev/null +++ b/RuoYi-Vue/easycode-web/.vite/deps/_metadata.json @@ -0,0 +1,8 @@ +{ + "hash": "8f672fc6", + "configHash": "35975680", + "lockfileHash": "ed79ecfc", + "browserHash": "7a57d982", + "optimized": {}, + "chunks": {} +} \ No newline at end of file diff --git a/RuoYi-Vue/easycode-web/.vite/deps/package.json b/RuoYi-Vue/easycode-web/.vite/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/RuoYi-Vue/easycode-web/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/RuoYi-Vue/easycode-web/src/views/GenerateView.vue b/RuoYi-Vue/easycode-web/src/views/GenerateView.vue index 08d1501..498947b 100644 --- a/RuoYi-Vue/easycode-web/src/views/GenerateView.vue +++ b/RuoYi-Vue/easycode-web/src/views/GenerateView.vue @@ -63,56 +63,77 @@ /> - - - - - - -