微信扫码
与创始人交个朋友
我要投稿
随着大模型技术的发展,越来越多的技术开始涌现,从聊天助手,到智能体,再到工作流,最后到三者的整合。大模型技术朝着更加智能化、通用化、个性化的方向发展,为人们的生活和工作带来了更多的便利和创新。
今天,手把手教大家如何通过Coze零代码搭建一个智能搜索智能体,能够根据你的关键词,自动进行全网搜索,筛选出最相关的内容,并进行智能总结,给出参考链接,提升你信息收集的效率,高时效、保姆级!比较肝,建议先收藏!
扣子是新一代 AI 应用开发平台。无论你是否有编程基础,都可以在扣子上快速搭建基于大模型的各类智能体,并将智能体发布到各个社交平台、通讯软件或部署到网站等其他渠道。
1. 灵活的工作流设计:
• 扣子工作流可处理逻辑复杂且稳定性要求高的任务流。
• 提供大量灵活可组合节点,如大语言模型 LLM、自定义代码、判断逻辑等。
• 无论有无编程基础都可通过拖拉拽方式快速搭建工作流,例如创建搜集电影评论工作流、撰写行业研究报告工作流。
2. 无限拓展的能力集:
• 扣子集成丰富插件工具,拓展智能体能力边界。
• 官方插件:扣子官方发布多款能力丰富插件,包括资讯阅读、旅游出行、效率办公、图片理解等 API 及多模态模型,可直接添加到智能体中,如使用新闻插件打造 AI 新闻播音员。
• 自定义插件:扣子平台支持创建自定义插件,可将已有 API 能力通过参数配置方式创建插件让智能体调用,也可发布到商店供其他用户使用。
3. 丰富的数据源:
• 扣子提供简单易用知识库功能管理和存储数据,支持智能体与用户自己的数据交互。
• 内容格式:知识库支持文本、表格、照片格式数据。
• 内容上传:知识库支持 TXT 等本地文件、在线网页数据、Notion 页面及数据库、API JSON 等多种数据源,也可直接在知识库内添加自定义数据。
4. 持久化的记忆能力:
• 扣子提供方便 AI 交互的数据库记忆能力,可持久记住用户对话重要参数或内容。
• 例如创建数据库记录阅读笔记,智能体可通过查询数据库提供更准确答案。
在介绍如何搭建智能体之前,让我们了解一下什么是智能体。
所谓智能体,是基于大型语言模型构建的智能实体,它具备感知、规划、推理、学习、执行和决策等智能行为特征,能够自动化地完成包括文本生成、对话交互、语言翻译、数据分析、预测分析在内的多种复杂任务,显著提升工作效率,为人类创造更便捷、智能的生活方式。
接下来,手把手教大家如何在Coze上搭建一个属于自己的智能搜索智能体。
首先进入到Coze的官网,点击左侧的「工作空间」,然后点击「资源库」,再点击右上角的「资源」,选择工作流。
然后输入工作流名称,我这里输入的是info_collection
,也可以是其他的;输入工作流描述,我这里是调用各种搜索引擎,搜索相关信息
。然后点击确认完成创建
在工作流界面上,左侧有不同的节点,如:插件
、大模型
、代码
、知识库
、工作流
等等。其中:
• 插件
:可以通过API和外部数据与系统进行交互,能够增强模型能力。
• 大模型
:顾名思义,就是大模型,基于大量不同的数据进行训练,具有强大的通用基础知识。
• 代码
:可以通过代码来处理一个流程中的数据
• 知识库
:可以理解为大模型的外挂知识库,可以有效解决模型的幻觉问题。
首先,让我们来为工作流添加几个搜索插件,点击左侧的「插件」:
在弹出的窗口中,勾选上「仅显示官方插件」
在左侧文本框输入「必应搜索
」,并点击「添加」。
然后再输入「头条搜索
」,点击「添加」
输入「头条新闻
」,点击「添加」
输入「抖音视频
」,点击「添加」
这样,我们的工作流就有了四个搜索来源了,节点名字分别是bingWebSearch
, search
, getToutiaoNews
, get_video
,如果感兴趣的话,还可以继续添加。将「开始」节点和刚才添加的四个搜索节点进行链接:
点击具体的搜索节点,分别设置每个搜索节点的输入参数,首先是bingWebSearch
:
然后是search
:
然后是getToutiaoNews
:
最后是get_video
:
在每个搜索节点执行完之后,我们需要将这几个搜索节点结果中的url合并起来,用来爬取其中的内容。这里,我新建了一个「代码」节点,用来合并搜索节点的结果。
在左侧选择「代码」,点击+号,即可添加一个「代码」节点
将「搜索」节点和「代码」节点进行连接:
点击「代码」节点,设置它的输入参数,其中每个条目具体的参数如下:
• bing_result
:data/webPages/value
• search_result
: data/doc_results
• toutiao_result
: news
• videl_result
: data/list
然后选择「在IDE中编辑」:
在顶部将语言切换为「Python」:
输入下面代码:
async def main(args: Args)->Output:
params = args.params
bing_result = params['bing_result']
search_result = params['search_result']
toutiao_result = params['toutiao_result']
video_result = params['video_result']
result = []
if bing_result is not None:
for item in bing_result:
if item == None:
continue
result.append(item["url"])
if search_result is not None:
for item in search_result:
if item == None:
continue
result.append(item['url'])
if toutiao_result is not None:
for item in toutiao_result:
if item == None:
continue
result.append(item['url'])
if video_result is not None:
for item in video_result:
if item == None:
continue
result.append(item['link'])
ret ={
"key": result
}
return ret
同时修改「输出」参数,如下所示:
现在,我们拿到了不同搜索节点获取到的链接,接下来,我们添加一个「链接读取」插件,来获取网页内容。
同样,还是在左侧点击「插件」,选择「链接读取」,并点击「添加」。
添加完之后,可以在工作流中看到对应的插件(链接读取),节点名字为LinkReaderPlugin
。连接「代码」节点和「LinkReaderPlugin」:
点击「LinkReaderPlugin」,设置一些参数。因为我们是一次传入一批url链接到「链接读取」插件,所以在参数设置中,选择「批处理」,如下所示:
上面的设置中,不同条目的设置如下:
• 批处理:
• item
:选择代码节点的输出
• 输入:
• url
:选择LinkReaderPlugin->item
可能会因为各种原因,网络爬虫无法对每条url都返回结果,这些无法爬取的url的结果在返回的时候是None(空),不太方便后面批量处理,因此我们需要对上面「链接获取」节点的输出结果进行过滤。再次添加一个「代码节点」,并修改名称为「结果过滤」,并和「链接获取」节点连接:
设置「代码」节点的输入为「链接获取」节点的输出,如下所示:
然后修改语言为Python,代码如下:
async def main(args: Args)->Output:
params = args.params
link_result = params['link_result']
content = []
for item in link_result:
try:
content.append(item['data']['content'])
except:
continue
return content
同时修改「输出」:
每个网页的结果数众多,我们不可能从头看到尾,因此需要用大模型对结果进行总结。在工作流界面左侧点击「大模型」,添加一个大模型,并链接上一节的「代码」节点。
同样,大模型也需要进行批处理,下面是设置参考:
现在,我们一共有这些信息:
1. url
2. title
3. content总结
但是这些信息分散在不同的节点。下面,我们新建一个「代码」节点将这些汇总起来,如下所示
代码节点的参数配置如下:
具体代码如下:
async def main(args: Args)->Output:
params = args.params
link_result = params['link_result']
link_list = params['link_list']
model_result = params['model_result']
assert len(link_list) == len(link_result)
result = []
for item1, item2 in zip(link_result, link_list):
try:
title = item1['data']['title']
link = item2
result.append({
"link": link,
"title": title,
})
except:
continue
assert len(model_result) == len(result)
for i in range(len(result)):
result[i]["content"] = model_result[i]['output']
ret ={
"key": result
}
return ret
将上面「结果合并」节点和最终的「结束」节点连接
并修改「结束」节点的输出,如下图所示:
至此,一个工作流就创建完成了,可以点击右上角的试运行:
输入关键词,运行一下看看:
如果没有问题的话,可以看到「结束」节点的输出结果,在我的工作流里,一共有27个结果,每个结果包含:内容、链接、标题。
然后点击发布:
就可以在「资源库」页面看到我们创建的工作流了:
接下来,我们可以创建一个智能体,来使用这个工作流了。
在Coze点击左侧的「工作空间」,选择「项目开发」,然后点击「创建智能体」,输入智能体名称和图标,点击「确认」,即可完成智能体创建。
下面是智能体的配置,需要修改地方有:
• 人设与回复逻辑
• 工作流
• 开场白
• 开场白预置问题
如下图所示:
其中,人设与回复逻辑如下:
# 角色
你是一个专业且高效的信息收集专家,能够快速准确地搜集各类相关信息,并以清晰的方式呈现给用户。
## 技能
### 技能 1:确定信息主题与范围
1.当接收到信息收集任务时,明确信息的具体主题及范围。
2.调用 info_collection 工作流,获取关键词对应的搜索结果。
### 技能 2:整理与汇总信息
1.对收集到的每一条信息进行细致整理,按照以下格式呈现:
-标题:<title>
-内容:<content>
-链接:<link>
## 限制
-只收集与给定主题高度相关的信息,坚决摒弃不相关内容。
-输出内容必须严格按照规定格式组织,不得偏离要求框架。
-不得减少结果条数。
- 信息汇总务必保持客观、准确,严禁加入任何主观臆断。
因为我们主要是做信息搜集,不需要大模型有太强的发散能力,所以需要修改一下大模型的参数。
点击顶部的大模型,将其设置为「精确模式」
至此,一个智能体就搭建完成了。
接下来,让我们向智能体提问几个问题,看看效果如下:
在对话框输入:什么是智能体?
可以看到智能体会调用我们刚才创建的工作流进行信息搜索,并且也可以看到搜索的结果。
然后智能体会将信息进行总结,并按照规定的格式输出,并且每条结果所附的链接也是完全准确的!
本文从介绍什么是Coze
、什么是智能体
,到工作流搭建
、智能体搭建
,手把手教你搭建了一个能够自动搜集全网信息的智能体,提高你的信息搜集效率,提升你的信息搜集体验,同时也避免了广告的困扰!如果对此类教程感兴趣的话,欢迎Mark~后续会持续更新!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-15
llamaindex实战-Agent-在Agent中使用RAG查询(本地部署)
2024-11-07
深度解析 REAcT Agent 的实现:利用 LlamaIndex 和 Gemini 提升智能代理工作流
2024-10-11
深入解析LlamaIndex Workflows【下篇】:实现ReAct模式AI智能体的新方法
2024-10-10
使用Milvus和Llama-agents构建更强大的Agent系统
2024-09-19
LlamaIndex报告:未来Agentic App,不仅是RAG
2024-08-28
对于初学者,该如何选择 LlamaIndex 与 LangChain ?
2024-08-15
【Agent智能体指北】LlamaIndex 工作流:一种创建复杂 AI 应用程序的新方法
2024-08-09
本地部署Perplexity 克隆:使用Llama 3.1实现高效搜索
2024-07-09
2024-04-20
2024-06-05
2024-04-25
2024-04-28
2024-05-09
2024-07-20
2024-04-26
2024-04-08
2024-06-19