Back to Prompt Optimizer

全局功能模式(Function Mode)与上下文模板

docs/architecture/function-mode.md

2.10.22.9 KB
Original Source

全局功能模式(Function Mode)与上下文模板

本文档说明全局功能模式(basic/pro)与六类模板类型的关系,以及历史记录与存储键的联动策略。

功能模式(Function Mode)

  • 偏好键:app:settings:ui:function-mode
  • 取值:'basic' | 'pro'(默认 'basic',首次运行自动持久化为 'basic'
  • 目的:统一驱动模板下拉选择、历史复用等行为(类似主题/语言的全局来源)。

模板类型映射(6 类)

  • 基础(basic):
    • 系统优化:optimize
    • 用户优化:userOptimize
    • 迭代优化:iterate
  • 专业(pro):
    • 上下文-系统优化:contextSystemOptimize
    • 上下文-用户优化:contextUserOptimize
    • 上下文-迭代优化:contextIterate

页面(如 App.vue)会根据当前 function-mode 与系统/用户/迭代家族,自动选择对应的模板类型;无需新增本地开关。

模板管理器分类

模板管理器独立于功能模式,提供 6 类模板的全量管理:

  • optimize / userOptimize / iterate
  • contextSystemOptimize / contextUserOptimize / contextIterate

在相应分类内新建/复制模板时,其 metadata.templateType 将被设置为该分类对应类型。

模板选择持久化(键位)

为确保模式切换后的“记忆”体验,基础/专业两种模式下的选择分开保存:

  • 基础:
    • 系统:app:selected-optimize-template
    • 用户:app:selected-user-optimize-template
    • 迭代:app:selected-iterate-template
  • 专业(上下文):
    • 系统:app:selected-context-system-optimize-template
    • 用户:app:selected-context-user-optimize-template
    • 迭代:app:selected-context-iterate-template

切换 function-mode 时,系统将读取对应键,若不存在则回退到该类型列表的第一项并写回保存。

历史记录

  • 类型:扩展为 6 类,与模板类型一致(另含 test)。
  • 新建链:
    • function-mode='pro' 或选择了 context* 模板 → 记录为 contextSystemOptimize/contextUserOptimize
    • 否则记录为基础类型 optimize/userOptimize
    • 迭代版本始终为 iterate(保持与根类型一致的家族)。
  • 复用链:
    • 根记录类型为 context* → 自动切换 function-mode='pro'
    • 根记录类型为基础 → 自动切换 function-mode='basic'
    • 同时根据根类型切换 system/user 优化模式。

回退策略

当请求 context* 类型但没有可用模板时:

  • 下拉列表为空并引导用户在模板管理器添加模板;
  • 服务层默认模板查找会从 context* 回退到对应基础类型,保证流程不中断。

兼容性

  • 默认 function-mode'basic',向后兼容旧版本;
  • 如存在历史布尔“高级模式”,可一次性迁移为 function-modetrue → 'pro'false → 'basic'(实现层可选)。