当前位置: 首页 > news >正文

2025最新Telegram快读助手:一款智能Telegram链接摘要机器人

Telegram快读助手:一款智能Telegram链接摘要机器人

在工作群、学习群或信息群中,经常会被各类链接刷屏:长篇文章、PDF文档、推特线程、LinkedIn帖子、YouTube视频……想快速判断链接里究竟讲了什么?【Telegram快读助手(telegram link summarizer agent)】来帮你!它能够自动识别链接类型,抓取内容并生成简洁摘要,让你一眼知晓要点,是内容过载时代的必备利器。


目录

  1. 项目简介

  2. 核心功能

  3. 技术架构

  4. 技术栈

  5. 快速上手

    • 克隆仓库
    • 安装依赖
    • 环境变量配置
  6. 使用示例

  7. 本地调试(Webhook & Polling)

  8. Docker 运行

  9. 自托管部署(Docker)

  10. 部署到 Google Cloud Run

  11. 总结与展望


在这里插入图片描述

项目简介

Telegram快读助手 是一款基于 Telegram Bot 的智能代理(agent),通过LangGraph和各类外部服务,多步归纳推理来完成以下任务:

  • 自动路由:判断链接类型(网页、PDF、推特/X、LinkedIn、YouTube 等)。
  • 内容提取:针对不同类型的链接调用最合适的抓取手段,如 Playwright、PyMuPDF、twitterapi.io、Tavily Search SDK 等。
  • 摘要生成:利用 BAML LLM 函数(如 RouteRequest)、Deepseek/Gemini 等大模型,生成结构化、简洁的链接摘要。
    在这里插入图片描述

图:Agent 多步骤执行可视化
在这里插入图片描述

图:系统架构示意图

项目源码:https://github.com/MaoTouHU/telegram_link_summarizer_agent


核心功能

  • 链接摘要:支持各种 URL,包括标准网页、PDF 文档、Twitter/X 帖子、LinkedIn 帖子及 YouTube 视频。
  • 智能路由:使用 LLM 判断链接类型,自动选择最佳抓取 & 处理流程。
  • YouTube 支持:通过 Playwright + AgentQL 抓取视频标题与描述。
  • Twitter/X 支持:使用 twitterapi.io 获取推特内容(支持线程)。
  • LinkedIn 支持:使用 Playwright + AgentQL 解析 LinkedIn 帖子。
  • PDF 支持:通过 PyMuPDF(fitz)处理并提取 PDF 文本。
  • 多步骤 Agentic 工作流:基于 LangGraph,串联多个工具与 LLM,实现稳定可靠的处理流程。
  • 静默失败:Telegram Bot 接口可在抓取失败时静默处理,不打扰群聊体验。

技术架构

整个系统由三大部分组成:

  1. 路由与摘要生成(BAML + LLM)
  2. 抓取与解析工具链(Playwright、PyMuPDF、Tavily、twitterapi.io、AgentQL)
  3. Telegram Bot 接口python-telegram-bot + FastAPI + Uvicorn)

LangGraph 负责将用户输入(链接)经过 RouteRequest 路由至不同子图,再由子图调度相应工具,最终将结果反馈给用户。


技术栈

  • Orchestration:LangGraph
  • LLM & Routing:BAML 函数,Deepseek/Gemini
  • 网页提取:Tavily Search SDK
  • YouTube:Playwright + AgentQL
  • Twitter/X:twitterapi.io + requests
  • LinkedIn:Playwright + AgentQL
  • PDF:PyMuPDF (fitz)
  • Bot 框架python-telegram-bot
  • Web 框架:FastAPI + Uvicorn
  • 部署:Docker、Google Cloud Run

快速上手

1. 克隆仓库

git clone https://github.com/MaoTouHU/telegram_link_summarizer_agent.git
cd telegram_link_summarizer_agent

2. 安装依赖

推荐使用 uv 或者 pip

# 使用 uv(推荐)
uv pip install -e .# 或者使用 pip
pip install -e .

安装 Playwright 浏览器:

playwright install

3. 环境变量配置

在项目根目录新建 .env 文件,并添加以下配置(替换为你的实际值):

# --- 核心 API Key ---
# 任选一种 LLM 提供商
# GEMINI_API_KEY="your_google_gemini_api_key"
DEEPSEEK_API_KEY="your_deepseek_api_key"
GOOGLE_API_KEY="your_google_cloud_api_key"# 工具 API Key
TAVILY_API_KEY="your_tavily_api_key"
TWITTER_API_IO_KEY="your_twitterapi.io_api_key"
AGENTQL_API_KEY="your_agentql_api_key"# Telegram Bot
TELEGRAM_BOT_TOKEN="your_telegram_bot_token"# Webhook(部署时使用)
USE_POLLING="true"  # true 则忽略 WEBHOOK_URL 等配置
# WEBHOOK_URL="https://<your-ngrok-or-domain>"
# TELEGRAM_WEBHOOK_SECRET_TOKEN="your_secret_token"

⚠️ 重要

  • TWITTER_API_IO_KEY 可在 twitterapi.io 获取。
  • 保证 .env 不被提交至代码仓库(已在 .gitignore 中)。

使用示例

  • 测试脚本
    修改 agent.py 底部的测试用例后运行:

    python agent.py
    
  • 可视化
    生成 LangGraph 可视化图:

    python agent_viz.py
    # 会输出 agent_graph.png
    

本地调试(Webhook & Polling)

Polling 模式(推荐)

export USE_POLLING="true"
uvicorn bot:app --reload

Bot 会自动以长轮询方式获取消息,无需公网或 ngrok。

Webhook 模式(开发/测试)

  1. 启动本地服务器:

    ./scripts/run_local.sh
    
  2. 使用 ngrok 暴露端口:

    ngrok http 8080
    
  3. 将生成的 https://xxxx.ngrok-free.app 填入 .env 中的 WEBHOOK_URL,重启服务。


Docker 运行

chmod +x ./scripts/run_docker.sh
./scripts/run_docker.sh
  • 默认映射本地 8080 端口。
  • 可通过 docker logs -f telegram-summarizer 查看日志。

自托管部署(Docker)

  1. 服务器准备:安装 Git、Docker,并确保 Docker 服务启动。

  2. 克隆 & 配置:与上文“快速上手”部分一致,配置好 .env

  3. 运行部署脚本

    chmod +x ./scripts/deploy_server.sh
    ./scripts/deploy_server.sh
    
  4. 监控管理

    docker ps
    docker logs -f telegram-summarizer
    docker restart telegram-summarizer
    

若采用 Webhook 模式,务必确保 WEBHOOK_URLTELEGRAM_WEBHOOK_SECRET_TOKEN 配置正确,并开放对应端口(如 8080 或 443)。


部署到 Google Cloud Run

  1. 配置 Secret Manager
    编辑并运行 scripts/setup_secrets.sh,按照提示将 .env 中的各 API Key 同步到 GCP Secret Manager。

  2. 构建 & 部署
    scripts/deploy_cloud_run.sh 中配置好 SECRETS_TO_MAP,然后运行:

    chmod +x ./scripts/deploy_cloud_run.sh
    ./scripts/deploy_cloud_run.sh
    
    • 自动构建 Docker 镜像、推送到 Artifact Registry
    • 部署到 Cloud Run,自动设置 Telegram Webhook

总结与展望

Telegram快读助手利用 多工具+多模型 的 Agent 架构,实现对常见链接类型的一站式摘要处理。接下来可考虑:

  • 支持更多平台:如 Reddit 帖子、GitHub Issue/PR 摘要
  • 多语言摘要:自动识别语言并翻译/摘要
  • 个性化摘要模板:可配置不同场景下的摘要风格

欢迎在 GitHub 上 ★ 本项目,并提出 PR 或 Issue,让我们一起把它打磨得更好!

仓库地址:https://github.com/MaoTouHU/telegram_link_summarizer_agent
有任何问题或建议,欢迎 Issues 或 Discussions!

在这里插入图片描述

http://www.dtcms.com/a/267215.html

相关文章:

  • 深入理解微服务中的服务注册与发现
  • 《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
  • 云原生微服务间的异步消息通信:最终一致性与系统容错的架构实战
  • 供应链管理学习笔记4-供应链网络设计
  • 前端-CSS-day1
  • QT中的网络通信
  • LLM:位置编码详解与实现
  • 深层神经网络:原理与传播机制详解
  • java的注解和反射
  • JVM的位置和JVM的结构体系
  • 交互式剖腹产手术模拟系统开发方案
  • 【openp2p】学习3:【专利分析】一种基于混合网络的自适应切换方法、装 置、设备及介质
  • C# 事件(事件访问器)
  • vue中添加原生右键菜单
  • [特殊字符]全面解锁远程运维新时代:CRaxsRat v7.4 工具实用指南(附推荐资源)
  • Oracle 高级 SQL 查询与函数详解:多表连接、子查询、聚合、分析函数
  • 冒泡和快速排序的区别
  • faster_lio 原理及代码
  • 【Oracle专栏】分区表增加分区
  • WPF学习笔记(25)MVVM框架与项目
  • spring-ai-alibaba 1.0.0.2 学习(十二)——聊天记忆扩展包
  • 深度学习的核心理论与技术
  • 11_架构演进:从单体到云原生的蜕变
  • 炸鸡派例程-ADC
  • RabbitMQ 4.1.1初体验-队列和交换机
  • 【AI论文】WorldVLA:迈向自回归动作世界模型
  • 第二章 简单程序设计
  • 盘式制动器的设计+说明书和CAD)【6张】+绛重
  • 一种结合双阶段注意力循环神经网络(DA-RNN)和卷积块注意力模块(CBAM)的滚动轴承故障诊断方法
  • Rust实用案例解析