groupultra telegram-search är ett nytt verktyg för att söka i telegram-användares chathistorik.
Några rekommendationer:
- Telegram grupphanteringsrobot @CSUBOT: Kan skicka privata meddelanden till nya användare, skicka CloudFlare webbsidesverifieringskoder för att granska inträde i gruppen, för att verifiera om användaren som ansöker om att gå med i gruppen är en riktig människa. Stör inte andra gruppmedlemmar.
- Fråga den publika IP-adressen för den här datorn som besöker olika webbplatser, kan upptäcka konfigurationen av proxy-dirigering och undvika att bli avstängd av AI-verktyg. Kan visa användarnas åtkomst till kinesiska webbplatser, internationellt välkända AI-webbplatser, blockerade internationella webbplatser och möjliga internationella webbplatser IP-adressen som används
Projektets funktioner
Enligt den officiella dokumentationen erbjuder Telegram Search följande kärnfunktioner:
- Semantisk sökning: Kan inte bara söka efter nyckelord, utan också förstå meddelandets sammanhang och betydelse
- Vektormatchning: Baserat på OpenAI:s inbäddningsvektorteknik för att realisera likhetssökning
- Effektiv hämtning: Mer exakt och intelligent hämtningsupplevelse än Telegrams ursprungliga sökning
- Stöd för flera plattformar: Erbjuder ett webbgränssnitt och ett skrivbordsprogram
Avrådan
Först och främst, lista lite innehåll som är relativt långt ifrån användarnas förväntningar och några befintliga problem, för att avskräcka en del användare som inte är lämpliga för detta projekt. Och ge råd om att använda andra mogna projekt.
Skillnaden mellan detta projekt och andra traditionella projekt som inte använder AI är semantisk sökning (kan inte bara söka efter nyckelord, utan också förstå meddelandets sammanhang och betydelse). Men för närvarande har jag provat flera frågor, oavsett om sökrutans inställning “Sökinnehåll” är markerad eller inte, i princip alla kan inte söka med en fråga (endast en mening är möjlig); kan inte söka efter synonymer. Kan bara fråga efter meddelanden där resultaten och frågan delar ord. Jag är osäker på om det är ett problem med inbäddningsmodellen.
De kommandon som ofta används för att distribuera och köra frontend och backend måste vänta på att kompileras. För användare som är vana vid programmeringsspråk som inte behöver kompileras i förväg och programmeringsspråk som är vana vid snabb kompileringshastighet är väntetiden för detta projekt lite lång.
När du öppnar frontend och använder den, och sedan uppdaterar den efter ett tag, kommer frontend att visa en vit skärm, som visas nedan. Varje gång måste du starta om, pnpm run dev:frontend
, du måste vänta på kompileringen. Att distribuera det på servern och behöva ansluta till servern och kompilera det varje gång du använder det, eller snarare före varje fråga, är verkligen besvärligt.

Sammanfattningsvis är groupultra telegram-search, som ett projekt för att söka efter historiska telegram-meddelanden, för närvarande inte lika bra att använda som andra mogna traditionella projekt. Andra rekommenderade projekt:
落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , utvecklad av Yiyun från archlinux cn-communityn, projektet har körts stabilt i många år, kolla in den faktiska effekten: 公开的群组消息记录搜索网页 . Projektets funktioner:
- Projektet använder huvudsakligen python och behöver inte vänta på kompilering. Även om det finns komponenter som behöver kompileras, behöver de bara kompileras en gång
- Söksträngen skiljer inte mellan förenklad och traditionell kinesiska (OpenCC kommer att användas för att automatiskt konvertera)
- Söksträngen stöder viss sökning syntax
- Att köra det tar upp lite mindre resurser än groupultra/telegram-search
Luoxus problem:
- Installation och distribution kan vara lite mer besvärligt än groupultra/telegram-search-projektet. (Är en jämförelse av mina faktiska utplaceringar av två projekt. Eftersom jag distribuerar luoxu på ett Linux arm32-system, kompileras och installeras alla luoxus beroenden fullständigt, inklusive PostgreSQL: Linux 编译安装 PostgreSQL 17.4 )
- Standardkoden kan bara indexera grupp- och kanalmeddelanden som är skrivna i konfigurationsfilen, naturligtvis kan du manuellt ändra koden
Förutsättningar och krav för distribution
- AI som kan användas, som Google Gemini, OpenAI, etc.
- Node.js: 20.0 eller senare
- RAM: Minst 100 MB
- Nätverk som kan komma åt det internationella internet
Den här handledningen använder den helt kostnadsfria Google Gemini, online-API:t upptar inte lokala beräkningsresurser. Ansökningsintroduktion: Gemini API KEY 申请及使用
Jag är distribuerad på en internationell Linux amd64-server, jag använder inte Docker, andra operativsystemsmiljöer är endast för referens
Följ denna handledning, var uppmärksam på att jämföra den officiella dokumentationen.
Snabbstart
Enligt den officiella dokumentationen är den grundläggande processen för att använda Telegram Search som följer:
- Installation och konfiguration: Installera applikationen och konfigurera de nödvändiga API:erna
- Anslut Telegram-konto: Logga in på ditt Telegram-konto
- Synkronisera chathistorik: Välj den chathistorik som du vill söka i för att synkronisera
- Starta sökning: Använd den semantiska sökfunktionen för att hitta meddelanden
Installation och konfiguration
Installera Node.js
Besök Node.js officiella webbplats för att visa dokumentationen och installera den. Det rekommenderas att använda den senaste LTS-versionen. När installationen är klar, använd följande två kommandon för att bekräfta versionen:
node -v
v22.16.0
npm --version
10.9.2
Eftersom projektet använder pnpm, installera det. Officiell dokumentation: Installation | pnpm , aktuellt faktiskt kommando:
curl -fsSL https://get.pnpm.io/install.sh | sh -
Enligt prompten
source /home/opc/.bashrc
Installera PostgreSQL-databasen och plugin-programmet pgvector
Var noga med att installera PostgreSQL och plugin-programmet pgvector. Observera att innehållet i det här avsnittet kanske inte är komplett
Observera att CentOS och andra redhat-system använder dessa installationskommandon. Var noga med att hänvisa till andra artiklar online och AI-förslag när du använder dem.
Installera PostgreSQL officiella YUM-förvaringskonfigurationspaket
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Den version jag valde är 13, du kan välja en nyare version. Eftersom jag tidigare har installerat PostgreSQL 13 är det specifika kommandot osäkert. Nu
Sök i YUM-källan efter tillgängliga paket relaterade till pgvector
sudo yum search pgvector
Installera
sudo yum install -y pgvector_13
sudo systemctl status postgresql-13
Initiera PostgreSQL 13-datakatalogen (måste utföras efter den första installationen).
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Starta om PostgreSQL 13-tjänsten för att ändringarna ska träda i kraft.
sudo systemctl restart postgresql-13
Byt till postgres
databasadministratörsanvändare.
sudo -i -u postgres
Starta PostgreSQL-kommandoradsklienten.
psql
Ange lösenordet för postgres
-användaren.
ALTER USER postgres WITH PASSWORD 'Ditt databaslösenord';
Anslut till PostgreSQL som postgres
-användare via den lokala värden och ange lösenordet.
psql -U postgres -h localhost --password
Avsluta psql
exit
Gå sedan tillbaka till den ursprungliga systemanvändaren,
exit
Försök att komma in i databasen
psql -U postgres -h localhost --password
CREATE DATABASE tg_1;
CREATE EXTENSION IF NOT EXISTS vector;
Konfigurera projektet och starta det
Eftersom Google Gemini API har en hastighetsbegränsning gjorde jag en liten ändring:
git clone -b rate https://github.com/cjh0613/groupultra-telegram-search.git
Observera att den aktuella rate branch-grenen är vad jag ändrade helt på Githubs webbplats, och inga lokala tester utfördes.
Hastighetsbegränsningsändringen som kan köras framgångsrikt på min maskin är baserad på den här releasen: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, det säkerställer bara att koden kan köras utan fel. Om din kod inte kan köras, försök att återställa ändringarna i det officiella projektet efter denna commit.
Om du använder ett API som inte har någon hastighetsbegränsning kan du använda det officiella förrådet direkt
git clone https://github.com/groupultra/telegram-search.git
Kopiera konfigurationsfilen config\config.example.yaml
till samma katalog config\config.yaml
-filen.
Se följande format för att direkt ändra konfigurationsfilen, andra delar hänvisar till standardkonfigurationsfilsbeskrivningen för att ändra.
Telegram api-ansökan kräver en IP av god kvalitet, om du inte kan ansöka, använd författarens, du behöver inte ändra den. Detta är för tredjepartsklienter, inte telegramrobotar.
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: 'Ditt databaslösenord'
database: tg_1
api:
embedding:
# Embedding provider (openai or ollama) # Här ska du inte ändra till Gemini
provider: openai
# Embedding model
model: models/text-embedding-004
# gemini-embedding-exp-03-07
# API key for provider
apiKey: <Din erhållna Gemini API KEY>
# Gemini embedding-001 default output 3072 dimensioner, kan inte anpassa dimensioner
dimension: 768
# Optional, for custom API providers
apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Starta backend-tjänsten
pnpm run dev:server
# Starta frontend-gränssnittet i ett annat terminalfönster
pnpm run dev:frontend
Kontrollera om frontend kan nås:
curl http://localhost:3333/
Om det är den lokala maskinen, öppna webbläsaren och besök http://localhost:3333
för att använda applikationen
Om det är en fjärrenhet behöver du bara öppna porten för frontend för att komma åt den. Men den kan inte exponeras direkt på det offentliga nätverket för allmänheten, annars kan någon manipulera ditt telegramkonto. Du måste själv konfigurera åtkomstbehörigheter, det finns många lösningar.
Dessutom kan domännamnsåtkomst kräva att apps\frontend\vite.config.ts
ändras för att öka
allowedHosts: ['Din besökta domän']
För annat innehåll, se den officiella dokumentationen.
Andra versioner av den här webbsidan
Denna artikel finns i flera språkversioner.
Om du vill kommentera, besök följande webbsida:
Dessa webbsidor stöder endast visning, kan inte publicera kommentarer eller meddelanden, men ger fler språkalternativ och har kortare laddningstid:
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