groupultra telegram-search 是一款新的 telegram 用户聊天记录搜索工具。
一些推荐:
据官方文档, Telegram Search 提供以下核心功能:
首先,先罗列一些和用户期望相差比较大的内容,以及一些存在的问题问题,劝退一部分不适合的这个项目的用户。并给出使用其他成熟项目的建议。
这个项目与其他不使用 AI 的传统项目的区别在于语义搜索(不仅可以搜索关键词,还能理解消息的上下文和含义)。然而目前我尝试若干查询,无论是否勾选搜索框的设置项 “搜索内容”,基本上均无法用问句搜索(只有一句可以);无法近义词查询。只能查询到结果和查询有共用词的消息。不确定是不是 embedding model 的问题。
经常要使用的前端、后端部署运行的命令,要等编译,对于 习惯了不需要提前编译的编程语言 和 习惯了编译速度快的编程语言 的用户来说,这个项目的等待时间有一些长。
打开前端使用,然后隔一会儿之后,再刷新使用的时候,前端会出现白屏,如下所示。每次需要重新启动, pnpm run dev:frontend
,要等待编译。部署在服务器上,每次使用,或者说每次查询之前要还要连接服务器编译一次,确实麻烦。
以上问题总结起来就是,作为一个搜索 telegram 历史消息的项目,目前使用起来,不如其他成熟的传统项目。其他项目推荐:
落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 --- A Telegram userbot to index Chinese and Japanese group contents. ,由 archlinux cn 社区的依云开发,项目稳定运行多年,查看实际效果: 公开的群组消息记录搜索网页 。项目特点:
Luoxu 的问题:
本教程使用完全免费的 Google Gemini ,在线 API 不占本地计算资源。申请介绍:Gemini API KEY 申请及使用
本人是部署在 Linux amd64 国际服务器上,没有使用 Docker ,其他操作系统环境仅供参考
根据本教程进行操作,请注意对比官方文档。
据官方文档,使用 Telegram Search 的基本流程如下:
访问 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 。注意本节内容可能不完善
注意 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 有速率限制,所以我做了一点修改:
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