场景介绍

Credit to: 数字生命卡兹克 点击访问原文:20个群都来问我的AI早报,是这么做的。

技术概述

使用开源框架 Crawl4ai 快速爬取新闻网站24小时之内的文章内容,使用 GLM 进行总结归纳生成【AI 早报】,高效获取处理新闻信息。
GitHub 开源项目 Crawl4ai:https://github.com/unclecode/crawl4ai Crawl4AI 简化了异步网络爬取和数据提取,使其对大型语言模型(LLMs)和人工智能应用变得可访问

方案

获取新闻信息

以抓取 AI Base 新闻页面为例 https://www.aibase.com/zh/news/ 首先需要获取 AI Base 新闻页面中的文章 URL,可以通过库 BeautifulSoup 快速实现。
  1. 获取文章链接
AI Base 的文章较为特殊,文章的编号是连续的,获取第一条文章的编号即可递推获得其它文章的编号。
import requests
from bs4 import BeautifulSoup
import re

# 获取首条文章的链接
def extract_snumber_from_url(base_url):
    try:
        response = requests.get(base_url)
        response.encoding = 'utf-8'

        soup = BeautifulSoup(response.text, 'html.parser')
        links = soup.find_all('a')

        for link in links:
            href = link.get('href')
            if href:
                pattern = r'/zh/news/(\d+)' 
                match = re.search(pattern, href)
                if match:
                    snumber = int(match.group(1))
                    return snumber
    except Exception as e:
        print(f"error: {e}")
    return None
  1. 获取文章内容
根据 crawl4ai 项目的案例进行适当的改造即可读取,主要爬取文章标题、发布时间和正文三个内容。
import json
import asyncio
from crawl4ai import AsyncWebCrawler
from crawl4ai.extraction_strategy import JsonCssExtractionStrategy

# news_url = base_url + snumber
async def extract_news_article(news_url):
    schema = {
        "name": "AIbase News Article",
        "baseSelector": "div.pb-32", 
        "fields": [
            {
                "name": "title",
                "selector": "h1",
                "type": "text",
            },
            {
                "name": "publication_date",
                "selector": "div.flex.flex-col > div.flex.flex-wrap > span:nth-child(6)",
                "type": "text",
            },
            {
                "name": "content",
                "selector": "div.post-content",
                "type": "text",  
            },
        ],
    }

    extraction_strategy = JsonCssExtractionStrategy(schema, verbose=True)

    async with AsyncWebCrawler(verbose=True) as crawler:
        result = await crawler.arun(
            url=news_url, 
            extraction_strategy=extraction_strategy,
            bypass_cache=True,
        )

        if not result.success:
            print("error")
            return
            
        extracted_data = json.loads(result.extracted_content)

    return extracted_data
文章内容信息获取如下:
[
  {
    "title": "新加坡推出 AI 系统安全指南,选举中禁用深度伪造技术",
    "publication_date": "2024年10月18号 11:54",
    "content": "新加坡最近在网络安全方面发布了一系列重要公告,特别是针对人工智能(AI)系统的安全指南,以及禁止在选举广告中使用深度伪造技术的立法。这些举措旨在帮助组织在 AI 的开发和部署过程中降低潜在风险,确保技术的安全性。图源备注:图片由AI生成,图片授权服务商Midjourney新加坡网络安全局(CSA)推出的《AI 系统安全指南》强
调了 “设计即安全” 的理念,旨在帮助企业识别和应对各种网络安全威胁。指南分为五个阶段,涵盖了 AI 生命周期的各个环节,包括开发、运营和维护,甚至是数据和模型的终止处理。CSA 指出,AI 系统容易受到对抗性攻击,黑客可能会故意操控或误导这些系统,因此,必须从设计阶段就注重安全。与此同时,新加坡国会通过了一项新法案,禁止在选举广告中使用任何经过数字生成或操控的内容,特别是深度伪造技术。数字化广告内容必须满足四个条件:必须是经过数字生成或操控的;描绘候选人未曾说过或做过的事情;要足够逼真,以至于某些公众成员会认为这是合法的。这一法律的出台,旨在保护选举的公正性,确保候选人的真实形象不被误导。此外,为了提高医疗设备的安全性,CSA 还推出了网络安全标签计划。这项计划为医疗设备的安全性打上标签,帮助用户在采购时作出更明智的决策。该计划适用于处理个人可识别信息和临床数据的设备,产品将根据四个等级进行评估。虽然该标签是自愿的,但 CSA 鼓励大家采取主动措施,保障医疗设备的网络安全。这些新政策和措施显示了新加坡在保护公民和维护公共安全方面的决心,特别是在面对日益增长的网络威胁和技术滥用问题时。划重点:🔒 新加坡发布 AI 系统安全指南,强调 “设计即安全” 的理念,帮助组织应对网络安全威胁。🗳️ 新立法禁止在选举广告中使用深度伪造技术,确保选举公正,保护候选人形象。🏥 CSA 推出医疗设备网络安全标签计划,提升医疗设备安全性,帮助用户明智选择。"
  }
]
使用该方法,根据文章链接依次获取24小时内发布的所有文章内容即可。

使用 智谱API 生成 AI早报

获得文章完整内容后使用 GLM 总结即可生成一条新闻的早报。
  1. GLM 总结文章内容
GLM-4-Plus 总结的会更好一点,这里就用免费的 flash 作为案例。
from zhipuai import ZhipuAI

def get_news_summary(data):
    API_KEY = "your api key"
    BASE_URL = "https://open.bigmodel.cn/api/paas/v4"

    client = ZhipuAI(api_key=API_KEY, base_url=BASE_URL)

    system_prompt = """
    ## Goals
    读取并解析JSON格式的文章,提炼出文章的主旨,形成一句简洁的概述。

    ## Constrains:
    概述长度不超过80字,保持文章的原意和重点。

    ## Skills
    JSON解析能力,文章内容理解和总结能力。

    ## Output Format
    一句话概述,简洁明了,不超过80字。

    ## Workflow:
    1. 读取并解析JSON格式的文章
    2. 理解文章内容,提取关键信息
    3. 生成一句简洁的概述,不超过80字
    """

    try:
        response = client.chat.completions.create(
            model="glm-4-flash",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": f"文章内容:{data}"}
            ],
            top_p=0.7,
            temperature=0.1,
            stream=False
        )
        return response.choices[0].message.content
    except Exception as e:
        print(f"error: {e}")
        return None
  1. 生成 AI 早报
现在批量获取文章内容并提交给 GLM 进行处理,就可以获得专属的 AI 早报啦!
【AI早报】 2024年10月18日

1. Meta研究人员利用Transformer模型和“逆向生成”方法,成功发现动力系统的全局李雅普诺夫函数,突破传统方法局限,提升AI在数学推理问题上的能力。

2. 自动驾驶公司小马智行递交IPO申请,计划纳斯达克上市,估值85亿美元,Robotaxi业务增长强劲。

3. Perplexity推出“内部知识搜索”,整合内外部数据,提升企业搜索效率,并新增团队共享与AI助手定制功能。

4. 哈佛医学院推出CHIEF AI,精准诊断多种癌症,预测患者结果,推荐治疗方案,有望革命性改变癌症诊断。

5. X更新隐私政策,默认允许第三方使用用户数据训练AI,引发隐私保护担忧。

6. 中国科研团队提出的新图像处理技术SGOOL,模拟人类视觉注意力,显著提升图像生成质量,开创认知特征应用新范式。

7. 三星工会呼吁解除AI工具限制,改革人事绩效,以提升竞争力并避免危机。

8. 新加坡发布AI安全指南,禁用深度伪造技术,推医疗设备安全标签,保障网络安全与选举公正。

...
如果文章数目太多可以考虑对文章内容做排序和筛选,进一步提升早报的生成质量。

方案亮点

  • 极致时效性:抢占信息传递 “第一时间窗口”
  • 内容精准度:千人千面的 “信息减法” 与 “价值加法”
  • 形式与交互创新:突破 “文字 + 图片” 的传统框架
  • 技术驱动的 “反人工依赖” 与 “低成本扩展”