feat: 完善 Prompt 管理与生成流程配置
This commit is contained in:
@@ -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:<generateType>:v1`。升级前发布的 `legacy-builder:*` 版本依赖 Java 内置规则,系统会将其视为过期版本并安全回退到资源模板;需要在 Prompt 中心基于新的 JSON 契约创建并发布新版本,才能重新由数据库版本接管。
|
||||
当前版本通常使用 `context-json:<generateType>:v1`。契约和 Prompt 正文均随后台版本保存;升级前的 `legacy-builder:*` 版本不会触发代码回退,应在 Prompt 中心创建并发布完整的新版本。
|
||||
|
||||
## 权限
|
||||
|
||||
|
||||
@@ -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. 启动生成任务;缺少发布版时系统会明确报错。
|
||||
|
||||
验证结果:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user