# Flow名称,展示用
name: 测试工作流
# Flow描述,将影响大模型效果。
description: |
  这是一个测试工作流,用于测试工作流的执行流程。
# Flow配置检查状态(由系统填充)
checkStatus:
  # 是否调试过
  debug: true
  # 是否连通
  connectivity: true
# Flow的基本配置
basicConfig:
  # 起始步骤ID
  startStep: 7da0d4a6-be66-448a-b60e-cba49b3a18f1
  # 结束步骤ID
  endStep: 0ec9a020-d498-4a64-b53c-d35fbd0c4a59
  # 当前聚焦位置
  focusPoint:
    x: 0.0
    y: 0.0

# Flow出错时的错误处理步骤
onError:
  # 是否直接使用大模型自动向用户报错?
  use_llm: false
  # 不使用大模型时,使用以下模板拼接提示信息并返回
  output_format: |
    **当前工作流{{ flow.name }}执行发生错误!**

    错误信息:{{ error.message }}

# 各个节点定义
steps:
  # 节点的Pool ID
  7da0d4a6-be66-448a-b60e-cba49b3a18f1:
    node: api
    # 节点名称
    name: 查询数据
    # 节点描述
    description: 从API中查询测试数据
    # 节点在画布上的位置
    pos:
      x: 100
      y: 100
    # 节点的参数
    params:
      # 是否启用自动填参
      enable_filling: true
      # API Endpoint名称
      url: https://api.example.com/test
      method: get
      content_type: application/json
      timeout: 300
      body: {}
      query: {}
  a01ea160-b026-420c-a8c0-7d9208409018:
    node: llm
    name: 生成回复
    description: 使用大模型生成回复
    # 节点在画布上的位置
    pos:
      x: 300
      y: 100
    params:
      # 是否将输出返回给用户
      to_user: true
      # 大模型温度(随机化程度)
      temperature: 0.7
      # 上下文信息中包含的步骤历史数量
      step_history_size: 3
      # 历史对话记录数量
      history_length: 0
      # 系统提示词,jinja2语法
      system_prompt: 你是一个擅长Linux系统性能优化,且能够根据具体情况撰写分析报告的智能助手。
      # 用户提示词,jinja2语法,多行;可以使用step name引用对应的数据;可以使用storage[-1]引用上一个步骤的数据
      user_prompt: |
        上下文:
        {{ context }}

        当前时间:
        {{ time }}

        主机信息:
        {{ start.output.result.machines[0] }}

        测试数据:{{ storage[-1].output.result.machines[0].data }}

        使用自然语言解释这一信息,并展示为Markdown列表。
  0ec9a020-d498-4a64-b53c-d35fbd0c4a59:
    node: suggest
    name: 问题推荐
    description: 问题推荐
    # 节点在画布上的位置
    pos:
      x: 500
      y: 100
    params:
      # 是否将推荐的问题推送给用户
      to_user: true
      # 推荐问题的总数量
      num: 3
      # 问题推荐配置
      configs:
        - flow_id: 4eb1dc31-23d2-42a3-9e8a-14e83460610b
          question: 这是固定的推荐问题

# 各个边定义
# 格式:边ID: 来源节点名称 --> 目标节点名称
# 若来源节点有多个输出分支,则使用"节点名称.分支名称"表示
edges:
  - id: edge_00
    edge_from: 7da0d4a6-be66-448a-b60e-cba49b3a18f1
    edge_to: a01ea160-b026-420c-a8c0-7d9208409018
    # 边的类型,可不填
    type: normal
  - id: edge_01
    edge_from: a01ea160-b026-420c-a8c0-7d9208409018
    edge_to: 0ec9a020-d498-4a64-b53c-d35fbd0c4a59
    type: normal