文档

最佳实践

更新时间:
一键部署

视频介绍

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

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

配置展示

image

配置方式

开始节点

想要查询天气情况,需要城市和日期,这两个变量需要外部服务传入,所以开始节点需要添加这两个参数,city、date。image

API调用节点

注册查询天气的接口:https://bailian.aliyun.com/sample/weather/queryV2。

说明

当前平台提供的是一个mock接口只为调试使用,不是真实数据,返回结构为:

{
    "status": "success",
    "errorInfo": "",
    "data": "小到中雨,气温15~27℃"
}

点击增加输入参数,将API的入参和当前传入的city、date参数进行映射,获取变量的方式请参考流程变量含义及取值方式说明

image

大模型节点

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

image

重要

prompt中用到了API节点产生的结果,关联表达式为${svcVars.Api_XWndOx.response.data},注意这个Api_XWndOx为API调用节点的id,使用例子内的示例时,Api_XWndOx需要替换成自己API调用节点的节点id,具体取值方式请参考流程变量含义及取值方式说明

可以使用提示功能,在prompt录入区域输入"/",API节点的输出前缀会出现在提示下拉当中,由于接口的结果为json,要获取的字段为data,所以最终的表达式为${svcVars.Api_XWndOx.response.data}。

image

脚本节点

image

脚本详情

import json
import logging
json_string = svcVars['LLM_RiKvop']['response']['text']
data = json.loads(json_string)
logging.info(data)
prefix_str = '天猫精灵将为你播放'
media_name = data['mediaName']
singer_name = data['singerName']
return f"{prefix_str} {singer_name} 的 {media_name},收听完整版请下载天猫精灵APP收听完整版"
说明

json_string = svcVars['LLM_RiKvop']['response']['text'] 是获取大模型的结果,因为大模型结果存储结构是svcVars.LLM_RiKvop.response.text,所以要按照上面的写法获取,注意这个LLM_RiKvop为大模型节点的id,使用例子内的示例时,LLM_RiKvop需要替换成自己大模型节点的节点id,这个可以通过右上角的ID复制功能,如下图。image

结束节点

可以定制最终的结果KEY(示例中为Answer),映射的值填写表达式(示例中为${svcVars.Script_oTmxWW.response.scriptResult}),获取的是脚本节点执行的结果。

image

最终结果展示

点击流程image按钮,输入参数值,开始测试。

image

image

最终结果如下,可以在sdk调用后获取内容,或者直接返回给前端做显示。

{
  "Answer": "天猫精灵将为你播放 周杰伦 的 晴天,收听完整版请下载天猫精灵APP收听完整版"
}

  • 本页导读 (1)
文档反馈