当前位置:   article > 正文

基于MetaGPT构建LLM 订阅 Agent_oss订阅智能体

oss订阅智能体

前言

在上一篇文章中,我们学习了如何利用MetaGPT框架构建单智能体和多智能体,并通过一个技术文档撰写Agent和课后作业较为完整的理解一个Agent的需求分析和开发流程;但是技术要和应用结合才能得到更广泛的推广;在本文中,作者将以一个Github订阅智能体为例,带领读者感受Agent应用的潜力;

一、介绍

大家好,我是GISer Liu,不知各位读者有没有阅读GitHub Trending的习惯,GitHub Trending 是 GitHub 上一个专门显示当前最受欢迎项目的页面。它根据项目在过去一个月内的星标数、分支数和贡献者数等因素进行排名,展示出最热门的开源项目。无论对程序员、技术极客以及科技博主GitHub Trending都是一个绝好的信息源,其类似新闻的热榜,阅读``GitHub Trending`有如下的好处:

  • 了解最新技术趋势:最热门的编程语言、框架和工具,帮助开发者保持对技术发展的敏锐。
  • 发现优秀项目:很多优秀开源项目通常具有创新性、实用性和可拓展性,可以为我们自己的项目提供灵感和参考。
  • 学习先进经验:通过阅读热门项目的代码和文档,可以学习到其中的设计思想、编码技巧和最佳实践,提高自己的编程能力。
  • 参与开源社区:通过参与热门项目的讨论和贡献代码,可以与其他开发者建立联系,扩展自己的社交圈子,并为开源社区做出贡献。

因此,及时高效地从GitHub中获取最新的技术发展信息和资源对于开发者很重要。而今天,我们就以这个为我们的需求,构建我们的OSS 订阅Agent

通过本文,你将学习到:

  • 基于Python构建GitHub Trending爬虫Action
  • 基于MetaGPT构建仓库内容生成Action
  • 构建Discord机器人
  • 构建邮箱订阅的论文总结Agent

二、OSS订阅Agent实现

1.需求分析

开始之前,我们首先需要知道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())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

这个模块中,我们的OSS订阅智能体,主要包含三个要素:

  • Role:智能体本身
  • Trigger:触发器
  • Callback:回调函数

我们整理一下实现的思路:

在这里插入图片描述

  • 1.构建一个爬虫Action,其会从Github Trending将我们感兴趣的开源类目信息爬取下来;
  • 2.触发Trigger,即什么情况下我们的Agent才会运行,即按照哪些机制判断是否爬取,如定时爬取或者页面更新时爬取,本文中以每天早上9点定时爬取为例;
  • 3.回调函数callback,当Agent启动爬取到页面数据,后续执行的操作是什么,本文中我们将爬取的信息根据Prompt模版整理为一个每日推送的文章;然后将文章信息发送到我们的订阅平台(Discord、Telegram或QQ邮箱);

理清思路以后,我们开始逐个实现:

2.OSSAgent Role实现

按照我们上一篇文章的思路,我们这里分别需要构建爬虫Crawl Action模版输出Action:

(1)Crawl Action实现
①爬取方式确定

实现数据爬取有三种方式:

  • 基于API:最高效,最稳定,但是经过作者的检索,Github并没有提供Github Trending的API接口,这个方案放弃
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/827366
推荐阅读
相关标签