视频介绍
通过配置流程编排实现让天猫精灵随机播放一首歌曲
由于随机播放,我们可以根据您所处区域的天气来推荐一首歌曲,所以我们会用【API调用节点】调用天气接口,然后将天气结果传入【大模型节点】的Prompt中,最终大模型推荐了一首歌曲,我们再利用脚本节点将大模型推荐的歌曲进行最终结果拼接。
配置展示
配置方式
开始节点
想要查询天气情况,需要城市和日期,这两个变量需要外部服务传入,所以开始节点需要添加这两个参数,city、date。
API调用节点
注册查询天气的接口:https://sample-on-query-stszruxqnc.cn-beijing.fcapp.run/queryWeather。
当前平台提供的是一个mock接口只为调试使用,不是真实数据,返回结构为:
{
"status": "success",
"errorInfo": "",
"data": "小到中雨,气温15~27℃"
}
点击增加输入参数,将API的入参和当前传入的city、date参数进行映射,获取变量的方式请参考流程变量含义及取值方式说明。
大模型节点
示例Prompt:请根据以下关于天气的描述,给我推荐一首适合当前听的歌曲,仅输出歌名及歌手名即可,格式形如{"mediaName":"明天会更好","singerName":"群星"},歌曲名字段为mediaName,歌手名字为singerName,天气描述为:${svcVars.Api_Ns5FVh.response.data}
prompt中用到了API节点产生的结果,关联表达式为${svcVars.Api_Ns5FVh.response.data},注意这个Api_Ns5FVh为API调用节点的id,使用例子内的示例时,Api_Ns5FVh需要替换成自己API调用节点的节点id,具体取值方式请参考流程变量含义及取值方式说明。
可以使用提示功能,在prompt录入区域输入"/",API节点的输出前缀会出现在提示下拉当中,由于接口的结果为json,要获取的字段为data,所以最终的表达式为${svcVars.Api_Ns5FVh.response.data}。
脚本节点
脚本详情:
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复制功能,如下图。
结束节点
可以定制最终的结果KEY(示例中为Answer),映射的值填写表达式(示例中为${svcVars.Script_8jGXaZ.response.scriptResult}),获取的是脚本节点执行的结果。
最终结果展示
点击流程按钮,输入参数值,单击确定,开始测试。
最终结果如下,可以在sdk调用后获取内容,或者直接返回给前端做显示。
{
"Answer": "天猫精灵将为你播放 周杰伦 的 晴天,收听完整版请下载天猫精灵APP收听完整版"
}