周期性定时任务 (Periodic Scheduled Tasks)

此功能旨在通过自动化技术,编排和执行重复性任务,从而提升工作效率并减少人工干预。

  • [Gai] 应用程序 作为人机交互的核心,负责接收并执行各类操作指令,并展示任务执行结果。
  • [PyGai] 连接器 充当机器与机器之间的通信桥梁,负责任务的调度、指令的分发以及结果的集中处理。

PyGai in Github

通过 [PyGai] 连接器 配置和调度周期性定时任务,[Gai] 应用程序 负责执行这些任务并反馈结果。此机制旨在自动化重复性工作流程,从而释放用户时间,将日常周期性操作交由系统完成。

定时任务本质上是对AI操作的自动化编排,涉及以下核心要素:

  • 指令来源: 任务的发起者或获取具体指令的系统。
  • 任务定义: 具体的执行指令,包括操作内容和相关参数。
  • 结果处理: 任务执行结果的去向和通知机制。

1. 指令来源 (Instruction Source)

应用程序的指令来源分为两种类型:本地指令库和连接器API。

  • 本地指令库: 来源于应用程序内用户自己的提示词库。
  • 连接器API: 来源于向连接器API发起请求后输出的提示词。

2. 任务定义 (Task Definition)

明确任务的执行时机与具体操作。

  • 执行周期: 支持基于Cron表达式的灵活调度配置,可设定为每分钟、每小时、每日、每月、每年等周期性执行。
  • 执行指令: 指应用程序需要执行的具体指令集,通常表现为高质量的提示词或操作脚本。

3. 结果处理 (Result Handling)

任务执行结果的存储与通知机制。

  • 本地日志: 任务执行结果(包括成功/失败状态、详细日志及生成内容)将完整存储于应用程序本地。
  • 连接器回传: 任务执行结果在本地记录的同时,通过API回传至连接器,以支持集中管理或进一步的业务逻辑处理。
  • 邮件通知: 支持配置在任务执行完成后,通过电子邮件将通知发送至指定收件人,实现远程监控与异步提醒。

T1-使用周期性任务管理器 (Using the Periodic Task Manager)

在应用程序首页,点击 '定时任务' 按钮,导航至类别面板,并选择 '创建任务(new cron job)'。

定时任务管理器

  1. 任务状态: 定义任务的生命周期,包括运行 (Run)、停止 (Stop)、暂停 (Pause) 和删除 (Delete)。任务必须处于 '运行' 状态且已保存才能被调度执行。
    • 备注: 应用程序重启后,'暂停' 状态的任务将自动恢复为 '运行','删除' 状态的任务将被永久移除。
  2. 任务名称: 为任务指定一个唯一的标识符。
  3. 执行频率 (Cron表达式): 基于标准的Cron表达式配置任务的执行频率,支持手动编辑。
  4. 预设频率选项: 提供常用执行频率的快捷选择,例如每小时、每日、每周、每月、每年等。
  5. 指令来源类型: 选择指令的获取方式。'Prompt' 表示来源于应用程序本地指令库,'HTTP' 表示来源于连接器API。
  6. 指令来源标识: 根据选定的来源类型,输入相应前缀(如 'P' for Prompt, '_H' for HTTP)来定位具体的指令或API。
  7. 结果处理类型: 定义任务执行结果的去向。'History' 表示本地日志记录,'HTTP' 表示回传至连接器进行处理。
  8. 结果回传目标: 若选择 'HTTP' 结果处理类型,需指定连接器的具体API端点(例如输入 '_H' 前缀选择)。'History' 类型无需此设置。
  9. 单次执行: 勾选此项,任务将在执行一次后自动失效。
  10. 任务完成邮件通知: 启用后,任务执行完成后将发送邮件通知。
  11. 保存任务: 将当前配置保存并加入调度队列,任务将在指定时间开始执行。
  12. 立即执行 (调试): 仅用于手动触发一次任务执行,不保存当前配置。主要用于任务调试。

附注1: 已保存的任务可以通过导航至 '定时任务类别面板' -> '任务列表' 进行加载和编辑。 附注2: Empty Input Silenced 选项:当任务输入内容为空时,选择是否静默跳过本次执行,避免无意义的错误报告。

最佳实践用例:

  • 用例A: 应用程序本地提示词生成内容,并回传至连接器进行后续处理。
  • 用例B: 从连接器API动态获取提示词,在应用程序本地生成内容,并将结果回传至连接器。

T2-定时任务类别面板 (Scheduled Task Category Panel)

在应用程序首页,点击 '定时任务' 按钮,进入功能类别面板。

定时任务面板

A. 主功能区入口: 包含各项任务管理功能的快捷访问。 B. 使用情况统计: 展示任务执行概览数据。 C. 辅助功能菜单: 提供附加工具和设置选项。

  1. 创建字面常量: 定义不可变的文本或数值数据。
  2. 创建HTTP变量: 配置用于HTTP请求的动态参数。
  3. 创建周期性任务: 配置周期性自动执行的任务。
  4. 字面常量列表: 管理所有已定义的字面常量。
  5. HTTP变量列表: 管理所有已定义的HTTP变量。
  6. 任务列表: 管理所有已创建的周期性任务。
  7. 任务执行日志: 查看所有已执行任务的详细日志记录。

附注: 新增 'HTTP定时任务(new http job)' 功能,专门用于周期性发起HTTP请求。

从连接器获取指令 (Retrieving Instructions from Connector)

此功能允许应用程序通过HTTP请求,从连接器的API接口动态获取执行指令或数据。一个完整的HTTP请求通常包含URL地址、请求方法 (GET/POST等)、请求头 (Header) 和请求体 (Body/Form Data) 等组成部分。

以下步骤将指导您如何配置HTTP请求所需的常量与变量,类似于使用HTTP调试工具。

  1. 定义字面常量,例如API端点、授权凭证等。
  2. 定义HTTP变量,例如请求URL、请求头等动态参数。

T3-定义字面常量 (Defining Literal Constants)

在类别面板中,选择 '创建字面常量' 以进入编辑器。

字面常量编辑

  1. 常量类型: 可选择 '全局 (Global)' 或 '局部 (Variable)' 作用域。
  2. 常量名称: 为常量指定唯一的标识符。
  3. 常量值: 输入常量对应的具体数据。
  4. 保存: 提交并保存常量定义。

T4-定义HTTP变量 (Defining HTTP Variables)

HTTP变量使用 {{}} 作为定界符。变量命名规则:由字母、数字和下划线组成,且必须以字母或下划线开头。

在类别面板中,选择 '创建HTTP变量' 以进入编辑器。

HTTP变量编辑

  1. 变量名称: 为HTTP请求变量指定唯一的标识符。
  2. 请求方法: 选择HTTP请求的方法,支持GET、POST等。
  3. 请求URL: 输入目标API的URL地址。
  4. 请求数据类型: 选择数据类型,包括 '请求头 (Header)'、'查询参数 (Param)' 和 '请求体数据 (Data)'。
  5. 参数名称: 输入请求数据的键名。
  6. 参数值: 输入请求数据的值,支持使用 {{}} 引用字面常量。
  7. 删除参数: 移除当前请求数据条目。
  8. 新增参数: 添加一个新的请求数据条目 (包括类型、名称、值和删除选项)。
  9. 保存: 提交并保存HTTP变量定义。

T5-任务执行日志 (Task Execution Logs)

在类别面板中,选择 '任务执行日志' 以查看列表。

任务执行日志

  1. 日志概览: 显示任务的状态 (S: 成功, F: 失败)、执行时间及任务名称。
  2. 执行阶段状态: 详细展示任务在不同阶段的执行情况:
    • In (Input): 指令获取阶段 (S: 成功, F: 失败)
    • Proc (Process): 内容生成阶段 (S: 成功, F: 失败)
    • Out (Output): 结果输出阶段 (S: 成功, F: 失败)
  3. 错误信息: 若任务执行失败,此处将显示具体的错误详情;成功时为空。
  4. 操作选项:
    • 删除: 移除此条日志记录。
    • 复制: 复制JSON格式的详细日志内容。

T6-HTTP定时任务管理器 (HTTP Scheduled Task Manager)

HTTP定时任务与传统的周期性任务(Cron定时任务)的主要区别在于,前者仅周期性地发起HTTP请求,而不对响应数据进行后续处理或内容生成。

备注: 任务执行成功通常以HTTP状态码 200 表示,此功能特别适用于定时触发后端服务。

HTTP定时任务管理器

  1. 任务状态: 与 T1 中的任务状态定义一致。
  2. 任务名称: 与 T1 中的任务命名规则一致。
  3. 执行频率 (Cron表达式): 与 T1 中的执行频率配置一致。
  4. 预设频率选项: 与 T1 中的预设频率选项一致。
  5. 指令来源类型: 默认为 'HTTP',表示任务直接发起HTTP请求。
  6. 指令来源标识: 输入目标HTTP请求的URL地址或HTTP变量标识。
  7. 结果处理类型: 默认为 'History',任务执行结果仅记录在应用程序本地日志中。
  8. 结果回传目标: 保持为空,因结果仅记录本地日志。
  9. 单次执行: 与 T1 中的单次执行设置一致。
  10. 任务完成邮件通知: 与 T1 中的邮件通知设置一致。
  11. 任务失败邮件通知: 勾选此项,仅当任务执行失败时发送邮件通知。
  12. 保存任务: 与 T1 中的保存功能一致。
  13. 立即执行 (调试): 与 T1 中的立即执行功能一致,用于测试不保存的HTTP请求。

重要提示: '任务失败邮件通知' 功能的启用,依赖于同时开启 '任务完成邮件通知' 和 '设置 (Setting) -> 邮件通知 (emailNotif)'。