afterStreaming 会在执行完 onStreamingEnd 后执行,用于下一步的处理,因此也叫 TaskRoutesTaskRoutes 顾名思义,是一系列的任务处理路由,将根据条件执行不同的任务。

单条件

如下的代码,用于在 onStreamingEnd 后输出结果:

---
afterStreaming: { 
    case condition {
      default { print($output) }
    }
  }
---

hi

其中的 output 值是 LLM 处理了 hi 后的结果,可能是:Hello, I'm xxx ...

多条件

---
afterStreaming: {
    condition {
      "error"       { output.length < 1 }
      "json-result" { jsonpath("${'$'}.store.*") }
    }
    case condition {
      "error"       { notify("Failed to Generate JSON") }
      "json-result" { execute("sample.shire") } /* go to execute sample.shire */
      default       { notify("Failed to Generate JSON") /* mean nothing */ }
    }
  }
---

当 LLM 返回的结果是 JSON 时:

{
  "store": {
    "book": [
      {
        "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      }
    ]
  }
}

可以匹配到 json-result 条件,然后执行 sample.shire