telegram-search
导出 Telegram 聊天记录并支持中文语义模糊搜索的开源工具,基于 pgvector 向量数据库 + Jieba 分词,无需外部 AI API
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
导出 Telegram 聊天记录并支持中文语义模糊搜索的开源工具,基于 pgvector 向量数据库 + Jieba 分词,无需外部 AI API
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的经历——Telegram 里翻半天找不到半年前群友分享的那句金句,或者想查一段聊天记录却被海量消息淹没?Telegram Search 正是为解决这个痛点而生的开源工具。
Telegram 是目前最流行的加密通讯工具之一,月活用户超过 9 亿。然而 Telegram 的内置搜索对中文支持极差——无法按语义匹配,无法模糊搜索,想精准定位一条历史消息往往要翻几十屏。用户「聊天记录」实际上是沉睡的资产,大量有价值的讨论、项目决策、代码片段就这样淹没在消息洪流中。
Telegram Search 由独立开发者 groupultra 创建,最初是为自己解决上述问题而生。凭借精准的语义搜索能力和多语言支持,迅速在 GitHub 积累超过 4000 颗星,成为 Telegram 工具类项目中增长最快的开源项目之一。其托管在 search.lingogram.app 的线上版本已有稳定用户群体。
Telegram Search 采用两阶段检索策略,同时满足精确关键词匹配和语义模糊搜索两种需求:
第一阶段:中文分词(Jieba)精准匹配
项目使用 @node-rs/jieba 对中文聊天内容进行本地分词处理,无需依赖任何外部 NLP 服务。即使用户只记得关键词的一部分(如「项目决___」),也能精准命中「项目决策」相关消息。Jieba 分词器在 Node.js 中以 Rust WASM 加速,性能优异。
第二阶段:pgvector 向量搜索语义匹配
对于以自然语言描述的模糊查询(如「找一下那个讨论 AI 部署的对话」),项目基于 PostgreSQL + pgvector 扩展构建向量数据库,将聊天内容编码为高维向量,通过余弦相似度检索语义最相近的消息。这种方式完全离线运行,不依赖 OpenAI 等外部嵌入 API,用户隐私得到充分保护。
聊天导出与数据管理
项目提供 Telegram Bot + CLI 双重导出工具,用户可通过 Bot 交互式授权导出自己的聊天记录,数据全程存储在本地 MinIO 对象存储中,不会流向第三方服务器。
项目采用 pnpm workspaces monorepo 架构,代码组织清晰:
| 包 | 职责 |
|---|---|
apps/server | 后端服务:API + WebSocket + Session 管理,基于 h3 框架 |
apps/web | 前端界面:Vue 3 + Vite + Pinia + TailwindCSS |
packages/core | 核心业务:分词、向量处理、DB 操作、telegram 包封装 |
packages/bot | Telegram Bot:基于 Grammy 框架,负责任务调度 |
packages/cli | 命令行工具:交互式导出聊天记录 |
packages/schema | 数据库 Schema:Drizzle ORM 定义,pgvector 向量列 |
packages/client | 客户端 SDK:前后端共享的 API 客户端 |
关键依赖:
@electric-sql/pglite(客户端嵌入式 Postgres)+ pgvector(向量扩展)@xsai/embed(嵌入生成)、@xsai/generate-text(文本生成)minio SDK 接入兼容 S3 的 MinIO 对象存储grammy(Telegram Bot 框架)开发体验:
Web 界面(Vue 3):search.lingogram.app 提供了开箱即用的线上版本,用户授权 Telegram Bot 后即可在浏览器中搜索自己的聊天记录。界面简洁,支持多语言(中文/英文/日文)。
本地部署:克隆仓库后,在 .env.local 配置 TELEGRAM_BOT_TOKEN + TELEGRAM_API_ID + TELEGRAM_API_HASH,运行 docker compose -f docker/docker-compose.yml up 即可一键启动全部服务(app + pgvector + MinIO)。
命令行导出:pnpm run cli 启动交互式 CLI,依次输入 Bot Token 和目标 Chat ID,完成数据导出。
Telegram Search 代表了一个重要趋势:本地化 AI 工具。它不依赖任何外部 AI 服务,用 Jieba + pgvector 在本地完成了完整的中文语义搜索能力——这在当前大模型满天飞的环境下,反而显得务实而克制。
项目在 GitHub 上已获得超过 4000 颗星,Discord 社区活跃,贡献者来自多个国家。它的成功说明:真正解决具体问题的垂直工具,比通用大模型更能让用户愿意付费和传播。

项目 Web UI 界面,支持模糊语义搜索
技术关键词: TypeScript, Vue 3, Node.js, pgvector, Drizzle ORM, Grammy, Telegram Bot, RAG, 向量搜索, Monorepo