赞
踩
在上一篇文章中,我们学习了如何利用MetaGPT框架构建单智能体和多智能体,并通过一个技术文档撰写Agent和课后作业较为完整的理解一个Agent的需求分析和开发流程;但是技术要和应用结合才能得到更广泛的推广;在本文中,作者将以一个Github订阅智能体为例,带领读者感受Agent应用的潜力;
大家好,我是GISer Liu,不知各位读者有没有阅读GitHub Trending
的习惯,GitHub Trending
是 GitHub 上一个专门显示当前最受欢迎项目的页面。它根据项目在过去一个月内的星标数、分支数和贡献者数等因素进行排名,展示出最热门的开源项目。无论对程序员、技术极客以及科技博主,GitHub Trending
都是一个绝好的信息源,其类似新闻的热榜,阅读``GitHub Trending`有如下的好处:
因此,及时高效地从GitHub中获取最新的技术发展信息和资源对于开发者很重要。而今天,我们就以这个为我们的需求,构建我们的OSS 订阅Agent
。
通过本文,你将学习到:
开始之前,我们首先需要知道MetaGPT
中,订阅Agent机制SubscriptionRunner模块
;
SubscriptionRunner
模块是metagpt
中的一个模块,它提供了``SubscriptionRunner类,用于提供一个
Role的定时运行方式。基于
SubscriptionRunner类,我们可以定时触发运行一个
Role,然后将
Role`的执行输出通知给用户。下面是一个参考案例代码:
import asyncio from metagpt.subscription import SubscriptionRunner from metagpt.roles import Searcher from metagpt.schema import Message # 定义触发器,每24小时抛出一个Message async def trigger(): while True: yield Message("the latest news about OpenAI") await asyncio.sleep(3600 * 24) # 回调函数,实例话一个订阅器实例,当触发器触发后,打印返回的内容 async def callback(msg: Message): print(msg.content) # 主函数,开始运行该计划任务 async def main(): pb = SubscriptionRunner() await pb.subscribe(Searcher(), trigger(), callback) await pb.run() asyncio.run(main())
这个模块中,我们的OSS订阅智能体,主要包含三个要素:
我们整理一下实现的思路:
Action
,其会从Github Trending
将我们感兴趣的开源类目信息爬取下来;Trigger
,即什么情况下我们的Agent才会运行,即按照哪些机制判断是否爬取,如定时爬取或者页面更新时爬取,本文中以每天早上9点定时爬取为例;callback
,当Agent启动爬取到页面数据,后续执行的操作是什么,本文中我们将爬取的信息根据Prompt模版整理为一个每日推送的文章;然后将文章信息发送到我们的订阅平台(Discord、Telegram或QQ邮箱);理清思路以后,我们开始逐个实现:
按照我们上一篇文章的思路,我们这里分别需要构建爬虫Crawl Action和模版输出Action:
实现数据爬取有三种方式:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。