《扣子编程从零开始搭建智能体 卢欣欣 清华大学出版社》【摘要 书评 试读】- 京东图书《扣子编程从零开始搭建智能体》全书案例持续更新-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 开场白及其预置问题