语义网长期以来一直引起我的兴趣。将网络转变为人工智能可访问的可理解数据库的想法成为我继续探索的基础。创建智能警报系统的想法是一个不断激发我好奇心的应用程序,它是一个数字哨兵,守护着互联网上的信息混乱。想象一下,一个机器人不断地在浩瀚的网络海洋中搜寻,提醒您特定事件的发生,例如一本新书的发布。这是我多年来一直追求的梦想。
像 AutoGPT 和 BabyAGI 这样的自主代理的出现引起了我的兴趣。这些系统代表了人工智能技术的一个有前途的新方向。我决定尝试使用这些工具,以实现我的智能警报系统梦想。然而,我的兴奋很快就平息了。这些系统虽然先进,但运行时重点关注目标及其随后的步骤划分。这与我设想的持续、警惕的监控系统相去甚远。令我非常失望的是,我发现他们的架构不适合这样的任务。有时你可以让它工作,但不可靠。
现有模型的缺点点燃了构建新模型的火花。我决定创建自己的系统,一个事件驱动的自主代理系统。我称之为WhenX。
该系统的目标是以“当 X 发生时,然后执行 Y”的形式创建警报。在此初始版本中,我们仅支持“当 X 发生时,向我发送电子邮件报告”形式的电子邮件警报。
该系统由四个代理组成:队长、侦察兵、哨兵和士兵。
队长是这个乐团的指挥。接到任务后,它负责组建一支特工团队——一名侦察兵、一名哨兵和一名士兵。
侦察兵充当探险家,开始寻找相关信息,并在旅途中创建“观察结果”。这些观察结果是为 WhenX 系统提供动力的重要原材料。
哨兵,看门人,仔细检查侦察员所做的最后 N 个观察。它是一个有洞察力的实体,旨在识别观察数据中的变化,无论变化多么微妙。当它检测到值得注意的事情时,它会触发“警报”,向士兵发出采取行动的信号。
士兵,即执行者,在收到哨兵的警报后立即采取行动。它根据警报执行指令,制作封装检测到的变化或事件的“报告”。
$ poetry install
$ poetry run alembic upgrade head
将 .env.example 文件复制到 .env 并填写值。我们正在使用重新发送服务来发送电子邮件。您可以创建一个免费帐户并将其用于测试。
该系统的目标是以“当 X 发生时”然后“向我发送报告”的形式创建警报。在此初始版本中,我们仅支持电子邮件警报。
首先我们需要创建一个使命。任务是对警报的描述。例如“当村上春树发行新书时”。
$ python -m whenx create --mission " when Haruki Murakami releases a new book. "
系统将开始运行并每天创建一个新的观察。观察是查询当前状态的快照。系统将比较最后 2 个观察结果,如果检测到变化,则会发送一封包含报告的电子邮件。
$ python -m whenx monitor
您可以列出所有警报及其状态。
$ python -m whenx list
您可以通过警报 ID 删除警报。
$ python -m whenx delete --id a5dc910a-4457-4911-8ba3-c7713588e7ff