LLM应用实战: AI资讯的自动聚合及报告生成

本人的微信公众号是"爱学习的妮妮qiang",欢迎订阅

1.背景

花了整整两天时间,本qiang~开发了一个关于AI新闻资讯的自动聚合及报告生成工具。

本篇记录一下整体的框架和实现原理,并且本着它山之石可以攻玉,本qiang~开放了所有的源码,源码可见如下第5章节,感谢各位看官的大力支持。如有问题,可私信或留言沟通。

成品可以参考链接:《AI资讯每日速递(2024.11.05)

2.为什么要做这件事?

深处AI时代,想要追赶前沿的一手技术与资讯,有一个工具能够实时获取每天的重点内容,包括咨询和技术相关内容,并且能够按照公司及内容的优先级进行筛选,然后午后捧着一杯奶茶,点开自动生成的报告,岂不美哉美哉?

3.相关技术

  1. Crawl4ai: 一块集成LLM的开源爬虫工具
  2. Swarm: OpenAI发布的Multi-Agent编排框架,可以参考本人先前的辛苦整理:《LLM应用实战: OpenAI多代理框架-Swarm
  3. Python-docx: word的操作工具
  4. Textdistance: 用于报告模块中资讯排序结果与原始资讯结果的对齐
  5. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mengrennwpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值