diff --git a/config/zentaopms.php b/config/zentaopms.php index 9be4affd17..6029fad8dd 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -629,6 +629,7 @@ define('TABLE_INSTANCE', '`' . $config->db->prefix . 'instance`'); define('TABLE_ARTIFACTREPO', '`' . $config->db->prefix . 'artifactrepo`'); define('TABLE_AI_PROMPT', '`' . $config->db->prefix . 'ai_prompt`'); +define('TABLE_AI_PROMPTFIELD', '`' . $config->db->prefix . 'ai_promptfield`'); define('TABLE_AI_PROMPTROLE', '`' . $config->db->prefix . 'ai_promptrole`'); define('TABLE_AI_MINIPROGRAM', '`' . $config->db->prefix . 'ai_miniprogram`'); define('TABLE_AI_MINIPROGRAMFIELD', '`' . $config->db->prefix . 'ai_miniprogramfield`'); diff --git a/db/zentao.sql b/db/zentao.sql index a1dbda6afa..176bf609c8 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -16046,6 +16046,17 @@ INSERT INTO `zt_ai_prompt` (`name`, `desc`, `model`, `module`, `source`, `target ('拆分一个子计划', '优化需求中标题、描述和验收标准等字段,使表述清晰准确。', 0, 'productplan', ',productplan.title,productplan.desc,productplan.begin,productplan.end,', 'productplan.create', '根据给定计划名称、描述、计划开始时间和计划结束时间,将给定计划明确为其小范围的子计划。拆分出来的子计划可以更专注于给定计划中的某一类工作。 ', '要求子计划的时间不能超出计划开始时间和计划结束时间,并且名称不能与原计划名称相同。润色子计划的描述。', '请你扮演一名资深的产品经理。', '负责产品计划、设计、用户体验等方面,需要具备多种技能和能力,以实现产品目标和公司战略。', 'system', '2023-11-17 12:00:00', 'active'), ('需求评审', '对需求进行结构完整性、逻辑一致性和标准符合性评审,并输出优化改进建议。', 0, 'story', ',story.title,story.spec,story.verify,story.product,story.module,story.pri,story.category,story.estimate,', 'empty.empty', '## 核心专业能力\n\n- 结构完整性分析(角色、动作、目标、约束要素)\n- 逻辑一致性分析(单条及多条需求之间的合理性)\n- 评审标准适配(INVEST、SMART或自定义标准)\n- 优先级归类评审建议(突出最关键问题,辅助次要优化)\n- 正式、清晰、专业的输出风格(无emoji,注重结构)\n\n## 工作风格\n\n- 一轮输出,结构化归类\n- 引导用户先聚焦最关键问题\n- 提供清晰、专业、可操作的完善方向\n- 语言正式、客观,保持体验流畅且不压迫\n\n\n## 评审交互流程\n\n1. 接收需求文本(来源于需求详情点击或输入)\n2. 进行结构与逻辑完整性检查\n3. 按重要性将评审建议归为两大类:\n- 核心优先改进项(必须优先处理)\n- 次要优化建议(在有时间或资源时进一步完善)\n4. 一次性输出完整评审结果,不进行多轮追问\n5. 引导用户先集中处理核心问题,如有余力再逐步优化次要问题\n\n## 输出结构要求\n\n- 统一使用正式Markdown结构,分清主次\n- 首先输出【评审总结】,概述整体需求状态\n- 然后分为两个部分输出:\n- 第一部分:核心优先改进项\n- 第二部分:次要优化建议\n- 每个建议应简明扼要,突出问题与优化方向\n- 不使用emoji或花哨符号,保持专业正式风格\n\n## 输出示范结构\n\n## 需求评审结果总结\n\n本次评审分析显示,需求整体情况如下:\n- 结构完整性:基本完整/存在缺失\n- 逻辑一致性:连贯/存在冲突\n- 标准符合性(如INVEST):符合/部分符合/存在明显缺口\n\n## 核心优先改进项\n\n以下问题建议优先处理,以保证需求的可实现性与后续交付质量:\n\n1. (最重要问题简述)\n2. (次重要问题简述)\n3. (其他关键问题简述)\n\n## 次要优化建议\n\n在核心问题处理完毕后,可进一步关注以下细节优化:\n\n1. (次要问题简述)\n2. (细节补充建议)\n3. (未来增强方向提示)\n\n## 小结\n\n根据用户本次的改进项目,给出总结。', '## 附加控制策略\n- 若检测到需求长度或复杂度超出正常范围,可适度缩减次要优化建议,只列出最相关的补充方向。\n- 若累计对话Token数接近10000时,友好提示建议保存成果并新开对话,避免性能下降。', '你是一位资深的需求评审专家,专注于帮助项目管理团队提升需求条目的完整性、逻辑性与可实现性。', '你的职责是基于专业评审方法,在一次完整分析中,系统性提出归类清晰、重点突出的评审建议,引导用户高效完善需求。如果用户问询需求评审以外的问题,可以给与简单响应后,拉回需求评审中。', 'system', '2025-10-31 12:00:00', 'active'); +-- DROP TABLE IF EXISTS `zt_ai_promptfield`; +CREATE TABLE IF NOT EXISTS `zt_ai_promptfield` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', + `appID` mediumint(8) unsigned NOT NULL COMMENT '所属 Prompt 的 ID,对应 zt_ai_prompt.id', + `name` varchar(30) NOT NULL COMMENT '字段名称', + `type` enum('radio','checkbox','text','textarea') DEFAULT 'text' COMMENT '字段类型', + `options` text DEFAULT NULL COMMENT '选项列表,逗号分隔', + `required` enum('0','1') DEFAULT '1' COMMENT '是否必填', + PRIMARY KEY (`id`) +); + -- DROP TABLE IF EXISTS `zt_ai_promptrole`; CREATE TABLE IF NOT EXISTS `zt_ai_promptrole` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, diff --git a/module/ai/control.php b/module/ai/control.php index 9a246a3719..148d5b9e50 100644 --- a/module/ai/control.php +++ b/module/ai/control.php @@ -446,6 +446,7 @@ class ai extends control $this->view->dataPreview = $this->ai->generateDemoDataPrompt($prompt->module, $prompt->source); $this->view->prompt = $prompt; $this->view->promptID = $promptID; + $this->view->currentFields = $this->ai->getPromptFields($promptID); $this->view->knowledgeLibs = $knowledgeLibs; $this->view->lastActiveStep = $this->ai->getLastActiveStep($prompt); $this->view->title = "{$this->lang->ai->prompts->common}#{$prompt->id} $prompt->name {$this->lang->hyphen} " . $this->lang->ai->prompts->setPurpose . " {$this->lang->hyphen} " . $this->lang->ai->prompts->common; diff --git a/module/ai/lang/de.php b/module/ai/lang/de.php index 8e0f28172c..63e4e8c796 100644 --- a/module/ai/lang/de.php +++ b/module/ai/lang/de.php @@ -685,7 +685,9 @@ $lang->ai->miniPrograms->field->edit = 'Edit field'; $lang->ai->miniPrograms->field->configuration = 'Configuration'; $lang->ai->miniPrograms->field->debug = 'Debug Area'; $lang->ai->miniPrograms->field->preview = 'Preview Area'; -$lang->ai->miniPrograms->field->knowledgeLibs = 'Knowledge Libraries Configuration'; +$lang->ai->miniPrograms->field->fields = 'Form Configuration'; +$lang->ai->miniPrograms->field->prompt = 'Prompt'; +$lang->ai->miniPrograms->field->knowledgeLibs = 'Mount Knowledge Libraries'; $lang->ai->miniPrograms->field->option = 'Options'; $lang->ai->miniPrograms->field->contentDebugging = 'Content debugging'; $lang->ai->miniPrograms->field->contentDebuggingTip = 'Please enter the field here to debug.'; diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php index 8e0f28172c..63e4e8c796 100644 --- a/module/ai/lang/en.php +++ b/module/ai/lang/en.php @@ -685,7 +685,9 @@ $lang->ai->miniPrograms->field->edit = 'Edit field'; $lang->ai->miniPrograms->field->configuration = 'Configuration'; $lang->ai->miniPrograms->field->debug = 'Debug Area'; $lang->ai->miniPrograms->field->preview = 'Preview Area'; -$lang->ai->miniPrograms->field->knowledgeLibs = 'Knowledge Libraries Configuration'; +$lang->ai->miniPrograms->field->fields = 'Form Configuration'; +$lang->ai->miniPrograms->field->prompt = 'Prompt'; +$lang->ai->miniPrograms->field->knowledgeLibs = 'Mount Knowledge Libraries'; $lang->ai->miniPrograms->field->option = 'Options'; $lang->ai->miniPrograms->field->contentDebugging = 'Content debugging'; $lang->ai->miniPrograms->field->contentDebuggingTip = 'Please enter the field here to debug.'; diff --git a/module/ai/lang/fr.php b/module/ai/lang/fr.php index 8e0f28172c..63e4e8c796 100644 --- a/module/ai/lang/fr.php +++ b/module/ai/lang/fr.php @@ -685,7 +685,9 @@ $lang->ai->miniPrograms->field->edit = 'Edit field'; $lang->ai->miniPrograms->field->configuration = 'Configuration'; $lang->ai->miniPrograms->field->debug = 'Debug Area'; $lang->ai->miniPrograms->field->preview = 'Preview Area'; -$lang->ai->miniPrograms->field->knowledgeLibs = 'Knowledge Libraries Configuration'; +$lang->ai->miniPrograms->field->fields = 'Form Configuration'; +$lang->ai->miniPrograms->field->prompt = 'Prompt'; +$lang->ai->miniPrograms->field->knowledgeLibs = 'Mount Knowledge Libraries'; $lang->ai->miniPrograms->field->option = 'Options'; $lang->ai->miniPrograms->field->contentDebugging = 'Content debugging'; $lang->ai->miniPrograms->field->contentDebuggingTip = 'Please enter the field here to debug.'; diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php index a1ef8ba531..64f7706109 100644 --- a/module/ai/lang/zh-cn.php +++ b/module/ai/lang/zh-cn.php @@ -685,7 +685,9 @@ $lang->ai->miniPrograms->field->edit = '编辑字段'; $lang->ai->miniPrograms->field->configuration = '配置区'; $lang->ai->miniPrograms->field->debug = '调试区'; $lang->ai->miniPrograms->field->preview = '预览区'; -$lang->ai->miniPrograms->field->knowledgeLibs = '知识库配置'; +$lang->ai->miniPrograms->field->fields = '表单配置'; +$lang->ai->miniPrograms->field->prompt = '题词'; +$lang->ai->miniPrograms->field->knowledgeLibs = '知识库挂载'; $lang->ai->miniPrograms->field->option = '选项'; $lang->ai->miniPrograms->field->contentDebugging = '内容调试'; $lang->ai->miniPrograms->field->contentDebuggingTip = '请在此处输入字段内容进行调试。';