Telegram Search
轻松导出、备份并模糊搜索你的 Telegram 聊天记录,支持向量语义搜索与 AI 摘要。
证据显示 CLI 设计遵循最小权限原则:只申请所选会话类别,不申请联系人或文件导出权限;同步需显式 --takeout 且用户同意;stdout 只输出 JSON,日志走 stderr;导出不含媒体二进制、session、向量或密钥。但未提供代码级验证,且依赖安全仅靠 CI 和 provenance 检查,未提供依赖审计结果。外部效果方面,同步会写入本地 PGlite,但未提供回滚机制。来源归属仅通过 GitHub 仓库和许可证声明,发布者未验证。
README 与 CLI 文档描述一致,package.json 脚本与文档命令匹配,但未提供失败消息的具体示例。依赖可用性方面,使用 pnpm 和 lockfile,CI 有构建测试,但未提供依赖可用性保证。
面向个人用户和 Agent 使用场景,提供 CLI 和 Docker 部署,支持多种数据库和存储。能力边界清晰:只做导出和搜索,不执行 AI 总结(除非用户配置)。触发精度方面,CLI 命令明确,但未提供自动化触发机制。环境适配良好,支持多种部署方式。
信息架构清晰,README 提供快速开始和详细文档链接。安装说明详细,包括 Docker Compose 和 Docker Image。命名稳定,版本号明确。示例和 FAQ 有提供,但已知限制未明确列出。许可证为 AGPL-3.0,完整文本存在。版本变更日志未提供,维护责任未明确。
输出为 JSON 和 JSONL,便于程序处理。边际价值高,解决 Telegram 中文搜索痛点。成本效益合理,开源免费,但需自行部署。
README 中的功能声明未提供测试证据,CI 有测试但未提供覆盖率报告。跨来源佐证有限,仅依赖仓库自身。事实与推断分离不明确,部分功能为路线图未实现。
- 发布者身份未验证,依赖供应链风险需自行评估。
- 未提供依赖审计或漏洞扫描结果,建议部署前检查依赖安全。
- 同步操作会写入本地数据库,但未提供回滚机制,操作前请备份。
- 部分高级功能(如 AI 总结)需要用户自行配置 API,注意数据隐私。
这个 Agent 能做什么,适合哪些场景?
Telegram Search 是一个开源工具,用于导出、备份和搜索 Telegram 聊天记录。它提供 Web 界面、Telegram Bot 和本地优先的 CLI(Agent 模式)。消息导出时自动进行分词和向量嵌入,支持多语言模糊匹配和图片语义搜索。部署方式包括 Docker Compose 或纯浏览器模式。项目还提供 RAG 问答、未读消息摘要和基于 Bot 的搜索功能。
Telegram Search 通过 Telegram API 拉取用户授权的聊天记录,将消息持久化到 PGlite 或 PostgreSQL 数据库,并为每条消息生成向量嵌入和分词索引。它提供 Web 界面(默认端口 3333)让用户搜索、浏览和导出消息。CLI 工具支持 configure、login、chats list、sync 和 export 等命令,输出 JSON 格式结果。此外,还支持 Telegram Bot 交互搜索和 deep link 跳转,以及通过 AI 嵌入模型进行图片语义搜索。
- 经常在 Telegram 聊天中查找历史信息,但官方搜索不支持中文或功能不足的普通用户
- 需要备份 Telegram 聊天记录,并希望按日期范围导出 JSONL 文件的个人或团队
- 希望通过自然语言与 AI 对话,基于历史消息获得 RAG 问答答案的用户
- 需要一键汇总未读消息摘要,快速了解群聊或频道动态的活跃用户
- 希望将 Telegram 消息与向量数据库结合,构建知识图谱或进一步分析的开发者
这个 Agent 有哪些优点和局限?
- 支持 PGlite 和 PostgreSQL,部署灵活,数据库可迁移
- 内置向量嵌入和模糊搜索,中文和英文等多语言检索准确
- 提供 Web 界面、CLI 和 Telegram Bot 三种交互方式
- 支持图片语义搜索,以文搜图
- 具有未读消息摘要和 RAG 问答等 AI 功能
- 需要用户提供 Telegram API ID 和 Hash,涉及第三方凭据配置
- 依赖外部 AI 嵌入模型和 LLM API,可能产生费用和隐私风险
- 部署需要 Docker 或 Node.js 环境,有一定技术门槛
- CLI 的同步操作严格限制,需要用户明确授权,流程复杂
- 媒体存储依赖 MinIO,增加了基础设施管理成本
如何安装或部署这个 Agent?
- 克隆仓库:
git clone https://github.com/groupultra/telegram-search.git;2. 安装依赖:pnpm install;3. 复制环境变量:cp .env.example .env;4. 使用 Docker Compose:curl -L ...下载 docker-compose.yml 等文件,然后运行docker compose up -d。或者使用 Docker 镜像:docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest。也可开发模式:pnpm run dev(纯浏览器)或pnpm run server:dev和pnpm run web:dev(服务器模式)。
如何使用这个 Agent?
- 通过 Web 界面(如 http://localhost:3333)登录自己的 Telegram 账号(需要 API ID 和 Hash)。2. 在界面中授权并开始同步消息。3. 使用搜索框进行关键词或向量语义搜索。4. 若要使用 CLI,先构建包:
pnpm run build:packages && pnpm -F @tg-search/cli build,然后执行pnpm cli --profile work profile configure --apiId 123456 --apiHash abcdef配置,再pnpm cli --profile work auth login登录,使用chats list和sync命令同步数据,最后export导出。