groupultra telegram-search 是一款新的 telegram 用户聊天记录搜索工具。
一些推荐:
- Telegram 群组管理机器人 @CSUBOT :可以私信新用户,发送 CloudFlare 的网页验证码,以此来进行入群审核,用于验证申请进入群组的用户是否是真实人类。不会打扰到群组内的其他群友。
- 查询本机访问不同网站的公网 IP ,可以检测代理分流配置,避免被 AI 工具封号。可以查看用户访问 中国网站,国际知名 AI 网站,被封的国际网站,可以的国际网站 所使用的 IP
项目特点
据官方文档, Telegram Search 提供以下核心功能:
- 语义搜索:不仅可以搜索关键词,还能理解消息的上下文和含义
- 向量匹配:基于 OpenAI 的嵌入向量技术,实现相似度搜索
- 高效检索:比 Telegram 原生搜索更精准、更智能的检索体验
- 多平台支持:提供 Web 界面和桌面应用程序
劝退
首先,先罗列一些和用户期望相差比较大的内容,以及一些存在的问题,劝退一部分不适合的这个项目的用户。并给出使用其他成熟项目的建议。
这个项目与其他不使用 AI 的传统项目的区别在于语义搜索(不仅可以搜索关键词,还能理解消息的上下文和含义)。然而目前我尝试若干查询,无论是否勾选搜索框的设置项 “搜索内容”,基本上均无法用问句搜索(只有一句可以);无法近义词查询。只能查询到结果和查询有共用词的消息。不确定是不是 embedding model 的问题。
经常要使用的前端、后端部署运行的命令,要等编译,对于 习惯了不需要提前编译的编程语言 和 习惯了编译速度快的编程语言 的用户来说,这个项目的等待时间有一些长。
打开前端使用,然后隔一会儿之后,再刷新使用的时候,前端会出现白屏,如下所示。每次需要重新启动, pnpm run dev:frontend
,要等待编译。部署在服务器上,每次使用,或者说每次查询之前要还要连接服务器编译一次,确实麻烦。

以上问题总结起来就是,groupultra telegram-search 作为一个搜索 telegram 历史消息的项目,目前使用起来,不如其他成熟的传统项目。其他项目推荐:
落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. ,由 archlinux cn 社区的依云开发,项目稳定运行多年,查看实际效果: 公开的群组消息记录搜索网页 。项目特点:
- 项目主要使用 python,不需要等待编译。虽然有组件需要编译,但是只需要编译一次
- 搜索字符串不区分简繁(会使用 OpenCC 自动转换)
- 搜索字符串支持一些搜索语法
- 运行起来占用的资源比 groupultra/telegram-search 低一些
Luoxu 的问题:
- 安装部署可能比 groupultra/telegram-search 项目麻烦一些。(是我实际部署两个项目的对比。由于我在 Linux arm32 系统上部署 luoxu,我部署 luoxu 的所有依赖是完全编译安装的,包括 PostgreSQL: Linux 编译安装 PostgreSQL 17.4 )
- 默认的代码只能索引配置文件中写好的群组、频道消息,当然你可以手动改代码
部署前提与要求
- 能使用的 AI,如 Google Gemini, OpenAI 等。
- Node.js:20.0 或更高版本
- RAM:至少 100 MB
- 能够访问国际互联网的网络
本教程使用完全免费的 Google Gemini ,在线 API 不占本地计算资源。申请介绍:Gemini API KEY 申请及使用
本人是部署在 Linux amd64 国际服务器上,没有使用 Docker ,其他操作系统环境仅供参考
根据本教程进行操作,请注意对比官方文档。
快速入门
据官方文档,使用 Telegram Search 的基本流程如下:
- 安装与配置:安装应用程序并配置必要的 API
- 连接 Telegram 账号:登录你的 Telegram 账号
- 同步聊天记录:选择需要搜索的聊天记录进行同步
- 开始搜索:使用语义搜索功能查找消息
安装与配置
安装 Node.js
访问 Node.js 官网 查看文档,进行安装。建议使用最新的 LTS 版本,安装完成使用以下两个命令确认版本:
node -v
v22.16.0
npm --version
10.9.2
因为项目使用的是 pnpm,所以进行安装。官方文档: Installation | pnpm ,当前实际命令:
curl -fsSL https://get.pnpm.io/install.sh | sh -
根据提示
source /home/opc/.bashrc
安装 PostgreSQL 数据库和插件 pgvector
注意要安装 PostgreSQL 和插件 pgvector 。注意本节内容可能不完善
注意 CentOS 等 redhat 系统使用这些安装命令。操作时请一定要参考网上其他文章和 AI 建议。
安装 PostgreSQL 官方 YUM 仓库配置包
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
我选择的版本是 13,你可以选择更新的版本。因为之前安装过 PostgreSQL 13 ,具体命令不确定。现在
搜索 YUM 源中与 pgvector
相关的可用软件包
sudo yum search pgvector
安装
sudo yum install -y pgvector_13
sudo systemctl status postgresql-13
初始化 PostgreSQL 13 数据目录(首次安装后必须执行)。
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
重启 PostgreSQL 13 服务使更改生效。
sudo systemctl restart postgresql-13
切换到 postgres
数据库管理员用户。
sudo -i -u postgres
启动 PostgreSQL 命令行客户端。
psql
设置 postgres
用户的登录密码。
ALTER USER postgres WITH PASSWORD '您的数据库密码';
以 postgres
用户身份通过本地主机连接 PostgreSQL,并提示输入密码。
psql -U postgres -h localhost --password
退出 psql
exit
然后返回初始系统用户,
exit
尝试进入数据库
psql -U postgres -h localhost --password
CREATE DATABASE tg_1;
CREATE EXTENSION IF NOT EXISTS vector;
配置项目并启动
因为 Google Gemini API 有速率限制,所以我做了一点修改:
https://github.com/cjh0613/groupultra-telegram-search
git clone -b rate https://github.com/cjh0613/groupultra-telegram-search.git
注意当前这个 rate branch 分支,是我全程在 Github 网页上修改的,本地没有进行任何测试。
本人机器上可以成功运行的速率限制修改是在这个 release: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f 的基础上,只是能确保代码能跑,没有报错。如果您的代码不能运行的话,请尝试 revert 这个 commit 之后官方项目的修改。
如果您使用的 API 没有速率限制,可以直接使用官方仓库
git clone https://github.com/groupultra/telegram-search.git
复制配置文件 config\config.example.yaml
为同目录 config\config.yaml
文件。
参照如下格式直接修改配置文件,其他部分参照默认配置文件说明修改。
telegram api 申请需要质量好的 ip,你要是申请不了的话就用作者的,不用修改。这个是用于第三方客户端的,不是 telegram 机器人的。
database:
# Database type: postgres, pglite
type: postgres
# PostgreSQL configuration (used when type: postgres)
# Can use URL or separate field configuration
# url: postgres://postgres:postgres@localhost:5432/tg_search
host: localhost
port: 5432
user: postgres
password: '您的数据库密码'
database: tg_1
api:
embedding:
# Embedding provider (openai or ollama) # 这里不要改为 Gemini
provider: openai
# Embedding model
model: models/text-embedding-004
# gemini-embedding-exp-03-07
# API key for provider
apiKey: <您获取的 Gemini API KEY>
# Gemini embedding-001 默认输出 3072 维,不能自定义维度
dimension: 768
# Optional, for custom API providers
apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# 启动后端服务
pnpm run dev:server
# 另一个终端窗口中启动前端界面
pnpm run dev:frontend
查看前端是否能成功访问:
curl http://localhost:3333/
如果是本机,打开浏览器访问 http://localhost:3333
即可使用应用程序
如果是远程设备,只需要开放前端的端口进行访问。但是不可以直接暴露在公网进行公开,不然任何人可以操纵您的 telegram 账户。您需要自行配置访问权限,这个方案很多。
另外,域名访问,可能需要修改 apps\frontend\vite.config.ts
增加
allowedHosts: ['您访问的域名']
其他内容,请看官方文档。
本网页的其他版本
本文章有多种语言的版本。
如果您想发表评论,请访问以下网页:
这些网页仅支持浏览,无法发表评论或留言,但提供了更多语言选项,并且加载时间更短:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO