配置流程编排实现根据天气情况播放歌曲

更新时间:

本次实验任务是通过使用流程编排的功能,在流程画布中配置一个让天猫精灵根据所在地的天气情况随机播放一首歌曲的流程。

场景简介

本次实验任务是通过使用流程编排的功能,在流程画布中配置一个让天猫精灵根据所在地的天气情况随机播放一首歌曲的流程。我们会用API调用节点调用天气接口,然后将天气结果传入大模型节点的Prompt中,最终大模型推荐了一首歌曲,我们再利用脚本节点将大模型推荐的歌曲进行最终结果的拼接。

流程编排提供低代码拖拉拽的交互方式,方便开发者快速搭建符合业务场景的workflow,最终通过API调用到自己的系统或产品中。

image

费用说明

本实验预计产生费用0.1元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

背景知识

本场景主要涉及以下云产品和服务:

  • 大模型服务平台百炼

    基于通义系列大模型和三方大模型的一站式大模型服务平台,提供生成式大模型的全流程应用工具和企业大模型的全链路训练工具。

您可扫描下方二维码或者钉钉搜索钉钉群号: 77600022533,加入阿里云百炼答疑群。

image

前提条件

云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额充足。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

开通大模型服务平台百炼

本步骤指导您如何开通大模型服务平台百炼,如果您已开通过,请跳过此步骤。

说明

大模型服务平台百炼为首次开通服务的用户提供免费试用额度,开通的阿里云主账号与其RAM子账号共享免费试用额度。免费试用额度从开通阿里云百炼或模型申请通过之日起计算有效期,有效期一般是30~180天不等。

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》后,单击进入实操

    image

  2. 前往阿里云百炼控制台,如果页面顶部显示以下消息,您需要开通阿里云百炼的模型服务,以获得免费额度。如果未显示该消息,则表示您已经开通,请跳过此步骤。

    image

  3. 在弹出的对话框中,勾选我已阅读并同意《模型管理服务协议》,单击确认开通

    image

新建编排流程

流程编排是一种面向开发者的可视化开发工具,支持LLM、API、脚本等类型节点,旨在简化接入大型语言模型(LLM)流程,同时提供应用流程的全生命周期管理,包括流程的编排、试验、部署等,为开发者提供自定义AI应用开发一站式服务。

  1. 前往阿里云百炼控制台

  2. 在左侧导航栏中,选择应用组件 > 流程管理

    image

  3. 流程管理页面,单击新建流程

    image

  4. 流程基础信息对话框中,自定义流程名称流程描述,单击创建流程

    image

配置开始节点

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

  1. 选中开始节点,拖拽至右侧画布页面。

    image

  2. 在画布的开始节点中,单击增加输入参数,根据如下说明配置两个参数。

    参数key

    来源

    类型

    city

    模型识别

    string

    date

    模型识别

    string

    image

配置API节点

API调用节点允许您的AI应用使用HTTP协议与外部服务进行通信,以便与外部数据和功能进行集成和交互。

本步骤中注册查询天气的接口,API地址为https://sample-on-query-stszruxqnc.cn-beijing.fcapp.run/queryWeather

说明

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

{
    "status": "success",
    "errorInfo": "",
    "data": "小到中雨,气温15~27℃"
}
  1. 选中API调用节点,拖拽至右侧画布页面。

    image

  2. 在画布中,将API节点和开始节点连接起来。

    image

  3. 在画布的API调用节点中,API地址输入https://sample-on-query-stszruxqnc.cn-beijing.fcapp.run/queryWeather,单击增加输入参数,将当前传入的city、date参数进行映射。

    说明

    获取变量的方式请参考流程变量含义及取值方式说明

    KEY

    VALUE

    city

    ${bizVars.city}

    date

    ${bizVars.date}

    image

配置大模型节点

大模型节点,用于关联包括但不限于官方模型、SFT模型,旨在使用大模型能力。

  1. 选中大模型节点,拖拽至右侧的画布中。

    image

  2. 在画布中,将大模型节点和API节点连接起来。

    image

  3. 在大模型节点中,选择大模型为通义千问-Max,输入示例Prompt。

    示例Prompt

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

    您需要将示例Prompt中天气描述的参数Api_yBUrVU替换成API节点的节点id。

    image

    重要

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

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

    image

配置脚本节点

脚本节点,是面向开发者提供简单的代码开发能力。目前支持JavaScript、PythonGroovy。Code节点中的代码封装在函数中,返回语句用于输出函数的结果。返回的任何结果都可以在后续步骤中使用。

本步骤将示例脚本配置到脚本节点中,并完成校验。

  1. 选中脚本节点,拖拽至右侧画布页面。

    image

  2. 在画布中,将脚本节点和大模型节点连接起来。

    image

  3. 脚本节点中,脚本类型选择python,在脚本内容输入如下示例脚本。

    说明

    您需要将示例脚本的LLM_bYGWO4替换成大模型节点的节点id。

    import json
    import logging
    json_string = svcVars['LLM_bYGWO4']['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收听完整版"

    image

    说明

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

    image

配置结束节点

结束节点,在一个流程中不一定唯一,有多个分支的流程需要多个结束节点,每个结束节点需要单独配置返回的参数结构。

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

image

  1. 选中结束节点,拖拽至右侧画布页面。

    image

  2. 在画布中,将结束节点和脚本节点连接起来。

    image

  3. 在结束节点中,输入${svcVars.Script_NP47iN.response.scriptResult}

    说明

    您需要将表达式中的Script_NP47iN替换为脚本节点的节点ID。

    image

最终结果展示

  1. 在画布页面,单击图标。

    image

  2. 在流程测试面板,输入参数值,单击确定,开始测试。

    image

  3. 等待测试完成。

    image

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

    image

    以上,所有的实验内容就操作完成了。

    说明

    如果您在流程发布后,将该流程关联新建应用或已有应用,在测试或调用应用时就会产生一定的费用,详情请参见计费项,否则不会产生费用。

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除流程,再结束实操。

    • 删除流程。

      1. 前往阿里云百炼控制台

      2. 在左侧导航栏中,选择应用组件 > 流程管理

        image

      3. 流程管理页面,找到您创建的流程,单击删除

        image

      4. 流程删除对话框中,单击确认删除

        image

    • 删除流程后,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定

      image

  • 在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image