周期性定时任务

本功能的整体创意来源于阿西莫夫三大定律的第二条,人工智能必需服从人类的命令。

[GaI] 应用端为人机交互界面。 [PyGai] 连接器为机器与机器之间的命令交互管道。

PyGai in Github

通过 [PyGai] 连接器,设定好周期性定时任务,[Gai] 应用端去执行这些任务并返馈结果,从而实现释放你的时间,把日复一日的周期性工作交给电脑来完成。

我们可以认为任务,就是对人工智能所发起的命令。这里有三个关键点:

  • 谁发起的命令
  • 具体命令是什么
  • 结果返馈给谁

  • 任务来源
    应用端任务来源有两种,本地机和连接器。

    • 来源于本地机
      可以认为是来源于本地机提示语库,选中的提示语。

    • 来源于连接器
      可以认为是来源于HTTP请求发起后,HTTP响应返回的提示语。

  • 任务内容
    什么时间要干什么事情

    • 什么时间
      时间可以为每分钟,每小时,每天,每月,每年等。只要是符合 cron expression的时间设定都可以使用。
    • 干什么事情
      这就是你提示语中要干的事情。书写高质量有价值的提示语才是人与类人的主要区别。
  • 任务返馈
    应用端任务返馈有两种,本地机和连接器

    • 返馈给本地机
      在本地机保存完整的日志记录,含任务结果是否成功,任务收获图文内容。
    • 返馈给连接器
      在本地机保存完整的日志记录,同时传送给连接器,连接器可以再次处理。
    • 配套工具,邮件通知
      你可以在应用端设定在任务执行完成后发邮件到你指定的邮箱,来实现无需现场守值。

T1-使用定时任务管理器

应用首页,找到定时任务按钮,进入类目面板,找到任务创建。标注如下: 定时任务管理器

  1. 任务状态,run运行,stop停止,pause暂停(应用端重启后变运行),delete删除(应用端重启后删除);只有保存且run运行状态的任务才会到时执行。
  2. 任务命名
  3. 任务执行间隔时间,cron expression,可手动编写
  4. 任务执行间隔时间,常用选项:每时、每日、每周、每月、每年
  5. 任务来源类型,prompt为本地机保存的提示语,http为连接器输出的提示语
  6. 任务来源位置,通过手动输入前缀字符串(P或_H)来选取具体位置
  7. 任务返馈类型,history为本地机日志保存,http为连接器处理
  8. 任务返馈位置,类型history时无需指定,类型http时可输入前缀字符串(_H)选取位置
  9. 是否为单次任务
  10. 是否在执行完成时邮件通知
  11. 保存,保存即加入定时器处理队列,到时即会执行
  12. 运行,手动单次运行(无11保存之功能),多作调试之用

附1:若需加载已保存任务,可通过类目面板,定时任务,进入任务列表后选定编辑。

附2:新增Empty Input Silenced, 即输入内容为空时,是否要安静的跳过本次执行。

最佳实践:

  • 场景A,把本地机提示语生成的图文转连接器再处理

  • 场景B,从连接器获取提示语在本地机生成图文后转连接器再处理

T2-定时任务类目面板

应用首页,找到定时任务按钮,进入类目面板。标注如下:

A. 主功能区入口,B. 使用情况统计,C. 辅助功能菜单 定时任务面板

  1. 创建字面数据常量
  2. 创建HTTP数据变量
  3. 创建周期性定时任务
  4. 已创建的字面常量列表
  5. 已创建的HTTP变量列表
  6. 已创建的定时任务列表
  7. 已执行的定时任务日志信息

附:新版新增,HTTP定时任务。

从连接器获取提示语

即向连接器提示语API接口发起HTTP请求并获得HTTP响应。
HTTP请求构成,需要,地址URL,方法GET,头数据,表单数据等。

让我们像用HTTP调试工具一样来构建一个HTTP请求吧。

  1. 定义数据常量,如:API主机,API授权
  2. 定义HTTP数据,如:URL,Header

T3-定义数据常量

通过类目面板,找到字面常量创建,进入编辑器。标注如下: 字面常量编辑 1. 常量类型,global全局,variable局部 2. 常量名称 3. 常量数据 4. 保存

T4-定义HTTP变量

变量用{{}}符号作为定界符
变量名,通常由字母、数字和下划线组成,且开头必须是字母或下划线

通过类目面板,找到HTTP变量创建,进入编辑器。标注如下: HTTP变量编辑

  1. 变量名称
  2. 请求方法,get、post可选
  3. 请求地址,URL地址
  4. 请求数据,类型,header头数据,param查询参数,data表单数据
  5. 请求数据,名称
  6. 请求数据,赋值
  7. 请求数据,条目删除
  8. 请求数据,条目新增,即新增4,5,6,7.
  9. 保存

T5-定时任务执行日志

通过类目面板,找到任务日志,进入列表。标注如下:

任务执行日志

  1. 日志标题,","号分隔数据为:状态、时间、名称

    状态:S成功,F失败

  2. 阶段状态

    In: Input,获取提示语,S成功,F失败;

    Proc: Process,生成内容,S成功,F失败;

    Out: Output,内容输出,S成功,F失败;

  3. 报错信息,若成功为空否则为错误信息

  4. 操作选项

    delete: 删除此条日志

    copy: 复制JSON格式祥细日志信息

T6-HTTP定时任务管理器

HTTP定时任务与Cron定时任务的主要区别是,HTTP定时任务仅定时发起HTTP请求。并不会对HTTP请求的响应数据进行后续处理。

注:200状态码即为执行成功,这比较适合定时执行HTTP服务端任务。

HTTP定时任务管理器

  1. 任务状态, 同crontab.
  2. 任务命名, 同crontab.
  3. 任务执行间隔时间,同crontab.
  4. 任务执行间隔时间,常用选项:同crontab.
  5. 任务来源类型,指定为http.
  6. 任务来源位置,指定为http url.
  7. 任务返馈类型,指定为history, 本地机日志保存.
  8. 任务返馈位置,类型history时无需指定.
  9. 是否为单次任务, 同crontab.
  10. 是否在执行完成时邮件通知, 同crontab.
  11. 是否在运行失败时发送邮件通知.
  12. 保存,同crontab.
  13. 不保存运行,多作调试之用, 同crontab.

注:“Sendmail on task failure.”(开启此功能需同时开启“Task Completion Email Notification”和“Setting->emailNotif”)