Skip to content

hixyl/aiNewsAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI News Agent (AI新闻简报生成器)

English Version

ai-news-briefing-generator 是一个全自动化的新闻处理工具。它能自动从指定网站开始抓取新闻,利用大语言模型(LLM)进行智能排名、去重、总结和分类,并最终生成结构清晰的每日新闻简报(Markdown格式)。

✨ 核心功能

  • 🤖 自动化爬虫与发现: 从一个起始URL开始,自动发现和抓取网站上的文章链接和栏目链接。
  • 🏆 两阶段锦标赛排名: 创新地使用“瑞士制”锦标赛排名系统,通过“资格赛”和“决赛圈”两个阶段,高效且公平地筛选出最重要的新闻文章。
  • 💡 智能聚类去重: (新) 利用LLM进行高效的语义聚类。通过将文章标题进行批处理比较,能精准识别报道同一新闻事件的不同文章,并将其合并为一个议题,选出得分最高的作为代表,确保了新闻的独特性和多样性。
  • 🧠 LLM深度赋能: 全面利用大语言模型(LLM)执行复杂的自然语言任务,是整个项目的核心驱动力:
    • 链接分类: 判断链接是指向具体文章还是新闻栏目。
    • 内容排名: 根据用户定义的“任务描述”,对一组新闻进行重要性排序。
    • 深度处理: 对文章进行全面的分析和再创造,输出包含以下元素的结构化JSON数据:
      • 生成全新的、更精炼的标题。
      • 撰写“一句话摘要”和更详细的“深度摘要”。
      • 提取核心关键词。
      • 自动分配最合适的分类。
    • 总编导语: 在所有新闻处理完毕后,AI会模仿总编辑的口吻,为当天的简报撰写一段宏观的导语。
  • 🛡️ 稳健的解析与重试: 拥有强大的LLM响应解析能力,能稳定地从LLM返回的文本中提取出有效的JSON对象。同时,内置了针对文章处理和网络请求的、带指数退避策略的多轮重试机制,确保了流程的稳定性和高成功率。
  • 📄 全面的报告输出:
    • 生成一份包含目录和AI导语的每日主简报 (News-Briefing-YYYY-MM-DD.md)。
    • 为每一篇成功处理的文章生成一份独立的Markdown文件,方便单独查看。
  • 🛠️ 高度可配置: 从爬取深度、排名算法、处理文章数量,到所有与LLM交互的Prompt,几乎所有参数都可以在 config.js 文件中轻松调整。
  • 🖥️ 丰富的命令行界面: 使用 oracli-progress 提供了优雅且实时的多阶段进度条,让整个处理流程的进度一目了然。

🚀 工作流程

整个工具的执行流程被清晰地划分为五个主要步骤,由 index.js 统一调度:

  1. [步骤 1/5] 抓取与资格赛: crawler.js 模块负责从入口URL开始,递归抓取页面上的链接。然后,通过一个多轮积分制的“资格赛”,从大量链接中初步筛选出具有潜在价值的候选文章。
  2. [步骤 2/5] 聚类与去重: grouper.js 模块通过高效的批处理方式,调用LLM对候选文章进行语义聚类。它将报道同一事件的文章分到一组,并选出该组的“代表”,从而过滤掉重复内容。
  3. [步骤 3/5] 决赛圈排名: ranker.js 模块对去重后的独特文章列表进行最终的“锦标赛排名”。通过多轮小组比对和积分,精确地确定每篇文章的重要性次序。
  4. [步骤 4/5] 深度处理与总结: processor.js 模块负责处理最终入选的文章。它会提取原文、调用LLM进行分析和总结、解析返回的JSON数据,并内置强大的失败重试逻辑。
  5. [步骤 5/5] 生成最终简报: reporter.js 模块负责收尾工作。它会调用LLM生成“总编导语”,然后将所有处理好的文章数据整合成一份格式优美的Markdown简报。

⚙️ 安装与使用

  1. 克隆仓库

    git clone https://github.com/hixyl/aiNewsAgent.git
    cd aiNewsAgent
  2. 安装依赖

    npm install
  3. 配置环境

    • 打开 config.js 文件。
    • 关键配置: 修改 llm.studioUrl,使其指向你本地正在运行的、兼容OpenAI API格式的LLM服务(例如 LM Studio, Ollama, LoLLMs 等)的地址。
    • (可选) 根据你的需求调整其他配置,如 startUrl (起始抓取网站) 和 taskDescription (定义你的新闻偏好)。
  4. 启动程序

    npm start
  5. 查看结果

    • 程序执行完毕后,所有生成的报告和日志文件都会保存在 output/ 目录下(该目录已被.gitignore忽略)。
    • 日志文件会记录在 logs/ 目录下。

About

一个使用AI进行新闻抓取、排名、处理和简报生成的工具。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published