AI 智能体 | 手捏素材选题库 Coze Bot,帮你实现无限输出

做自媒体的同学经常遇到的一个痛点就是无限输出,那怎么才能有源源不断的选题呢?那就是搭建一个选题素材库。

下面就为大家介绍一下基于 Coze Bot 快速搭建素材选题库,希望能让大家才思泉涌。

一、流程拆解

日常素材库积累的过程可以描述为:看到一篇不错的文章,记录标题、大纲、分类和地址。

这些环节正好都是大模型所擅长的。我们把这些环节拆分为不同节点去实现,最后用一个工作流去串联起来就可以了。

实现的效果如下:

图片

二、Bot 搭建

图片

一)Bot 设计

1、创建 Bot

打开 https://www.coze.cn/home,点击创建 Bot 按钮

图片

输入 Bot 名称和介绍后点击确定

图片

2、设定人设

图片

人设与回复逻辑

你是素材收集助手,用户输入一个url,你调用material_add_gzh工作流进行处理,并返回处理的结果,如果用户输入的不是有效的url信息,引导用户输入正确的信息格式。

在页面中间工作流标签点击添加工作流 material_add_gzh,如果还没有创建工作流,点击左侧创建工作流按钮即可开始创建,具体流程详见下一章节。

图片

二)流程设计

1、开始

不需要额外定义变量,仅用默认变量 BOT_USER_INPUT 即可。

图片

2、拼装查询条件

为了避免记录重复添加,我们这里是先根据 URL 查询飞书多维表中记录是否存在,如果存在则直接返回,不存在则执行添加操作。这里 query 的结构定义是基于飞书多维表查询条件结构来的,不能随意修改 query 对象中的属性名称。

图片

本节点是代码节点,Python 代码如下:

async def main(args: Args) -> Output:params = args.paramsret: Output = {"query": {"conditions": [{"field_name":"url","operator":"is","value":[params['url']]}   ],"conjunction":"and"}}return ret
3、查询飞书多维表

app_token:输入多维表完整的 url,插件会自动解析处理;

filter:引用上一步拼装的查询条件 query;

图片

4、判断记录是否存在

这是一个选择器节点,实现分支的功能,根据上一步查询返回的记录判断用户输入的 URL 是否已录入。如果条件满足,则执行正常素材添加逻辑,否则执行文档跳过添加提示节点(后续说明)。

图片

图片

5、解析 URL 内容

这一步用的是 coze 插件市场中的 LinkReaderPlugin 插件,该插件可以获取指定 URL 的内容。

url:引用入参 BOT_USER_INPUT

图片

6、判断 URL 解析查询返回值

调测中遇到有的 url 链接解析获得内容为空,对于这种异常情况,跳过处理。

图片

7、文本提炼处理

本节点是大模型节点,借助大模型提炼文章标题、摘要、类别、发布日期、关键词。

提示词如下:

# 任务
根据{{input}},生成对应信息# 输出要求
title:网页标题(如果有原标题,直接使用原标题;若找不到原标题,则根据关键信息,生成一个精确的标题)
summary:仔细阅读整个网页内容,捕捉内容主题、关键信息、阅读价值,生成一段简洁而全面的摘要;并指出适合的读者群体
category:有如下文本类别:AI智能体、AI提示词、Java编程、Python编程、认知思考、其他 共计6个类别,帮我根据输入的内容确定一个类别
link:{{url}}
publishDate:文章发布时间,格式YYYY-MM-DD
siteName:根据{{url}}判断平台名称
keywords:仔细阅读整个网页内容,提炼出与主题相关的3-5个关键词,以,分隔

图片

8、构建飞书字段记录

此处是基于飞书的添加多维表记录的报文结构构建的数组对象。title、category...publishDate 等都是多维表中定义的字段名称,根据需要调整即可。此处需要注意的是如果飞书中定义的字段为日期格式,那么存入的时候需要转换成时间戳,具体转换方法也在下面代码中。

图片

 
import json
from datetime import datetime
from pickle import LONGasync def main(args: Args) -> Output:params = args.paramsjsonObj = {"title": params['title'],"category": params['category'],"summary": params['summary'],"url": params['url'],"content": params['content'],"remark": params['remark'],"keywords": params['keywords'],"siteName": params['siteName'],"publishDate": date_to_timestamp(params["publishDate"])}record = {"fields": json.dumps(jsonObj)}jsonArray = []jsonArray.append(record)ret: Output = {"rawRecords": jsonArray,}return retdef date_to_timestamp(date_str, date_format='%Y-%m-%d'):"""将日期字符串转换为10位时间戳。:param date_str: 日期字符串:param date_format: 日期字符串的格式,默认为'%Y-%m-%d':return: 10位时间戳"""try:# 将日期字符串转换为datetime对象date_obj = datetime.strptime(date_str, date_format)# 将datetime对象转换为时间戳timestamp = int(date_obj.timestamp() * 1000)return timestampexcept ValueError as e:print(f"Error: {e}")return None    
9、添加记录到飞书多维表

此处使用的是 coze 中飞书多维表插件的 add_records 函数。

app_token:同前面记录查询节点中的配置,此处填写完整的飞书多维表 url 即可,形如:

https://xzqakftmv0.feishu.cn/base/xxxx?table=tbyyy&view=vewJFRrIho

records:引用前一步构建记录的返回的 rawRecords 变量。

图片

10、判断记录添加是否成功

有些字段格式不正确或者其他原因,可能导致记录添加失败,这里对添加记录节点返回值进行判断,根据成功与否给出用户不同的提示信息。

图片

11、提示信息拼接

为了更好地用户体验,对文本添加成功、失败、跳过、解析错误都采用了字符串处理节点拼接提示消息,大家可以根据需要选择。

图片

图片

图片

图片

12、设置返回信息

由于结束节点输出变量需要具体指定,而实际可能出现不同的处理结果,因此将 11 节点的内容统一的一个变量 returnMsg 中,此处为代码节点:

图片

python 代码如下:


def get_non_empty_string(str1, str2, str3,str4):# 检查每个字符串是否为空,返回第一个非空字符串if str1:return str1elif str2:return str2elif str3:return str3elif str4:return str4        else:return None  # 如果所有字符串都为空,则返回Noneasync def main(args: Args) -> Output:params = args.paramsmessage = get_non_empty_string(params['addSucc'], params['addFailed'], params['skipAdd'], params['parseFailed'])ret: Output = {"returnMsg": f'{message}'}return ret
13、结束

结束节点直接定义的用设定内容直接回答,回答内容就是 output 的值,output 则设定引用上面的 returnMsg。

图片

三、测试验证

工作流创建完成并发布后,与步骤一中的 Bot 绑定,就可以进行调试,为此进行了几种常见验证,分别是:

不符合 URL 格式、记录已存在、记录不存在。

图片

图片

查看飞书文档,记录也已经正确添加。大家根据自己的需求继续迭代。

我是黑马非马,探索 AI 编程与 AI 智能体,欢迎围观。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1547467.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

WPF项目中使用Caliburn.Micro框架实现日志和主题切换

目录 一、添加Caliburn.Micro框架 二、配置Serilog日志 三、实现主题切换 Caliburn.Micro是MVVM模式的轻量级WPF框架,简化了WPF中的不少用法。这个框架中所有的页面控制都是通过ViewModel去实现的。 以下内容是自己在进行项目实战的同时进行记录的,对于…

使用npm link 把一个本地项目变成依赖,引入到另一个项目中

突然有天,发现线上的项目有块功能缺失,我以为是我优化的时候不小心改坏了什么代码,导致的,先上图 第一反应,就以为天塌了,完全无从入手,然后我就找了之前的离职的同事,他又给我两个包,让我打成依赖扔进去,这两个包分别是scratch-blocks,scratch-vm, 然后我就使用了npm link np…

【HarmonyOS】组件长截屏方案

【HarmonyOS】普通组件与web组件长截屏方案:原则是利用Scroll内的组件可以使用componentSnapshot完整的截屏 【普通组件长截屏】 import { componentSnapshot, promptAction } from kit.ArkUI import { common } from kit.AbilityKit import { photoAccessHelper }…

001、视频添加字幕

1. 腾讯智影 (可用) https://zenvideo.qq.com/ 1.1 操作步骤 https://zenvideo.qq.com/ https://zenvideo.qq.com/my/material?typeexport 上传资源 自动字幕识别 修改字幕 下载字幕 上传字幕 https://zenvideo.qq.com/my/material?typeexport 2. 秒剪–手机版app &a…

华为云分布式缓存服务Redis®版9月企业版、灵活的购买方式全新上市

华为云分布式缓存服务(Distributed Cache Service,简称DCS)是华为云提供的一款兼容Redis的高速内存数据处理引擎,为您提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,满足用户高并发及数据快速访问的…

MacOS多桌面调度快捷键

单桌面调度快捷键 可能是我用着妙控鼠标用着不习惯,所以追求快捷键操作,看起来也比较酷。而且在Windows上,我基本不使用多桌面,但是看着同事用Mac的多桌面用的飞起,炫酷程度不亚于win7的Windows键Tab。在不使用多桌面的…

SSM+Vue家教平台系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作…

水平分库分表的方法策略

分库分表介绍 在当前业务量迅猛增加的情况下,数据库经常面临性能的极致挑战。尤其是在处理大规模的数据集,例如超过千万条数据记录的情况下,SQL查询的性能将显著下降。随着数据量的增加,查询所需要扫描的数据范围变得更广&#x…

AOT源码解析4.4 -decoder生成预测mask并计算loss

3、生成ref_imgs的预测mask和loss 这一步在训练阶段调用 3.1 数据处理 图1,如图1所示,将enc_embs的最后一个比例的特征图和有ref_imgs相关的特征图得到的LSTT特征图相拼接作为输入 curr_enc_embs self.curr_enc_embscurr_lstt_embs self.curr_lstt_o…

了解针对基座大语言模型(类似 ChatGPT 的架构,Decoder-only)的重头预训练和微调训练

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 随着自然语言处理(NLP)技术的飞速进步,基于 Transformer 架构的大语言模型在众多任务中取得了显著成就。特别是 Decoder-only 架构,如 GPT 系列模型&…

8.7基于数学形态学的边缘检测

基本概念 数学形态学(Mathematical Morphology)是一套用于图像处理的技术,它包括膨胀(Dilation)、腐蚀(Erosion)、开运算(Opening)和闭运算(Closing&#xf…

使用电子模拟器 Wokwi 运行 ESP32 示例(Arduino IDE、VSCode、ESP32C3)

文章目录 Wokwi 简介安装客户端(Mac/Linux)创建 Token Arduino IDEVSCode 配置安装 wokwi 插件打开编译后目录 ESP32C3 示例Arduino IDE创建模拟器运行模拟器 Wokwi 简介 Wokwi 是一款在线电子模拟器。您可以使用它来模拟 Arduino、ESP32、STM32 以及许…

HTML·第3章 表格布局与表单交互

3.1 表格概述 3.1.1 表格的结构 表格是由行和列组成的二维表,而每行又由一个或多个单元格组成,用于放置数据或其他内容。表格中的单元格是行与列的交叉部分,是组成表格的最基本单元。单元格的内容是数据,也称数据单元格。数据单元…

线上环境排故思路与方法GC优化策略

前言 这是针对于我之前[博客]的一次整理,因为公司需要一些技术文档的定期整理与分享,我就整理了一下。(https://blog.csdn.net/TT_4419/article/details/141997617?spm1001.2014.3001.5501) 其实,nginx配置 服务故障转移与自动恢复也是可以…

人工智能开发实战照片智能搜索功能实现

内容提要 项目分析预备知识项目实战 一、项目分析 1、提出问题 随着人民生活水平的提高和手机照相功能的日趋完美,我们不经意中拍摄了很多值得回忆的时刻,一场说走就走的旅行途中也记录下许多令人心动的瞬间,不知不觉之中,我们…

【CSS in Depth 2 精译_040】6.3 CSS 定位技术之:相对定位(下)—— 用纯 CSS 绘制一个三角形

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…

RabbitMQ应用

RabbitMQ 共提供了7种⼯作模式, 进⾏消息传递 一、七种模式的概述 1、Simple(简单模式) P:生产者,就是发送消息的程序 C:消费者,就是接收消息的程序 Queue:消息队列,类似⼀个邮箱, 可以缓存消息; ⽣产者…

【微服务即时通讯系统】——brpc远程过程调用、百度开源的RPC框架、brpc的介绍、brpc的安装、brpc使用和功能测试

文章目录 brpc1. brpc的介绍1.1 rpc的介绍1.2 rpc的原理1.3 grpc和brpc 2. brpc的安装3. brpc使用3.1 brpc接口介绍 4. brpc使用测试4.1 brpc同步和异步调用 brpc 1. brpc的介绍 1.1 rpc的介绍 RPC(Remote Procedure Call)远程过程调用,是一…

使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…

Java Stream流编程入门

流式编程 stream流式编程分为 首先转化为stream中间函数的链接最后的终结函数 怎么转化为stream 单列集合 List<String> list new ArrayList<String>(); Collections.addAll(list,"1","2","3","4","5","…