《扣子开发AI Agent智能体应用 人工智能技术丛书 宋立桓 王东健 陈铭毅 程东升 清华大学出版社》【摘要 书评 试读】- 京东图书
本文直接使用扣子平台默认的豆包大模型,省去来接入其他大模型的步骤,方便读者快速入门扣子AI智能体开发。
2.6.1 设计思路
本入门案例非常简单,初学者容易上手。扣子平台旨在助力用户迅速搭建基于大模型的各类智能体。扣子支持Function Calling(工具调用),让大模型拥有智能化调用工具的能力,为你的智能体添加私有知识和多种技能,极大地拓展智能体的能力边界,一个应用就能满足多种场景需求。
众所周知,智能体是基于对话的AI项目,它的交互均是基于LUI的。AI应用由工作流串起来,工作流就是把AI应用的逻辑分成几个步骤,每个步骤称为一个节点。本案例构建的示例工作流节点如图2-3所示,除了开始和结束节点外,这个工作流中只添加了一个大模型节点来处理用户任务。你可以将用户输入的内容传输给大模型进行处理并返回结果。包含大模型节点的工作流可单独指定模型的各项配置参数,通过附加的提示词约束模型的行为,使智能体在指定场景下的运行过程更稳定、输出内容更符合预期效果。
图2-3 工作流架构案例
2.6.2 直接使用豆包大模型
扣子平台默认只能使用预置的模型,例如豆包大模型。本文直接使用这个预置的豆包大模型来进行讲解,方便读者更快速入门。
2.6.3 构建工作流
打开扣子官方网站,选择“工作空间”→“资源库”,在资源库页面上依次单击“+ 资源”按钮→“工作流”菜单项,如图2-12所示。
图2-12 在工作空间“资源库”中单击“+ 资源”按钮创建工作流
打开的“创建工作流”窗口如图2-13所示,工作流名称输入“doubao_tasks”,工作流描述输入“使用豆包处理问题”。单击“确认”按钮,将打开工作流编辑页面,如图2-14所示。后面我们在工作流上添加、配置节点等操作都是在这个页面上进行的,读者可以在扣子网站上熟悉一下这个页面。
图2-13 工作流的基本信息
图2-14 工作流编辑页面
每个工作流都有一个开始节点和一个结束节点,这两个节点不能删除,必须存在。开始节点定义输入参数(有哪几个输入参数,分别是什么类型,起什么作用),以便后续节点引用;结束节点定义输出参数(有哪几个输出参数,分别是什么类型,是什么意思);而其他的节点就是处理过程,用来完成设计的功能。因此,实际上一个工作流完全可以看作一个函数,开始节点定义输入参数,结束节点定义输出参数,中间节点完成函数功能。
如图2-15所示,在开始节点的输入参数配置页面中,输入变量名user_input,变量类型选择Str.String字符串类型。开始节点必须设定输入参数,这个界面对应机器人(智能体)对话界面,用来接收用户的输入。
图2-15 开始节点配置
工作流接收到用户输入后,就要将输入交给大模型进行文本处理,所以开始节点后面需要增加一个大模型节点。如图2-16所示,在工作流编辑页面下方,单击“+ 添加节点”按钮,在节点类型列表中选择大模型,工作流编辑页面上将增加一个大模型节点,如图2-17所示。
图2-16 添加节点
图2-17 连接开始节点、大模型节点和结束节点
连接开始节点、大模型节点和结束节点,节点连接顺序是“开始→大模型→结束”。节点之间需要用连线表示先后关系,把鼠标放在图中的小蓝点上,按下鼠标右键拖出一条线,指向下一个节点的边框的小蓝点,就有一条线把这两个节点连接在一起,表示前后顺序关系。注意,节点只有连上线之后,后面的节点才能获取前面节点的信息。
单击大模型节点,打开大模型配置窗口,配置大模型节点,如图2-18所示。扣子提供了很多大模型供选择,在页面上选择模型时,就可以发现火山方舟提供的豆包模型已经接入进来了。
图2-18 大模型节点默认接入火山方舟的豆包模型
大模型节点配置窗口如图2-19所示,大模型节点的输入就是开始节点的输出,单击右侧的变量值输入框,就会打开一个下拉列表,选择user_input,这就是开始节点中定义的变量user_input。大模型必须配合提示词才能工作,且提示词的好坏影响最终的结果。注意提示词中的{{input}}表示用户输入的文本内容。然后给大模型设置输出变量output,变量类型选择Str.String字符串类型。
图2-19 大模型节点配置
结束节点配置窗口如图2-20所示,在工作流的结束节点中,新增变量名output,参数值选择“大模型-output”,表示引用大模型节点的输出output。我们可以体会到,从开始节点到大模型节点再到结束节点之间数据信息的流动。
图2-20 结束节点配置
各节点的参数配置如表2-1所示。
配置完成后,单击工作流编辑页面(见图2-17)底部的“试运行”按钮,测试工作流。如图2-21所示,用户输入“请以李白的风格写一首诗”进行测试,待所有节点都运行成功(节点会展示绿色边框)后,可以点击某个节点下方“运行成功”右边的“展开结果”,查看这个节点的运行结果。模型输出《逍遥游世》这首诗,读起来还真有李白的诗韵,果然是目前地表最强的大模型之一。
图2-21 工作流试运行结果
测试工作流没有问题后,单击工作流编辑页面(见图2-16)右上角的“发布”按钮,打开“发布”窗口如图2-22所示,输入版本号和版本描述。这个工作流成功发布后,再单击“工作空间”→“资源库”,在资源库页面上的资源列表中可以看到该工作流的名称,读者可以确认一下。
图2-22 发布工作流
2.6.4 创建智能体
如图2-23所示,依次单击扣子平台的“工作空间”→“项目开发”,在“项目开发”页面上单击页面右上角的“+ 创建”按钮,弹出如图2-24所示的“创建”窗口,选择左边的创建智能体,单击“创建”按钮,创建对话式智能体。
图2-23 单击“+ 创建”按钮
图2-24 创建智能体
如图2-25所示,在“创建智能体”窗口中,输入智能体名称和智能体功能介绍的相关信息。
图2-25 智能体基本信息
单击“确认”按钮,将打开智能体编排页面,如图2-26所示。在智能体编排页面(记住这个智能体编排页面和前面提到的工作流编辑页面,我们大部分工作都是在这两个页面上完成的)上,找到页面中间“技能”区域的“工作流”,在“工作流”右侧单击加号图标添加工作流。
图2-26 智能体编排页面(局部截图)
如图2-27所示,在添加工作流对话框的左侧单击“资源库工作流”,找到我们自建的doubao_tasks工作流,并在doubao_tasks右侧单击“添加”按钮。
图2-27 添加工作流对话框(局部截图)
工作流添加进来后,我们可以直接试运行看看测试结果。在智能体编排页面右边的“预览与调试”区域,如图2-28所示,输入内容“给我一些学习人工智能的建议?”,预览一下智能体实现的效果。可以看到效果比较理想。
图2-28 试运行结果