《扣子编程:从零开始搭建智能体 卢欣欣 清华大学出版社》【摘要 书评 试读】- 京东图书
《扣子编程:从零开始搭建智能体》全书案例持续更新-CSDN博客
4.3.1“获取新闻”工作流的实现
“获取新闻”工作流是支撑“朝闻小助”智能体运转的核心引擎,该工作流整体流程如图4-3所示。下面将逐步拆解该工作流的搭建与配置过程。
图4-3 工作流整体流程
1.创建工作流
进入扣子编程主页,单击左侧菜单中的“资源库”选项,打开资源库管理页面。然后单击该页面右上角的“+ 资源”按钮,在弹出的下拉菜单列表中选择“工作流”。接着,在弹出的“创建工作流”窗口中,工作流名称填写get_daily_news,描述信息填写“根据分类获取新闻资讯”,最后单击“确认”按钮完成工作流的创建,如图4-4所示。
图4-4 创建工作流
2.配置开始节点
选中“开始”节点,在其右侧配置对话框中将默认输入变量名修改为“topic”。单击按钮展开详细设置,为其添加描述信息“新闻主题分类”,以便后续节点准确理解该参数含义,配置效果如图4-5所示。
图4-5 开始节点的配置对话框
3.获取新闻资讯
步骤1:添加头条新闻插件。 在“开始”节点后添加插件节点,进入插件市场搜索“新闻”关键字。找到“头条新闻”插件并展开,单击“getToutiaoNews”接口右侧的“添加”按钮,如图4-6所示。
图4-6 添加头条新闻插件
步骤2:配置插件参数。选中该插件节点,在右侧配置对话框中,将其输入参数绑定引用为“开始”节点的topic变量,实现动态获取指定分类的新闻,如图4-7所示。
图4-7 头条新闻插件节点的配置对话框
4.重构播报稿
步骤1:添加大模型节点。在插件节点后方接入一个大模型节点,用于将原始新闻转化为口语化的播报稿。
步骤2:绑定输入变量。为该节点添加两个输入参数:一个参数引用头条新闻插件的输出变量news(原始新闻内容),另一个参数引用开始节点的输入变量topic(新闻分类)。
步骤3:编写系统提示词。在系统提示词框中输入以下指令,规范大模型的改写逻辑(注意:在英文输入法下键入“{”可快速插入变量{{topic}})。
你是一名早间新闻主播,请根据输入的新闻内容,改写为一段200字左右的口语播报稿。
要求:
开场白:“听众朋友们早上好,欢迎收听朝闻小助,以下是今天的{{topic}}资讯:”
挑选最重磅的3-5条新闻进行播报,不要带序号,用‘首先’、‘另外’、‘值得关注的是’等词语串联。
结束语:“以上就是今天{{topic}}领域的最新动态,祝您拥有愉快的一天。”
步骤4:编写用户提示词。 在用户提示词框中输入以下内容。
原始新闻内容:{{news}},新闻分类{{topic}}
大模型节点的完整配置如图4-8所示。
图4-8 大模型节点的配置对话框
5.合成语音
步骤1:添加语音合成插件。在“大模型”节点之后添加一个“插件”节点,在插件市场搜索“语音”,添加官方提供的speech_synthesis插件,如图4-9所示。
图4-9 添加语音合成插件
步骤2:配置输入参数。将上游大模型节点的输出变量output(即生成的播报稿文本)绑定至该节点的text参数上,其他参数暂不设置,参数配置如图4-10所示。
图4-10 语音合成节点的配置
6.配置结束节点
选中“结束”节点,为其配置两项输出内容:一是引用头条新闻插件的news变量,用于展示原始新闻文本;二是引用语音合成插件的data变量,用于返回生成的语音音频链接。配置结果如图4-11所示。
图4-11 结束节点的配置
7.测试、发布工作流
单击画布下方工具栏的“试运行”按钮,在右侧面板的“topic”参数中输入测试值(如:财经),再次单击下方的“试运行”按钮验证流程,结果如图4-12所示。。
图4-12 试运行工作流
确认运行无误后,单击页面右上角的“发布”按钮。按提示填写版本号与版本描述,单击右下角“发布”按钮即可完成工作流的发布,如图4-13所示。
图4-13 发布工作流
- 工作流必须发布后,方可被智能体调用。
4.3.2创建智能体
智能体是工作流的载体,也是与用户进行直接交互的前端窗口。在“扣子编程”主页中,选择低代码模式下的“智能体开发”进入“创建智能体”页面。在此处,智能体名称填写为“朝闻小助:新闻早报智能体”,智能体功能介绍填写“搜集、播报指定类别的新闻资讯”,并可一键生成专属图标,最后单击“确认”按钮完成智能体的创建,如图4-14所示。
图4-14 创建智能体
4.3.3添加工作流
新创建的智能体是一个“空壳”,需要接入上一节发布的工作流。在智能体编排页面的“技能”模块中,单击“工作流”右侧的“+”按钮添加工作流,如图4-15所示。
图4-15 添加工作流
在弹出的“添加工作流”窗口中,系统会自动展示当前账号下所有已发布的工作流。找到之前创建的get_daily_news工作流,单击其右侧的“添加”按钮,即可将其成功挂载到智能体下,如图4-16所示。
图4-16 选择工作流
4.3.4设置人设与回复逻辑
通过人设与回复逻辑来明确智能体的角色、调用工作流的时机、内容的输出规范,以及智能体的工作边界。人设与回复逻辑的提示词如下。
#角色
简洁中立的新闻播报助手,仅输出工作流返回内容,不加工、不解读。
##执行逻辑
1.用户请求早报、新闻时,直接调用工作流:获取新闻与语音地址。
2.识别用户指定的新闻类别,未指定时默认请求综合类新闻
3.按工作流的结果输出,不寒暄、不增删内容,直接输出{{news}}的内容。
4.输出新闻文字后,在下一行输出音频[audio:{{link}}]
5.如果没有语音URL,不输出音频。
##限制
1.仅处理新闻需求,无关问题简洁回复。
2.不编造、不评论、不解读、无广告。
3.工作流失败统一回复:当前早报暂未更新,请稍后再试。
提示词中表示引用的工作流,只需要在英文输入法状态下键入左大括号“{”,系统便会自动弹出当前可用的工作流列表。单击对应工作流右侧的“添加”按钮,系统会自动生成规范的调用语法,如图4-17所示。
图4-17 在提示词中引用工作流
4.3.5设置开场白及其预置问题
优秀的交互体验离不开良好的引导。在“对话体验”模块中配置“开场白”和“开场白预置问题”,能够有效降低用户的使用门槛,直接告诉用户“我能做什么”以及“你可以怎么问我”。开发者既可手动编写,也可单击“自动生成”按钮,让大模型根据人设一键生成匹配的开场白及其预置问题,如图4-18所示。
图4-18 开场白及其预置问题