groupultra telegram-search er et nyt værktøj til at søge i telegram-brugeres chatlogge.

Nogle anbefalinger:

  • Telegram gruppeadministrationsrobot @CSUBOT: Kan sende private beskeder til nye brugere og sende CloudFlares webbekræftelseskode for at udføre gruppetilsyn for at verificere, om de brugere, der anmoder om at komme ind i gruppen, er rigtige mennesker. Vil ikke forstyrre andre gruppemedlemmer i gruppen.
  • Forespørg om den offentlige IP for denne maskines adgang til forskellige websteder, som kan bruges til at detektere proxy-divergeringskonfigurationer for at undgå at blive blokeret af AI-værktøjer. Du kan se de IP’er, der bruges af brugere til at få adgang til kinesiske websteder, internationalt kendte AI-websteder, blokerede internationale websteder og tilladte internationale websteder.

Projektegenskaber

Ifølge den officielle dokumentation tilbyder Telegram Search følgende kernefunktioner:

  • Semantisk søgning: Ikke kun kan du søge efter søgeord, men du kan også forstå beskederne i deres kontekst og betydning
  • Vektormatchning: Baseret på OpenAIs indlejrede vektorteknologi til at implementere lighedssøgning
  • Effektiv hentning: Mere præcis og intelligent hentningsoplevelse end Telegrams indbyggede søgning
  • Multiplatform support: Tilbyder en webgrænseflade og desktop-applikation

Frarådes

Først vil jeg liste noget indhold, der er meget anderledes end brugernes forventninger, samt nogle eksisterende problemer for at afskrække nogle brugere, der ikke passer til dette projekt. Og giv forslag til brug af andre modne projekter.

Forskellen mellem dette projekt og andre traditionelle projekter, der ikke bruger AI, er semantisk søgning (ikke kun kan du søge efter søgeord, men du kan også forstå beskederne i deres kontekst og betydning). Men i øjeblikket har jeg forsøgt flere forespørgsler, uanset om afkrydsningsfeltet “Søgeindhold” er markeret eller ej, kan jeg dybest set ikke søge ved hjælp af spørgsmål (kun en enkelt sætning er mulig); jeg kan ikke søge efter synonymer. Jeg kan kun søge efter beskeder, der deler ord med forespørgslen. Jeg er ikke sikker på, om det er et problem med indlejringsmodellen.

Kommandoerne til at køre frontend- og backend-implementeringen, som ofte skal bruges, skal kompileres, hvilket tager lang tid for brugere, der er vant til programmeringssprog, der ikke kræver forudkompilering, og brugere, der er vant til hurtige kompileringshastigheder.

Når jeg åbner frontend til brug, og derefter opdaterer den efter et stykke tid, vises en blank skærm i frontend, som vist nedenfor. Jeg skal genstarte hver gang, pnpm run dev:frontend, og jeg skal vente på, at den kompileres. Hvis den er implementeret på en server, skal jeg oprette forbindelse til serveren og kompilere den hver gang jeg bruger den, eller rettere sagt før hver forespørgsel, hvilket er virkelig besværligt.

groupultra/telegram-search projekt frontend blank skærm problem

For at opsummere ovenstående problemer er groupultra telegram-search i øjeblikket ikke så god at bruge som andre modne traditionelle projekter som et projekt til at søge i telegrams historiske beskeder. Andre projekter anbefales:

落絮 lilydjwg/luoxu: En Telegram-brugerrobot til indeksering af kinesiske og japanske gruppeindhold. — A Telegram userbot to index Chinese and Japanese group contents. , udviklet af Yiyun fra archlinux cn-fællesskabet. Projektet har kørt stabilt i mange år. Se de faktiske resultater: Offentlig søgeside for gruppebeskeder . Projektegenskaber:

  • Projektet bruger primært python og behøver ikke at vente på kompilering. Selvom nogle komponenter skal kompileres, behøver de kun at blive kompileret én gang
  • Søgestrenge skelner ikke mellem forenklet og traditionelt kinesisk (OpenCC bruges til automatisk konvertering)
  • Søgestrenge understøtter noget søgesyntaks
  • Det kræver færre ressourcer at køre end groupultra/telegram-search

Luoxus problemer:

  • Installation og implementering kan være mere besværlig end groupultra/telegram-search-projektet. (Er en sammenligning af den faktiske implementering af de to projekter. Da jeg implementerede luoxu på et Linux arm32-system, blev alle luoxus afhængigheder kompileret og installeret fuldt ud, inklusive PostgreSQL: Linux kompilering og installation af PostgreSQL 17.4)
  • Standardkoden kan kun indeksere gruppe- og kanalbeskeder, der er skrevet i konfigurationsfilen, men du kan selvfølgelig ændre koden manuelt

Implementeringsforudsætninger og -krav

  • AI, der kan bruges, såsom Google Gemini, OpenAI osv.
  • Node.js: 20.0 eller højere
  • RAM: Mindst 100 MB
  • Netværk, der kan få adgang til det internationale internet

Denne tutorial bruger den helt gratis Google Gemini, online API’en optager ikke lokale computerressourcer. Ansøgningsintroduktion: Gemini API KEY-ansøgning og brug

Jeg implementerer den på en international Linux amd64-server uden at bruge Docker. Andre operativsystemmiljøer er kun til reference

Når du følger denne tutorial, skal du være opmærksom på at sammenligne den med den officielle dokumentation.

Hurtig start

Ifølge den officielle dokumentation er den grundlæggende proces for brug af Telegram Search som følger:

  1. Installation og konfiguration: Installer applikationen og konfigurer de nødvendige API’er
  2. Opret forbindelse til Telegram-konto: Log ind på din Telegram-konto
  3. Synkroniser chatlogge: Vælg de chatlogge, du vil søge i, og synkroniser dem
  4. Start søgning: Brug den semantiske søgefunktion til at finde beskeder

Installation og konfiguration

Installation af Node.js

Besøg Node.js’ officielle websted for at se dokumentationen og installere den. Det anbefales at bruge den nyeste LTS-version. Når installationen er fuldført, skal du bruge følgende to kommandoer til at bekræfte versionen:

node -v
v22.16.0

npm --version
10.9.2

Da projektet bruger pnpm, skal du installere det. Officiel dokumentation: Installation | pnpm , den aktuelle faktiske kommando:

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

Ifølge prompterne

source /home/opc/.bashrc

Installation af PostgreSQL-databasen og pgvector-plugin

Bemærk, at du skal installere PostgreSQL og pgvector-plugin. Bemærk, at dette afsnit muligvis ikke er fuldstændigt

Bemærk, at CentOS og andre redhat-systemer bruger disse installationskommandoer. Når du betjener den, skal du sørge for at henvise til andre artikler online og AI-rådgivning.

Installer den officielle YUM-lagerkonfigurationspakke til PostgreSQL

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

Den version, jeg valgte, er 13, du kan vælge en nyere version. Fordi jeg har installeret PostgreSQL 13 før, er de specifikke kommandoer usikre. Nu

Søg efter tilgængelige pakker relateret til pgvector i YUM-kilden

sudo yum search pgvector

Installere

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

Initialiser PostgreSQL 13-datakataloget (skal udføres efter første installation).

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

Genstart PostgreSQL 13-tjenesten for at træde i kraft.

sudo systemctl restart postgresql-13

Skift til postgres-databaseadministratorkontoen.

sudo -i -u postgres

Start PostgreSQL-kommandolinjeklienten.

psql

Indstil adgangskoden til postgres-brugeren.

ALTER USER postgres WITH PASSWORD 'Din databaseadgangskode';

Opret forbindelse til PostgreSQL som postgres-bruger via lokal værtsmaskine, og bed om at indtaste adgangskoden.

psql -U postgres -h localhost --password

Afslut psql

exit

Gå derefter tilbage til den oprindelige systembruger,

exit

Prøv at få adgang til databasen

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

Konfigurer projektet og start det

Fordi Google Gemini API har en hastighedsbegrænsning, har jeg foretaget en mindre ændring:

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

Bemærk, at denne aktuelle rate branch-gren er ændret af mig på Github-websiden i hele processen, og ingen lokal test er udført.

Den hastighedsbegrænsningsændring, der kan køres med succes på min maskine, er baseret på denne udgivelse: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, men det kan kun sikre, at koden kan køre uden fejl. Hvis din kode ikke kan køre, kan du prøve at vende tilbage til ændringerne i det officielle projekt efter dette commit.

Hvis din API ikke har en hastighedsbegrænsning, kan du bruge det officielle lager direkte

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

Kopier konfigurationsfilen config\config.example.yaml til filen config\config.yaml i samme mappe.

Se følgende format for at ændre konfigurationsfilen direkte, og se den standardkonfigurationsfilbeskrivelse for andre dele.

telegram api-applikationen kræver en IP af god kvalitet. Hvis du ikke kan ansøge om en, kan du bruge forfatterens uden at ændre den. Dette bruges til tredjepartsklienter, ikke telegramrobotter.

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: 'Din databaseadgangskode'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # Må ikke ændres til Gemini her
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <Din indhentede Gemini API KEY>
    # Gemini embedding-001 outputter som standard 3072 dimensioner og kan ikke tilpasses
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Start backend-tjenesten
pnpm run dev:server

# Start frontend-grænsefladen i et andet terminalvindue
pnpm run dev:frontend

Kontroller, om frontend kan tilgås med succes:

curl http://localhost:3333/

Hvis det er en lokal maskine, skal du åbne en browser og besøge http://localhost:3333 for at bruge applikationen

Hvis det er en fjernenhed, skal du kun åbne porten til frontend for at få adgang til den. Men du kan ikke blot eksponere den på det offentlige internet, ellers kan enhver manipulere din telegram-konto. Du skal konfigurere adgangstilladelser selv. Der er mange løsninger.

Derudover skal du muligvis ændre apps\frontend\vite.config.ts for at tilføje domæneadgang

 allowedHosts: ['Dit domæne']

Se den officielle dokumentation for andet indhold.

Andre versioner af denne webside

Denne artikel findes i flere sprogversioner.

Hvis du vil kommentere, skal du besøge følgende websider:

ZH EN ZH-TW JA

Disse websider understøtter kun browsing, du kan ikke kommentere eller efterlade beskeder, men de tilbyder flere sprogmuligheder og har kortere indlæsningstider:

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