ByteNoteByteNote

字节笔记本

2026年2月16日

开源项目分享:Telegram-Search , 导出并搜索 Telegram 聊天记录

API中转
¥120

本文介绍 Telegram-Search,一个用于导出并本地搜索 Telegram 聊天记录的开源工具。该项目支持关键词搜索、模糊匹配及语义搜索,可快速定位历史消息,并可选结合 AI 进行聊天记录问答。

项目简介

Telegram-Search 是一个开源的 Telegram 聊天记录导出与搜索工具,由 groupultra 团队开发维护。截至目前,该项目在 GitHub 上已获得 3,700+ stars,主要使用 TypeScript 编写,采用 AGPL-3.0 开源协议。

该工具解决了 Telegram 官方客户端无法有效搜索中文聊天记录的痛点,让用户能够便捷地备份并检索自己的 Telegram 消息。无论任何语言,强大的本地分词能力都能准确命中搜索结果。

核心特性

导出与备份

  • 多数据库支持:兼容 PGlite 与 PostgreSQL,灵活选择存储方案
  • 媒体资源自动备份:可配置 MinIO 对象存储,无需手动干预
  • 智能预处理:消息导出时自动完成向量嵌入与分词处理
  • 实时同步:自动拉取并更新最新对话内容

聊天记录搜索

  • 智能分词:自动分词支持多语言精准检索
  • 混合搜索:融合模糊匹配与向量语义搜索,查找效率更高
  • RAG 智能问答:直接与 AI 聊天,基于历史上下文获得实时解答

高级功能

  • 未读消息智能摘要:一键汇总全部未读消息,自动生成精炼摘要

技术栈

  • TypeScript - 主要开发语言
  • PGlite / PostgreSQL - 数据库存储
  • MinIO - 对象存储(媒体文件)
  • 向量嵌入 - 语义搜索支持
  • Docker - 容器化部署

安装指南

前置要求

  • Docker 和 Docker Compose(推荐)
  • 或 Node.js >= 18 + pnpm(开发模式)

使用 Docker Compose(推荐)

  1. 创建项目目录:
bash
mkdir telegram-search
cd telegram-search
  1. 下载配置文件并启动服务:
bash
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/.env.example -o .env
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/init.sql -o init.sql
docker compose -f docker-compose.yml up -d
  1. 访问 http://localhost:3333 即可使用

使用 Docker Image

bash
docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest

快速开始

配置 Telegram API

  1. 访问 https://my.telegram.org/apps 创建应用
  2. 获取 API_IDAPI_HASH
  3. 在环境变量中配置:
bash
TELEGRAM_API_ID=你的API_ID
TELEGRAM_API_HASH=你的API_HASH

开始使用

  1. 打开 Web 界面
  2. 使用 Telegram 账号登录
  3. 选择要导出的对话
  4. 开始同步消息
  5. 使用搜索功能查找历史消息

使用示例

场景 1:基础搜索

在搜索框输入关键词,系统将自动进行分词并返回匹配结果。支持中文、英文等多种语言。

场景 2:语义搜索

输入自然语言描述,如「上周关于项目的讨论」,向量搜索将理解语义并返回相关消息。

场景 3:AI 问答

启用 AI 功能后,可以直接提问:「总结一下我和张三关于合同的沟通内容」,AI 将基于聊天记录给出答案。

环境变量配置

环境变量说明示例值
TELEGRAM_API_IDTelegram 应用 ID611335
TELEGRAM_API_HASHTelegram 应用 Hashd524b414d21f4d37f08684c1df41ac9c
DATABASE_TYPE数据库类型pglitepostgres
DATABASE_URLPostgreSQL 连接字符串postgresql://user:pass@host:5432/db
PROXY_URL代理地址socks5://user:pass@host:port
MINIO_URLMinIO 服务地址http://minio:9000

开发指南

纯浏览器模式

bash
git clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env
pnpm run dev

服务器模式

bash
git clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env

# 启动依赖服务
docker compose -f docker/docker-compose.dev.yml up -d pgvector minio

# 分别启动前后端
pnpm run server:dev
pnpm run web:dev

未来路线图

AI 能力增强

  • 自动生成会话总结
  • "超级大脑":基于历史消息自动构建人物与事件的知识图谱

媒体与链接拓展

  • 智能整理"已保存消息"收藏夹
  • 链接与图片深度索引:网页摘要、图片 OCR 文字识别

多平台融合

  • 新增 Telegram Bot 支持
  • 跨平台扩展:支持 Discord 及其他主流社交平台

注意事项

  • 本项目仅供导出和检索个人聊天记录使用
  • 数据由用户自行保存与管理,适合个人私有化部署
  • 项目未发行任何虚拟货币,请警惕相关诈骗风险

项目链接

分享: