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 有速率限制,所以我做了一點修改:
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