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.

groupultra/telegram-search projekt frontend vit skärm problem

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:

  1. Installation och konfiguration: Installera applikationen och konfigurera de nödvändiga API:erna
  2. Anslut Telegram-konto: Logga in på ditt Telegram-konto
  3. Synkronisera chathistorik: Välj den chathistorik som du vill söka i för att synkronisera
  4. 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:

ZH EN ZH-TW JA

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