前言
大家好,我是小智。Coze智能体在AI领域一直是个很热门的话题,关于使用智能体生成文章在各大媒体和平台上资源也很多。我也一直在思考如何给大家分享一下不一样的内容。
智能体生成文章没有什么好说的。如果企业或者个人正在做SEO这块,通过在各大自媒体平台发布上百或者上千篇带外链的文章就是当下要解决的一个痛点。所以今天的文章主题就分享如何使用智能体大批量生成高质量博客文章。
咱们言归正传,直接奔入主题。设计这个工作流用到的节点有插件、大模型、代码生成器、选择器、变量、文本处理以及消息。文章中不再介绍这些节点的基础用法,直接实战。最终咱们通过CSDN平台发布这篇生成好的博客文章,然后打分。
背景介绍
大家都知道智能体生成的文章肯定没法拿来直接使用,要进行洗稿和修改,因为大模型都是基于预训练数据生成的。大模型生成的文章质量怎么样?取决于数据来源。如果是基于业务场景的数据然后再投喂给大模型,生成的文章质量会高很多。
我们这次使用的业务数据是基于API服务详情。通常API服务按照类别区分有很多分类,生活服务、安全服务、教育服务、公共数据、位置服务、AI技术、开发者服务等等。比如我想写一篇某某某分类的API服务推荐文章,那就需要先起好标题,标题一般有分类名称,标签关键词(最新、最热、免费)。
然后是正文段落,正文目录结构:前言、正文、总结等等。
生成博客文章原理
根据用户提供的信息(服务列表、服务类别、服务标签),根据提供的API插件查询到的服务信息数据做判断,如果返回成功就分别生成文章标题、文章前言、文章段落和文章总结,每一段内容都通过消息来返回结果,最终将所有结果整合到一起进行文本处理,生成一篇完整的文案。
如图:
创建服务列表插件
服务信息数据源的获取都来自提供好的API接口,服务信息列表数据格式如下:
省略编辑插件配置步骤,不清楚的小伙伴查看之前的文章Coze智能体接入,免费API插件入参:
{ "serviceCode": "scd2024041701861d19d840"}
出参:
{ "applicableScenarios": "详情介绍-适用场景", "faq": [ { "answer": "常见问题及答案", "question": "常见问题及答案" } ], "coreInterfaces": "详情介绍-核心接口清单", "feeType": "付费方式", "useRestrictions": "详情介绍-使用限制", "competitor": "详情介绍-竞争对手", "coreBenefits": "详情介绍-核心优势", "detailFormatType": "详情介绍", "code": "返回码", "useLimit": "使用限制", "url": "服务地址", "specialApiInfo": { "packageDetail": "价格信息", "unitPrice": "价格" }, "serviceName": "服务名称", "serviceInfo":"API 服务信息", "technicalPrinciple": "详情介绍-技术原理", "usageGuideFormatType": "使用指南"}
按步骤把上面对应的入参和出参填写到插件编辑中:
编辑开始节点如下图所示,开始工作流一共需要提供3个输入参数,其中:
serviceCodeList
是个数组用户可以根据需要输入1个或多个服务编码,
category
和
keyword
两个字段分别表示服务分类和标签。所有参数均是必填项。
一、获取服务列表信息
新增已经创建好并调试发布成功的:
get_api_info
插件,输入参数:
serviceCodeList
是个列表支持多个输入,在这里咱们选择批处理方式,流程如下:
因为需要对返回的服务列表进行检查是否成功,所以需要做一些代码上的处理,主要是遍历:
infoList
检查:
code
是否符合预期返回值。也是作为IF选择器来使用进行下一步的操作。
二、根据选择器判断
这里有个分支条件,根据IF选择器:服务列表检查。
- 如果返回TRUE将进行文章段落生成、文章前言生成以及文章标题生成;
- 如果返回FALSE直接到:
结束
节点。
三、文章标题生成
需要添加的节点有两个分别是标题生成大模型和标题消息。
- 大模型提示词:
根据关键词 ,{{keyword}},{{category}}API推荐, 生成一个文章标题,要像真人写的
- 消息:
标题消息 返回内容:标题生成完成:
{{title}}
- 作为文本处理的输入参数:
{{String1}}
流程如下:
文章标题生成流程总结
先判断服务列表检查是否返回SUCCESS(选择器节点)→标题生成(大模型节点)→标题消息(消息节点)→作为文本处理的输入参数(文本处理节点)→结束。
四、前言生成
代码:获取服务列表信息。
当前函数的作用是将输入数组中的每个对象的:
serviceName
和:
serviceInfo
属性拼接成一段介绍文本,并返回这些文本的集合。
async function main({ params }: Args): Promise<Output> { const result = params.input.map(item => item.serviceName+'的服务简介:'+ item.serviceInfo).join('\n '); const ret = { "result": result }; return ret;}
- 大模型:前言
提示词:
##角色:你是一个专业的{{category}}领域文章创作智能体,非常善于针对{{category}}领域,创作一个API 服务推荐文章的前言。##任务:请你根据用户给出的{{category}}类型和API 服务简介创作出文章的前言。##API 服务简介:{{result}}
- 消息:
前言消息 生成:
{{output}}
作为文本处理的输入参数:
{{String2}}
前言生成流程如下:
前言生成流程总结
先判断服务列表检查是否返回SUCCESS(选择器节点)→获取服务列表信息(代码节点)→前言(大模型节点)→作为文本处理的输入参数(文本处理节点)→结束。
五、文章段落生成
- 大模型:文章中段生成
提示词:
## 服务名称={{serviceName}}## 简介={{serviceInfo}}## 基本信息={{productDefinitions}}## 特性={{coreFeatures}}## 优势={{coreBenefits}}## 定价信息={{price}}## 服务详情页面地址={{url}}
- 添加人设与回复逻辑:
输入参数一共接收9个参数。
- 代码:
拼接文章中段生成内容,作为文本处理的输入参数:
{{String3}}
async function main({ params }: Args): Promise<Output> { const result = params.input.map(item => item.output).join('\n\n '); const ret = { "result": result }; return ret; }
文章段落生成流程如下:
六、文章总结生成
- 大模型:总结拼接后的内容
提示词:
## 任务:请你根据用户给出的{{category}}类型和文章主体部分创作出文章的总结部分。## 文章主体部分 {{result1}}
- 消息:
总结消息 总结生成完成:
{{output}}
作为文本处理的输入参数:
{{String4}}
文章段落和总结流程总结
先判断服务列表检查是否返回SUCCESS(选择器节点)→文章段落生成(大模型节点)→拼接文章段落(代码节点)→文章总结生成(大模型节点)→总结消息(消息节点)→作为文本处理的输入参数(文本处理节点)→结束。
至此,涉及到文章标题、前言、文章段落以及文章总结所用到的流程和节点都已设置完毕,将所有的节点汇总到文本处理,然后统一返回。
- 文本处理的作用是拼接之前返回的各个参数:
{{String1}}{{String2}}{{String3}}{{String4}}
由于篇幅原因省略测试发布和创建bot的过程,这些在前面的文章中也有讲过,就不在赘述。
咱们看一下最终在CSDN上的质量评分94分,质量还是相当高的。
咱们再看一下使用:
AI生成内容检测器[https://neuralwriter.com/zh/content-detector-tool/]
检测出来的结果:
总结
本篇文章主要和大家分享的是通过Coze智能体批量生成高质量博客文章的实战玩法。文章的质量取决于投喂的数据,实战案例中的数据源来自提供的插件。
用户可通过输入一个或多个服务编码参数:
serviceCodeList
来生成文章,工作流中通过选择器的方式来判断走哪一个分支节点。每一个分支工作流都是通过大模型做出总结然后生成消息节点并输出结果,并将结果参数作为文本处理节点的入参参数,最后再由一个总文本处理节点把所有的参数进行拼接,输出最终的结果。