《MetaGPT智能体开发入门》学习笔记 第四章 MetaGPT订阅模式

什么时订阅模式:比如花了120元问邮局订了12个月的杂志,每个月有差师傅都会将杂志送到家门口,当我到家时便会看到杂志;便可以演化为,有很多信息,有一个信息监听器,接受消息,整理;基于这种思想我们着手做一个微博热点的订阅系统,收集到每天微博排行的前十名,对其分析然后获得分析结果总结最近的热门是什么。
这样的化我们需要有以下几个组件:
1.爬虫爬取排行榜
2.分析爬取到的内容
3.MeteGPT使用SubscriptionRunner方法提供了一个Role的运行方式,基于SubscriptionRunner类,我们可以定时触发运行一个Role,然后将Role的执行输出通知给用户

代码如下:MetaGPT 0.8版本
MetaGPT执行方法:WeiboSubscriptionAgent.py 执行方法


"""
Filename: MetaGPT/examples/oss/WeiboSubscriptionAgent.py to run OssWatcherWeibo
Created Date:
Author:
"""
 
import asyncio
 
# from QQMailSender import QQMailSender
from WeiboOssWatcher import WeiboOssWatcher
from typing import Optional
 
from aiocron import crontab
from pydantic import BaseModel
from pytz import BaseTzInfo
from metagpt.logs import logger
 
from metagpt.environment import Environment
from metagpt.schema import Message
from metagpt.subscription import SubscriptionRunner
 
# Trigger
class OssInfo(BaseModel):
    url: str
    timestamp: float
 
class WeiboHotCronTrigger:
    def __init__(self, spec: str, tz: Optional[BaseTzInfo] = None, topic: str = "社会") -> None:
        self.crontab = crontab(spec, tz=tz)
        self.topic = topic
 
    def __aiter__(self):
        return self
 
    async def __anext__(self):
        await self.crontab.next()
        # logger.info(self.url)
        logger.info(self.topic)
        # logger.info(OssInfo(url=self.url))
        # logger.info(Message(self.url))
        logger.info(Message(self.topic))
        return Message(self.topic)
 
async def qqmail_callback(msg: Messa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值