groupultra telegram-search este un nou instrument de căutare a istoricului conversațiilor utilizatorilor Telegram.

Câteva recomandări:

  • Robot de gestionare a grupurilor Telegram @CSUBOT : Poate trimite mesaje private utilizatorilor noi, poate trimite coduri de verificare web CloudFlare, pentru a efectua auditarea intrării în grup, pentru a verifica dacă utilizatorii care solicită intrarea în grup sunt oameni reali. Nu va deranja ceilalți membri ai grupului.
  • Verificați IP-ul public al computerului local pentru accesarea diferitelor site-uri web , poate detecta configurația de deviere a proxy-ului, pentru a evita blocarea de către instrumentele AI. Puteți vedea IP-ul folosit de utilizatori pentru accesarea site-urilor web din China, site-urilor web AI internaționale cunoscute, site-urilor web internaționale blocate și site-urilor web internaționale permise.

Caracteristici ale proiectului

Conform documentației oficiale, Telegram Search oferă următoarele funcții de bază:

  • Căutare semantică: Nu numai că poate căuta cuvinte cheie, dar poate și înțelege contextul și semnificația mesajelor
  • Potrivire vectorială: Bazată pe tehnologia vectorilor de încorporare OpenAI, realizează căutarea de similaritate
  • Recuperare eficientă: Experiență de recuperare mai precisă și mai inteligentă decât căutarea nativă Telegram
  • Suport multi-platformă: Oferă interfață Web și aplicație desktop

Descurajare

În primul rând, enumerați câteva conținuturi care sunt destul de diferite de așteptările utilizatorilor, precum și unele probleme existente, descurajând o parte dintre utilizatorii care nu sunt potriviți pentru acest proiect. Și oferă sugestii pentru utilizarea altor proiecte mature.

Diferența dintre acest proiect și alte proiecte tradiționale care nu utilizează AI este căutarea semantică (nu numai că poate căuta cuvinte cheie, dar poate și înțelege contextul și semnificația mesajelor). Cu toate acestea, în prezent, am încercat mai multe interogări și, indiferent dacă este bifată sau nu opțiunea de setare a casetei de căutare „Caută conținut”, practic nu se poate utiliza o întrebare pentru căutare (doar o propoziție poate); nu se pot efectua căutări de sinonime. Se pot găsi doar rezultate și mesaje care au cuvinte comune cu interogarea. Nu sunt sigur dacă este o problemă cu modelul de încorporare.

Comenzile folosite frecvent pentru rularea implementării front-end și back-end trebuie compilate, iar pentru utilizatorii care sunt obișnuiți cu limbaje de programare care nu necesită compilare prealabilă și limbaje de programare obișnuite cu viteze rapide de compilare, timpul de așteptare pentru acest proiect este oarecum lung.

Când deschideți front-end-ul pentru utilizare și apoi îl reîmprospătați după un timp, front-end-ul va afișa un ecran alb, după cum se arată mai jos. De fiecare dată când trebuie repornit, pnpm run dev:frontend, trebuie așteptat compilarea. Implementarea pe server este cu adevărat supărătoare de fiecare dată când trebuie să vă conectați la server pentru a compila înainte de fiecare utilizare, sau mai bine zis, înainte de fiecare interogare.

Problemă cu ecranul alb al front-end-ului proiectului groupultra/telegram-search

Problemele de mai sus pot fi rezumate astfel: groupultra telegram-search, ca proiect de căutare a mesajelor istorice Telegram, este în prezent mai puțin util decât alte proiecte tradiționale mature. Alte proiecte recomandate:

落絮 lilydjwg/luoxu: Un robot utilizator Telegram pentru indexarea conținutului grupurilor chineze și japoneze. — Un bot de utilizator Telegram pentru indexarea conținutului grupurilor chineze și japoneze. , dezvoltat de Yiyun din comunitatea archlinux cn, proiectul a funcționat stabil timp de mulți ani, verificați efectul real: Pagina web publică de căutare a istoricului mesajelor de grup . Caracteristici ale proiectului:

  • Proiectul folosește în principal python și nu trebuie așteptată compilarea. Deși unele componente trebuie compilate, trebuie compilate o singură dată
  • Căutarea șirurilor nu distinge între caracterele simplificate și cele tradiționale (va utiliza OpenCC pentru conversie automată)
  • Șirul de căutare acceptă o anumită sintaxă de căutare
  • Rularea necesită mai puține resurse decât groupultra/telegram-search

Problemele lui Luoxu:

  • Instalarea și implementarea pot fi mai dificile decât proiectul groupultra/telegram-search. (Aceasta este o comparație a implementării mele efective a două proiecte. Deoarece implementez luoxu pe un sistem Linux arm32, toate dependențele mele pentru implementarea luoxu sunt compilate și instalate complet, inclusiv PostgreSQL: Compilarea și instalarea Linux PostgreSQL 17.4 )
  • Codul implicit poate indexa doar mesajele de grup și canal scrise în fișierul de configurare, desigur, puteți modifica manual codul

Condiții preliminare și cerințe de implementare

  • AI care poate fi utilizată, cum ar fi Google Gemini, OpenAI etc.
  • Node.js: 20.0 sau o versiune ulterioară
  • RAM: cel puțin 100 MB
  • Rețea care poate accesa internetul internațional

Acest tutorial folosește Google Gemini complet gratuit, iar API-ul online nu ocupă resurse de calcul locale. Introducere în aplicație: Aplicare și utilizare Gemini API KEY

Eu îl implementez pe un server internațional Linux amd64, nu folosesc Docker, iar alte medii de sistem de operare sunt doar pentru referință

Când operați conform acestui tutorial, vă rugăm să acordați atenție comparării cu documentația oficială.

Noțiuni de bază

Conform documentației oficiale, procesul de bază pentru utilizarea Telegram Search este următorul:

  1. Instalare și configurare: Instalați aplicația și configurați API-ul necesar
  2. Conectați contul Telegram: Conectați-vă la contul dvs. Telegram
  3. Sincronizați istoricul conversațiilor: Selectați istoricul conversațiilor pe care doriți să îl căutați pentru a le sincroniza
  4. Începeți căutarea: Utilizați funcția de căutare semantică pentru a găsi mesaje

Instalare și configurare

Instalați Node.js

Accesați Site-ul web Node.js pentru a vizualiza documentația și pentru a instala. Se recomandă utilizarea celei mai recente versiuni LTS, după instalare, utilizați următoarele două comenzi pentru a confirma versiunea:

node -v
v22.16.0

npm --version
10.9.2

Deoarece proiectul folosește pnpm, trebuie instalat. Documentația oficială: Installation | pnpm , comanda curentă reală:

curl -fsSL https://get.pnpm.io/install.sh | sh -

Conform instrucțiunilor

source /home/opc/.bashrc

Instalați baza de date PostgreSQL și pluginul pgvector

Rețineți că trebuie să instalați PostgreSQL și pluginul pgvector. Rețineți că conținutul acestei secțiuni poate fi incomplet

Rețineți că sistemele CentOS și alte sisteme redhat folosesc aceste comenzi de instalare. Când operați, asigurați-vă că consultați alte articole online și sfaturi AI.

Instalați pachetul de configurare oficial YUM repository PostgreSQL

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Versiunea pe care o aleg este 13, puteți alege o versiune mai nouă. Deoarece PostgreSQL 13 a fost instalat anterior, comanda specifică nu este sigură. Acum

Căutați pachetele disponibile legate de pgvector în sursa YUM

sudo yum search pgvector

Instalare

sudo yum install -y pgvector_13
sudo systemctl status postgresql-13

Inițializați directorul de date PostgreSQL 13 (trebuie efectuat după prima instalare).

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Reporniți serviciul PostgreSQL 13 pentru ca modificările să intre în vigoare.

sudo systemctl restart postgresql-13

Comutați la utilizatorul administrator al bazei de date postgres.

sudo -i -u postgres

Porniți clientul de linie de comandă PostgreSQL.

psql

Setați parola de conectare a utilizatorului postgres.

ALTER USER postgres WITH PASSWORD 'Parola dvs. de bază de date';

Conectați-vă la PostgreSQL ca utilizator postgres prin intermediul computerului local și solicitați introducerea parolei.

psql -U postgres -h localhost --password

Ieșiți din psql

exit

Apoi reveniți la utilizatorul inițial al sistemului,

exit

Încercați să intrați în baza de date

psql -U postgres -h localhost --password
CREATE DATABASE tg_1;
CREATE EXTENSION IF NOT EXISTS vector;

Configurați și lansați proiectul

Deoarece Google Gemini API are o limită de rată, am făcut o mică modificare:

git clone -b rate https://github.com/cjh0613/groupultra-telegram-search.git

Rețineți că ramura curentă rate branch este modificată complet pe pagina web Github și nu s-a efectuat nicio testare locală.

Modificarea limitei de rată care poate rula cu succes pe computerul meu se bazează pe această versiune: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, doar pentru a se asigura că codul poate rula, fără erori. Dacă codul dvs. nu poate rula, vă rugăm să încercați să reveniți la modificările oficiale ale proiectului după această validare.

Dacă API-ul pe care îl utilizați nu are o limită de rată, puteți utiliza direct repository-ul oficial

git clone https://github.com/groupultra/telegram-search.git

Copiați fișierul de configurare config\config.example.yaml în același director config\config.yaml.

Modificați direct fișierul de configurare conform următorului format, iar restul părților se referă la descrierea fișierului de configurare implicit.

Aplicarea API-ului Telegram necesită IP-uri de bună calitate, dacă nu puteți aplica, utilizați pe cel al autorului, nu trebuie să modificați. Acesta este pentru clienții terți, nu pentru roboții 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: 'Parola dvs. de bază de date'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # Nu schimbați aici în Gemini
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <Cheia API Gemini pe care o obțineți>
    # Gemini embedding-001 ieșire implicită 3072 dimensiuni, dimensiune nedefinită de utilizator
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Lansați serviciul back-end
pnpm run dev:server

# Lansați interfața front-end într-o altă fereastră terminal
pnpm run dev:frontend

Verificați dacă front-end-ul poate fi accesat cu succes:

curl http://localhost:3333/

Dacă este pe computerul local, deschideți browserul și accesați http://localhost:3333 pentru a utiliza aplicația

Dacă este un dispozitiv de la distanță, trebuie doar să deschideți portul front-end pentru acces. Dar nu îl puteți expune direct public pe internet, altfel oricine vă poate manipula contul Telegram. Trebuie să configurați singur permisiunile de acces, există multe soluții pentru aceasta.

În plus, accesul la domeniu poate necesita modificarea apps\frontend\vite.config.ts pentru a adăuga

 allowedHosts: ['Domeniul pe care îl accesați']

Pentru alte conținuturi, vă rugăm să consultați documentația oficială.

Alte versiuni ale acestei pagini web

Acest articol are mai multe versiuni lingvistice.

Dacă doriți să postați un comentariu, vă rugăm să vizitați următoarele pagini web:

ZH EN ZH-TW JA

Aceste pagini web acceptă doar navigarea, nu se pot posta comentarii sau mesaje, dar oferă mai multe opțiuni lingvistice și au timpi de încărcare mai scurți:

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