如何使用流程编排处理复杂业务场景

更新时间:2024-03-16 00:55:42

我的收藏

本篇文档主要介绍流程编排中各流程变量的含义及操作方法。

定义

支持通过画布的方式,编排复杂业务流程对接大模型。完成流程编排后,可以直接创建关联新建应用或关联已有应用。提升接入大模型的效率,同时提供应用流程的全生命周期管理,包括流程编排、试验、部署等。

通过配置流程编排实现让天猫精灵随机播放一首歌曲

由于随机播放,我们可以根据您所处区域的天气来推荐一首歌曲,所以我们会用【API调用节点】调用天气接口,然后将天气结果传入【大模型节点】的Prompt中,最终大模型推荐了一首歌曲,我们再利用脚本节点将大模型推荐的歌曲进行最终结果拼接。

配置展示

音乐 - 图1

配置方式

开始节点

想要查询天气情况,需要城市和日期,这两个变量需要外部服务传入,所以开始节点需要添加这两个参数,city、date。音乐 - 图2 ### API调用节点 注册查询天气的接口:https://bailian.aliyun.com/sample/weather/queryV2。

说明

当前平台提供的是一个mock接口只为调试使用,不是真实数据,返回结构为:
  1. {
  2. "status": "success",
  3. "errorInfo": "",
  4. "data": "小到中雨,气温15~27℃"
  5. }
点击增加输入参数,将api的入参和当前传入的city、date参数进行映射,获取变量的方式请参考流程变量含义及取值方式说明

音乐 - 图3

大模型节点

示例Prompt:请根据以下关于天气的描述,给我推荐一首适合当前听的歌曲,仅输出歌名及歌手名即可,格式形如{“mediaName”:”明天会更好”,”singerName”:”群星”},歌曲名字段为mediaName,歌手名字为singerName,天气描述为:${svcVars.Api_XWndOx.response.data}

音乐 - 图4

重要

prompt中用到了api节点产生的结果,关联表达式为${svcVars.Api_XWndOx.response.data},注意这个Api_XWndOx为API调用节点的id,使用例子内的示例时,Api_XWndOx需要替换成自己API调用节点的节点id,具体取值方式请参考流程变量含义及取值方式说明 可以使用提示功能,在prompt录入区域输入”/“,api节点的输出前缀会出现在提示下拉当中,由于接口的结果为json,要获取的字段为data,所以最终的表达式为${svcVars.Api_XWndOx.response.data}。

音乐 - 图5

脚本节点

音乐 - 图6

脚本详情

说明

json_string = svcVars[‘LLM_RiKvop’][‘response’][‘text’] 是获取大模型的结果,因为大模型结果存储结构是svcVars.LLM_RiKvop.response.text,所以要按照上面的写法获取,注意这个LLM_RiKvop为大模型节点的id,使用例子内的示例时,LLM_RiKvop需要替换成自己大模型节点的节点id,这个可以通过右上角的ID复制功能,如下图。音乐 - 图7 ### 结束节点 可以定制最终的结果KEY(示例中为Answer),映射的值填写表达式(示例中为${svcVars.Script_oTmxWW.response.scriptResult}),获取的是脚本节点执行的结果。

音乐 - 图8

最终结果展示

点击流程音乐 - 图9按钮,输入参数值,开始测试。

音乐 - 图10

音乐 - 图11

最终结果如下,可以在sdk调用后获取内容,或者直接返回给前端做显示。
  1. import json
  2. import logging
  3. json_string = svcVars['LLM_RiKvop']['response']['text']
  4. data = json.loads(json_string)
  5. logging.info(data)
  6. prefix_str = '天猫精灵将为你播放'
  7. media_name = data['mediaName']
  8. singer_name = data['singerName']
  9. return f"{prefix_str} {singer_name} 的 {media_name},收听完整版请下载天猫精灵APP收听完整版"
  1. {
  2. "Answer": "天猫精灵将为你播放 周杰伦 的 晴天,收听完整版请下载天猫精灵APP收听完整版"
  3. }
反馈

上一篇: