本人的微信公众号是"爱学习的妮妮qiang",欢迎订阅
1.背景
花了整整两天时间,本qiang~开发了一个关于AI新闻资讯的自动聚合及报告生成工具。
本篇记录一下整体的框架和实现原理,并且本着它山之石可以攻玉,本qiang~开放了所有的源码,源码可见如下第5章节,感谢各位看官的大力支持。如有问题,可私信或留言沟通。
成品可以参考链接:《AI资讯每日速递(2024.11.05)》
2.为什么要做这件事?
深处AI时代,想要追赶前沿的一手技术与资讯,有一个工具能够实时获取每天的重点内容,包括咨询和技术相关内容,并且能够按照公司及内容的优先级进行筛选,然后午后捧着一杯奶茶,点开自动生成的报告,岂不美哉美哉?
3.相关技术
- Crawl4ai: 一块集成LLM的开源爬虫工具
- Swarm: OpenAI发布的Multi-Agent编排框架,可以参考本人先前的辛苦整理:《LLM应用实战: OpenAI多代理框架-Swarm》
- Python-docx: word的操作工具
- Textdistance: 用于报告模块中资讯排序结果与原始资讯结果的对齐
- Gpt-4o-mini: 采用的大模型是gpt-4o-mini,每日免费调用200次,不够用...
4.整体框架

整体框架分为三个模块:
4.1下载模块
下载模块的数据源包括各大AI新闻网站及知名博客,然后通过开源爬虫工具crawl4ai进行爬取,爬取的维度包括标题、内容、图片等。
4.2解析模块
解析模块是针对爬取的结果进行解析,采用OpenAi Swarm框架,包含4个Agent,其中Analysis Agent是主体Agent,遍历下载的每一个资讯,将每条资讯分别同步给其他Agent完成具体的解析任务。其中Translator Agent主要功能是翻译,将英文翻译为中文;Classifier Agent主要功能是针对资讯进行分类,如涉及技术还是产品之类的;Modifier Agent主要功能是将资讯的标题和内容进行改写,标题可以改写更醒目一些,内容主要是提取摘要信息。
Analysis Agent负责串联其他3个Agent,每个Agent结束后均会返回到Analysis Agent,以便让Analysis Agent决定下一步的操作。
4.3报告模块
报告模块包含Sorter Agent,主要功能是将解析后的资讯按照公司、内容等维度进行排序,然后筛选出其中相对排名较高的资讯。
经过排序Agent后,最终将结果保存为word。
5.全部源码
5.1下载模块
采用crawl4ai工具进行网站爬取,示例的网站是https://www.aibase.com,网站存在中文及英文,但增加翻译Agent是为了兼容其他网站。
1. 文件处理file_util.py
import json
import hashlib
def get_datas(file_path, json_flag=True, all_flag=False, mode='r'):
"""读取文本文件"""
results = []
with open(file_path, mode, encoding='utf-8') as f:
for line in f.readlines():
if json_flag:
results.append(json.loads(line))
else:
results.append(line.strip())
if all_flag:
if json_flag:
return json.loads(''.join(results))
else:
return '\n'.join(results)
return results
def save_datas(file_path, datas, json_flag=True, all_flag=False, with_indent=False, mode='w'):
"""保存文本文件"""
with open(file_path, mode, encoding='utf-8') as f:
if all_flag:
if json_flag:
f.write(json.dumps(datas, ensure_ascii=False

最低0.47元/天 解锁文章
449






