Skip to main content
工作流

工作流应用

工作流应用将复杂的任务拆分成一系列有序执行的步骤,以降低系统复杂度。在阿里云百炼,通过工作流组合使用大模型、API和函数计算等节点,可有效降低编码成本。本文介绍如何创建工作流。

应用介绍

为什么使用工作流应用

工作流是一种将复杂任务拆分为一系列有序步骤的方法,旨在简化系统复杂度,提高工作效率。在现代软件开发和业务流程管理中,工作流应用变得尤为重要。通过在阿里云百炼平台上创建工作流应用,可以清晰地定义任务的执行顺序、责任分配以及各步骤之间的依赖关系,从而实现自动化和优化。 工作流应用有许多使用场景,如:
  • 旅行规划:用户可通过工作流插件选择目的地等参数,自动生成旅行计划,包括航班、住宿、景点推荐等。
  • 报告分析:针对复杂数据集,通过组合数据处理、分析和可视化插件,生成结构化和格式化的分析报告,满足不同业务需求。
  • 客服支持:通过自动化工作流处理客户咨询,包括问题分类等,提高客服响应速度和准确性。
  • 内容创作:实现文章、市场营销文案等内容的生成,用户只需输入主题和要求,系统自动生成符合要求的文稿。
  • 教育培训:通过工作流设计个性化学习方案,包括学习进度跟踪、测评等,实现学生的自主学习。
  • 医疗问诊:根据患者输入的症状,通过组合多种分析工具生成初步诊断或推荐相关检查,辅助医生进行进一步判断。

具体案例

案例一:识别诈骗信息

本案例以创建一个判断短信是否涉及电信诈骗的工作流应用为例进行说明,需要用到开始节点、大模型节点和结束节点。
1

创建工作流应用

访问应用管理页面,单击创建应用 > 工作流应用,填写应用名称后单击立即创建
2

添加大模型节点

将左侧大模型节点拖入画布配置页面,在其配置面板中配置以下参数:
  • 模型配置:选择 千问-Plus-latest
  • 提示词
分析并判断所给信息是否存在诈骗嫌疑。给出肯定答案,是否存在诈骗嫌疑。
处理要求:细致审查信息内容,关注关键词汇和典型诈骗模式,如请求紧急转账、提供个人信息、承诺不切实际的利益等。
操作步骤:
1. 识别信息中的关键要素,包括但不限于发件人身份、提出的请求、承诺的回报及任何紧迫性表述。
2. 对比已知的诈骗案例特征,检查信息中是否有类似的操作手法或语言模式。
3. 评估信息的整体合理性,考虑所提要求是否符合常规逻辑和常规流程。
4. 若信息中包含链接或附件,不要直接点击或下载,以避免潜在的安全风险,并提醒用户注意此类内容的危险性。
输出格式:明确指出该信息是否展现出诈骗的特征,并简要说明判断依据。
  • 用户提示词判断"${sys.query}"该信息是否涉嫌诈骗信息。
配置完成后关闭面板,再连接开始节点和大模型节点。
3

连接结束节点

连接大模型节点和结束节点。再单击结束节点,在其配置面板的编辑框中输入 / 插入变量 大模型1/result,未提及的参数保持默认即可。工作流包含三个依次连接的节点:开始大模型 1结束
4

测试工作流

单击右上角测试,输入 你的包裹已在驿站存放多日未提取,请抽空过来取件,运行工作流查看输出结果。继续输入 你有一条中奖100万的信息,请查收,验证识别效果。
5

发布应用

如果当前工作流应用可以正常工作,请单击右上角发布应用,以备后续 API 调用。

节点类型

工作流由多种功能节点组合而成。

基础节点

AI 节点

工具节点

数据处理节点

发布与调用

完成工作流配置和测试后,单击右上角发布按钮发布应用。发布后可通过 API 调用工作流应用。
如需使用 Responses API 调用,请参阅 Responses API 调用

前提条件

  1. 已获取 API Key 并配置 API Key 到环境变量。
  2. 已创建工作流应用,并在应用管理页面的应用卡片上获取 APP_ID。
  3. 若通过 DashScope SDK 调用,需要安装 DashScope SDK。

快速开始

import os
from http import HTTPStatus
from dashscope import Application

response = Application.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='APP_ID',  # 替换为实际的应用 ID
    prompt='你是谁?')

if response.status_code != HTTPStatus.OK:
    print(f'request_id={response.request_id}')
    print(f'code={response.status_code}')
    print(f'message={response.message}')
else:
    print(response.output.text)

多轮对话

相比于单轮对话,多轮对话可以让大模型参考历史对话信息,更符合日常交流的场景。
import os
from http import HTTPStatus
from dashscope import Application

def call_with_session():
    response = Application.call(
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='APP_ID',
        prompt='你是谁?')

    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        return response

    responseNext = Application.call(
                api_key=os.getenv("DASHSCOPE_API_KEY"),
                app_id='APP_ID',
                prompt='你有什么技能?',
                session_id=response.output.session_id)

    if responseNext.status_code != HTTPStatus.OK:
        print(f'request_id={responseNext.request_id}')
        print(f'code={responseNext.status_code}')
        print(f'message={responseNext.message}')
    else:
        print('%s\n session_id=%s\n' % (responseNext.output.text, responseNext.output.session_id))

if __name__ == '__main__':
    call_with_session()

自定义参数传递

调用工作流应用时,动态参数统一封装在 input 对象中,该对象包含两个关键字段:
  • prompt:传递用户的主要输入内容。这部分内容会自动映射到工作流中名为 {{query}} 的内置变量,无需手动定义。
  • biz_params:以键值对形式传递自定义的业务参数(例如 {"city": "杭州"})。这些参数需要在工作流的开始节点中预先定义,之后便可作为全局变量在流程中的任意节点中通过 {{参数名}} 的方式引用。
详细使用说明请参阅通过 API 传递自定义参数