工作簿

使用工作簿,用户可以将任何类型(工作流和动作)的多个实体组合到一个文档中并上传到 Mistral 服务。上传工作簿时,Mistral 将解析它并将其中包含的工作流和动作保存为独立的对象,这些对象可以通过各自的 API 端点(/workflows 和 /actions)访问。完成操作后,工作簿将不再参与后续操作。用户可以像直接上传工作流/动作一样启动工作流并使用对工作流/动作的引用。但是,如果需要修改这些独立的对象,用户可以修改相同的工作簿定义并重新上传到 Mistral(或者,当然,用户也可以独立地进行修改)。

命名空间

值得注意的是,当使用工作簿时,Mistral 会使用其名称作为前缀来生成工作簿中包含的工作流和动作的最终名称。为了说明这个原理,请看下面的图

../../_images/workbook_namespacing.png

因此,在工作簿上传后,其工作流和动作会成为独立的对象,但名称略有不同。

YAML 示例

---
version: '2.0'

name: my_workbook
description: My set of workflows and ad-hoc actions

workflows:
  local_workflow1:
    type: direct

    tasks:
      task1:
        action: local_action str1='Hi' str2=' Mistral!'
        on-complete:
          - task2

      task2:
        action: global_action

  local_workflow2:
    type: reverse

    tasks:
      task1:
        workflow: local_workflow1

      task2:
        workflow: global_workflow param1='val1' param2='val2'
        requires: [task1]

actions:
  local_action:
    input:
      - str1
      - str2
    base: std.echo output="<% $.str1 %><% $.str2 %>"

注意: 即使工作簿内部对象的名称在上传后会发生变化,Mistral 仍然允许使用原始工作簿中声明的本地名称来引用这些对象。

属性

  • name - 工作簿名称。必需。

  • description - 工作簿描述。可选

  • tags - 带有任意逗号分隔值的字符串。可选

  • workflows - 包含工作流定义字典。可选

  • actions - 包含临时动作定义的字典。可选

有关 Mistral 工作流语言本身的更多详细信息,请参阅 Mistral 工作流语言规范