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!

在这里插入图片描述

创建一个简单的 Telegram 机器人可以通过以下步骤实现: 1. **创建机器人并获取API令牌**: - 打开 Telegram,搜索 `@BotFather`。 - 发送 `/start` 命令给 BotFather。 - 发送 `/newbot` 命令,BotFather 会要求你输入机器人的名字和用户名。 - 按照提示完成创建,BotFather 会给你一个 API 令牌(Token),请妥善保存。 2. **设置开发环境**: - 确保你已经安装了 Python。如果没有安装,可以从 [Python 官方网站](https://www.python.org/)下载并安装。 - 安装 `python-telegram-bot` 库。打开命令行或终端,运行以下命令: ```bash pip install python-telegram-bot ``` 3. **编写机器人代码**: - 创建一个新的 Python 文件,例如 `bot.py`。 - 编写以下代码: ```python from telegram.ext import Updater, CommandHandler, MessageHandler, Filters # 替换为你的 API 令牌 TOKEN = 'YOUR_API_TOKEN' # 定义处理命令的函数 def start(update, context): update.message.reply_text('你好!我是你的机器人。') def echo(update, context): update.message.reply_text(update.message.text) def main(): # 创建 Updater 对象并传入你的令牌 updater = Updater(TOKEN, use_context=True) # 获取调度器以注册处理程序 dp = updater.dispatcher # 注册处理程序 dp.add_handler(CommandHandler('start', start)) dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo)) # 启动机器人 updater.start_polling() # 运行机器人直到按下 Ctrl-C updater.idle() if __name__ == '__main__': main() ``` 4. **运行机器人**: - 在命令行或终端中,导航到包含 `bot.py` 的目录。 - 运行以下命令: ```bash python bot.py ``` 5. **测试机器人**: - 打开 Telegram,搜索你创建的机器人。 - 发送 `/start` 命令,机器人会回复“你好!我是你的机器人。”。 - 发送任意文本,机器人会回复相同的文本。 通过以上步骤,你就可以创建一个简单的 Telegram 机器人了。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猫头虎

一分也是爱,打赏博主成就未来!

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

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

打赏作者

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

抵扣说明:

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

余额充值