{"id":28307992,"url":"https://github.com/groupultra/telegram-search","last_synced_at":"2026-01-26T08:13:01.293Z","repository":{"id":276531961,"uuid":"929338255","full_name":"groupultra/telegram-search","owner":"groupultra","description":"🔍  一个功能强大的 Telegram 聊天记录搜索工具，支持向量搜索和语义匹配。A powerful Telegram chat search tool with vector search and semantic matching capabilities.","archived":false,"fork":false,"pushed_at":"2025-06-07T17:58:39.000Z","size":6532,"stargazers_count":2227,"open_issues_count":24,"forks_count":157,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-06-07T18:31:29.897Z","etag":null,"topics":["embedding","mcp","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/groupultra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yaml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["luoling8192"]}},"created_at":"2025-02-08T10:09:02.000Z","updated_at":"2025-06-07T11:55:48.000Z","dependencies_parsed_at":"2025-02-28T22:05:03.732Z","dependency_job_id":"3e07a3a8-6de5-46e8-a77d-9a22909baebf","html_url":"https://github.com/groupultra/telegram-search","commit_stats":null,"previous_names":["luoling8192/telegram-search","gramsearch/telegram-search"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupultra%2Ftelegram-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupultra%2Ftelegram-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupultra%2Ftelegram-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupultra%2Ftelegram-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/groupultra","download_url":"https://codeload.github.com/groupultra/telegram-search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groupultra%2Ftelegram-search/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259072694,"owners_count":22801069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedding","mcp","telegram","telegram-bot"],"created_at":"2025-05-24T07:01:21.090Z","updated_at":"2026-01-26T08:13:01.287Z","avatar_url":"https://github.com/groupultra.png","language":"TypeScript","funding_links":["https://github.com/sponsors/luoling8192"],"categories":["Code Analysis \u0026 Search","TypeScript","📚 Projects (1974 total)"],"sub_categories":["Other IDEs","MCP Servers"],"readme":"![preview](./docs/assets/preview.png)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://trendshift.io/repositories/13868\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/13868\" alt=\"groupultra%2Ftelegram-search | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  [\u003ca href=\"https://search.lingogram.app\"\u003e立即体验\u003c/a\u003e] [\u003ca href=\"./docs/README_EN.md\"\u003eEnglish\u003c/a\u003e] [\u003ca href=\"./docs/README_JA.md\"\u003e日本語\u003c/a\u003e]\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://discord.gg/NzYsmJSgCT\"\u003e\n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscord.com%2Fapi%2Finvites%2FNzYsmJSgCT%3Fwith_counts%3Dtrue\u0026query=%24.approximate_member_count\u0026suffix=%20members\u0026logo=discord\u0026logoColor=white\u0026label=%20\u0026color=7389D8\u0026labelColor=6A7EC2\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://t.me/+Gs3SH2qAPeFhYmU9\"\u003e\n    \u003cimg alt=\"Telegram\" src=\"https://img.shields.io/badge/Telegram-%235AA9E6?logo=telegram\u0026labelColor=FFFFFF\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://deepwiki.com/groupultra/telegram-search\"\u003e\n    \u003cimg alt=\"DeepWiki\" src=\"https://deepwiki.com/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/groupultra/telegram-search/releases\"\u003e\n    \u003cimg alt=\"GitHub Package Version\" src=\"https://img.shields.io/github/package-json/v/groupultra/telegram-search?style=flat\u0026colorA=080f12\u0026colorB=1fa669\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/groupultra/telegram-search/actions/workflows/release-docker.yaml\"\u003e\n    \u003cimg alt=\"Release Docker / OCI\" src=\"https://github.com/groupultra/telegram-search/actions/workflows/release-docker.yaml/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/groupultra/telegram-search/actions/workflows/ci.yaml\"\u003e\n    \u003cimg alt=\"CI\" src=\"https://github.com/groupultra/telegram-search/actions/workflows/ci.yaml/badge.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e [!TIP]\n\u003e 是否曾因 Telegram 无法搜索中文聊天记录而困扰？\n\u003e\n\u003e 或者想查找一条重要消息，却被海量消息淹没，难以定位？\n\u003e\n\u003e 有了 Telegram Search，您可以便捷地备份并检索自己的 Telegram 消息。无论任何语言，强大的本地分词能力都能准确命中。\n\u003e\n\u003e 支持向量搜索，实现句子智能模糊匹配，查找信息更快速精准。\n\u003e\n\u003e 更多 AI 驱动场景，支持未读消息智能摘要、AI 助手对话等丰富功能体验。\n\n## 💖 赞助者\n\n![Sponsors](https://github.com/luoling8192/luoling8192/raw/master/sponsorkit/sponsors.svg)\n\n## ✅ 功能亮点\n\n### 📦 导出与备份\n- [x] 支持多种数据库导出聊天记录：兼容 PGlite 与 PostgreSQL\n- [x] 媒体资源可自动备份至 MinIO 对象存储，无需手动干预\n- [x] 消息导出时自动完成向量嵌入与分词处理，助力后续精准检索\n- [x] 实时同步，自动拉取并更新最新对话内容\n\n### 🔍 聊天记录搜索\n- [x] 自动智能分词，支持多语言精准检索\n- [x] 融合模糊匹配与向量语义搜索，查找效率更高\n- [x] RAG 智能问答：直接与 AI 聊天，基于历史上下文获得实时解答\n\n### 🚀 高级功能\n- [x] 未读消息智能摘要：一键汇总全部未读消息，自动生成精炼摘要，重点内容一目了然\n\n## 🛣️ 路线展望\n\n### 🧠 AI 能力增强\n- [ ] 自动生成会话总结\n- [ ] “超级大脑”：基于历史消息，自动构建人物与事件的知识图谱\n\n### 🔗 媒体与链接拓展\n- [ ] 智能整理“已保存消息”收藏夹，提升内容管理效率\n- [ ] 链接与图片深度索引：网页摘要、图片 OCR 文字识别及智能描述，助力搜索与归档\n\n### 🌐 多平台融合\n- [ ] 新增 Telegram Bot 支持，满足多元消息管理需求\n- [ ] 跨平台扩展：支持 Discord 及其他主流社交/通讯平台，实现统一检索与备份\n\n## 🎉 立即使用\n\n我们提供了一个在线体验版，无需自行部署，即可体验 Telegram Search 的全部功能。\n\n访问以下网址开始使用：https://search.lingogram.app\n\n\u003e [!WARNING]\n\u003e 本项目未发行任何虚拟货币，请警惕相关诈骗风险。\n\u003e\n\u003e 本软件仅供您导出和检索个人聊天记录使用，切勿将其用于任何违法用途。\n\n## 🚀 快速开始\n\n### 使用 Docker Compose\n\n1. 新建一个空目录，用于存放 Telegram Search 的配置和数据：\n```bash\nmkdir telegram-search\ncd telegram-search\n```\n\n2. 下载 Docker Compose 文件并启动全部服务（包括数据库、MinIO 等）：\n```bash\ncurl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml\ncurl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/.env.example -o .env\ncurl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/init.sql -o init.sql\ndocker compose -f docker-compose.yml up -d\n```\n\n3. 然后打开 **http://localhost:3333** 即可使用 🎉\n\n### 使用 Docker Image\n\n```bash\ndocker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest\n```\n\n### 自定义环境变量\n\n\u003e [!IMPORTANT]\n\u003e AI Embedding \u0026 LLM 设置现在在应用内**按账户**配置（设置 → API）。\n\u003e\n\u003e PGLite 因为性能原因，未来会被弃用，推荐使用 PostgreSQL。\n\u003e\n\u003e 请在修改完成 `.env` 文件后，再次执行 `docker compose -f docker-compose.yml up -d` 启动服务。\n\n以下环境变量全部为可选，如果不填写，则会使用默认值。\n\n| 环境变量            | 说明                                                                         | 示例值                                                |\n| ------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------- |\n| `TELEGRAM_API_ID`   | 从 [my.telegram.org](https://my.telegram.org/apps) 获取的 Telegram 应用 ID   | `611335`                                              |\n| `TELEGRAM_API_HASH` | 从 [my.telegram.org](https://my.telegram.org/apps) 获取的 Telegram 应用 Hash | `d524b414d21f4d37f08684c1df41ac9c`                    |\n| `DATABASE_TYPE`     | 数据库类型，可选 `postgres` 或 `pglite`                                      | `pglite`                                              |\n| `DATABASE_URL`      | PostgreSQL 连接字符串（仅在 `DATABASE_TYPE=postgres` 时填写）                | `postgresql://postgres:123456@pgvector:5432/postgres` |\n| `PROXY_URL`         | 代理地址（支持如 `socks5://user:pass@host:port` 等格式）                     | `socks5://user:pass@host:port`                        |\n| `PORT`              | 后端服务 HTTP/WebSocket 监听端口                                             | `3333`                                                |\n| `HOST`              | 后端服务监听地址                                                             | `0.0.0.0`                                             |\n| `BACKEND_URL`       | Nginx 作为反向代理时用于 `/api` 和 `/ws` 的上游后端地址                      | `http://127.0.0.1:3333`                               |\n| `MINIO_URL`         | MinIO 服务地址                                                               | `http://minio:9000`                                   |\n| `MINIO_ACCESS_KEY`  | MinIO 访问密钥                                                               | `minioadmin`                                          |\n| `MINIO_SECRET_KEY`  | MinIO 访问密钥对应的密钥                                                     | `minioadmin`                                          |\n| `MINIO_BUCKET`      | MinIO 存储桶名称                                                             | `telegram-media`                                      |\n\n#### 使用 Docker Image 环境变量\n\n请根据自己的需要自行修改环境变量。\n\n```bash\ndocker run -d --name telegram-search \\\n  -p 3333:3333 \\\n  -e DATABASE_TYPE=postgres \\\n  -e DATABASE_URL=postgresql://postgres:123456@localhost:5432/postgres \\\n  ghcr.io/groupultra/telegram-search:latest\n```\n\n## 💻 开发指南\n\n### 纯浏览器模式\n\n```bash\ngit clone https://github.com/groupultra/telegram-search.git\ncd telegram-search\npnpm install\ncp .env.example .env\npnpm run dev\n```\n\n### 服务器模式\n\n```bash\ngit clone https://github.com/groupultra/telegram-search.git\ncd telegram-search\npnpm install\n\ncp .env.example .env\n\ndocker compose -f docker/docker-compose.dev.yml up -d pgvector minio\n\npnpm run server:dev\npnpm run web:dev\n```\n\n📖 **更多开发细节和架构细节：** [CONTRIBUTING.md](./docs/CONTRIBUTING.md)\n\n## 🚀 Activity\n\n![Alt](https://repobeats.axiom.co/api/embed/69d5ef9f5e72cd7901b32ff71b5f359bc7ca42ea.svg \"Repobeats analytics image\")\n\n[![Star History Chart](https://api.star-history.com/svg?repos=groupultra/telegram-search\u0026type=Date)](https://star-history.com/#groupultra/telegram-search\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupultra%2Ftelegram-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroupultra%2Ftelegram-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroupultra%2Ftelegram-search/lists"}