groupultra telegram-search is een nieuwe tool om telegram gebruikerschatgeschiedenis te doorzoeken.

Enkele aanbevelingen:

  • Telegram groepsbeheer robot @CSUBOT : Kan privéberichten sturen naar nieuwe gebruikers, CloudFlare webverificatiecodes verzenden om de toelating tot de groep te controleren, om te verifiëren of gebruikers die lidmaatschap van de groep aanvragen, echte mensen zijn. Zal de andere groepsleden niet storen.
  • Controleer het openbare IP-adres van uw machine bij het bezoeken van verschillende websites , kan de configuratie van de proxysplitsing detecteren om te voorkomen dat u wordt geblokkeerd door AI-tools. Kan de IP-adressen bekijken die worden gebruikt door gebruikers die Chinese websites, internationaal bekende AI-websites, geblokkeerde internationale websites en toegestane internationale websites bezoeken.

Projectkenmerken

Volgens de officiële documentatie biedt Telegram Search de volgende kernfunctionaliteiten:

  • Semantisch zoeken: Kan niet alleen zoeken op trefwoorden, maar ook de context en betekenis van het bericht begrijpen
  • Vector matching: Gebaseerd op OpenAI’s ingebedde vector technologie, om vergelijkbare zoekopdrachten te realiseren
  • Efficiënte Retrieval: Nauwkeurigere en intelligentere retrieval ervaring dan Telegram’s eigen zoekfunctie
  • Multi-platform ondersteuning: Biedt een webinterface en desktopapplicatie

Ontmoediging

Eerst een lijst van een aantal zaken die ver afstaan van de verwachtingen van de gebruiker, evenals een aantal bestaande problemen, om een deel van de gebruikers af te schrikken die niet geschikt zijn voor dit project. En geef suggesties voor het gebruik van andere volwassen projecten.

Het verschil tussen dit project en andere traditionele projecten die geen AI gebruiken, is semantisch zoeken (niet alleen op trefwoorden, maar ook de context en betekenis van het bericht begrijpen). Echter, ik heb tot nu toe verscheidene zoekopdrachten geprobeerd, ongeacht of het selectievakje “Zoek inhoud” is aangevinkt, en in principe kan ik niet zoeken met vragen (slechts één vraag kan); kan geen synoniemen zoeken. Kan alleen berichten vinden waarvan de resultaten gemeenschappelijke woorden hebben met de zoekopdracht. Ik weet niet zeker of dit een probleem is met het embedding model.

De veelgebruikte opdrachten voor de implementatie en het uitvoeren van de frontend en backend moeten worden gecompileerd, wat voor gebruikers die gewend zijn aan programmeertalen die niet vooraf hoeven te worden gecompileerd en programmeertalen die gewend zijn aan snelle compilatie, een lange wachttijd voor dit project is.

Wanneer de frontend wordt geopend en na een tijdje wordt vernieuwd, verschijnt er een blanco scherm, zoals hieronder weergegeven. Elke keer moet het opnieuw worden opgestart, pnpm run dev:frontend, en moet er worden gewacht op compilatie. Het is inderdaad lastig om het op een server te implementeren en elke keer dat het wordt gebruikt, of beter gezegd, voor elke zoekopdracht, moet het opnieuw met de server worden verbonden om te compileren.

groupultra/telegram-search probleem met blanco scherm op de frontend

Samenvattend is groupultra telegram-search, als een project voor het zoeken naar telegram-berichten uit het verleden, momenteel minder bruikbaar dan andere volwassen, traditionele projecten. Andere projecten die worden aanbevolen:

落絮 lilydjwg/luoxu: een Telegram-gebruikersbot voor het indexeren van Chinese en Japanse groepsinhoud. — A Telegram userbot to index Chinese and Japanese group contents. , ontwikkeld door Yiyun van de archlinux cn-community, het project draait al vele jaren stabiel, bekijk het daadwerkelijke effect: Openbare zoekpagina voor groepsberichten . Projectkenmerken:

  • Het project maakt voornamelijk gebruik van python en hoeft niet te wachten op compilatie. Hoewel er componenten zijn die moeten worden gecompileerd, hoeven ze maar één keer te worden gecompileerd
  • Zoekstrings maken geen onderscheid tussen vereenvoudigd en traditioneel Chinees (zal OpenCC gebruiken om automatisch te converteren)
  • Zoekstrings ondersteunen een bepaalde zoek-syntax
  • Draaien verbruikt minder resources dan groupultra/telegram-search

Luoxu’s problemen:

  • Installatie en implementatie kunnen lastiger zijn dan bij het groupultra/telegram-search project. (Dit is een vergelijking van mijn daadwerkelijke implementatie van de twee projecten. Aangezien ik luoxu implementeer op een Linux arm32-systeem, zijn alle afhankelijkheden van mijn implementatie van luoxu volledig gecompileerd en geïnstalleerd, inclusief PostgreSQL: Linux Compileer en installeer PostgreSQL 17.4 )
  • De standaard code kan alleen de groep- en kanaalberichten indexeren die in het configuratiebestand zijn geschreven, maar u kunt de code natuurlijk handmatig wijzigen

Voorwaarden en vereisten voor implementatie

  • AI die gebruikt kan worden, zoals Google Gemini, OpenAI, etc.
  • Node.js: 20.0 of hoger
  • RAM: Minstens 100 MB
  • Een netwerk dat toegang heeft tot het internationale internet

Deze tutorial maakt gebruik van de volledig gratis Google Gemini, de online API neemt geen lokale rekenresources in beslag. Aanvraag introductie: Gemini API KEY aanvraag en gebruik

Ik heb het zelf geïmplementeerd op een Linux amd64 internationale server, zonder Docker, andere besturingssystemen zijn slechts ter referentie

Raadpleeg de officiële documentatie wanneer u deze tutorial volgt.

Snelle start

Volgens de officiële documentatie is de basisprocedure voor het gebruik van Telegram Search als volgt:

  1. Installatie en configuratie: Installeer de applicatie en configureer de nodige API’s
  2. Verbind met een Telegram-account: Log in op je Telegram-account
  3. Synchroniseer chatgeschiedenis: Selecteer de chatgeschiedenis die je wilt doorzoeken en synchroniseer deze
  4. Start zoeken: Gebruik de semantische zoekfunctie om berichten te vinden

Installatie en configuratie

Node.js installeren

Bezoek de Node.js officiële website om de documentatie te bekijken en te installeren. Het is aanbevolen om de nieuwste LTS-versie te gebruiken, gebruik de volgende twee commando’s om de versie te bevestigen na de installatie:

node -v
v22.16.0

npm --version
10.9.2

Omdat het project pnpm gebruikt, wordt deze geïnstalleerd. Officiële documentatie: Installation | pnpm , huidig werkelijke commando:

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

Volgens de prompt

source /home/opc/.bashrc

PostgreSQL database en plugin pgvector installeren

Let op: installeer PostgreSQL en de plugin pgvector. Let op: de inhoud van deze sectie is mogelijk niet compleet

Let op: CentOS en andere redhat systemen gebruiken deze installatiecommando’s. Raadpleeg tijdens de bewerkingen andere artikelen en AI-adviezen op het internet.

Installeer het officiële YUM repository configuratiepakket voor PostgreSQL

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

De versie die ik heb gekozen is 13, u kunt een nieuwere versie kiezen. Omdat ik eerder PostgreSQL 13 heb geïnstalleerd, weet ik de specifieke commando’s niet zeker. Nu

Zoek naar beschikbare pakketten gerelateerd aan pgvector in de YUM-bronnen

sudo yum search pgvector

Installeren

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

Initialiseer de PostgreSQL 13 datadirectory (moet worden uitgevoerd na de eerste installatie).

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

Herstart de PostgreSQL 13 service om de wijzigingen van kracht te laten worden.

sudo systemctl restart postgresql-13

Schakel over naar de postgres database administrator gebruiker.

sudo -i -u postgres

Start de PostgreSQL opdrachtregelclient.

psql

Stel het wachtwoord in voor de postgres gebruiker.

ALTER USER postgres WITH PASSWORD 'Uw database wachtwoord';

Maak verbinding met PostgreSQL als de postgres gebruiker via de lokale host en voer het wachtwoord in wanneer daarom wordt gevraagd.

psql -U postgres -h localhost --password

Verlaat psql

exit

Ga dan terug naar de initiële systeemgebruiker,

exit

Probeer de database te betreden

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

Configureer het project en start het

Omdat de Google Gemini API een snelheidslimiet heeft, heb ik een kleine aanpassing gemaakt:

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

Let op: de huidige rate branch is volledig aangepast op de Github-pagina, zonder dat er lokaal is getest.

De snelheidsbeperking die succesvol op mijn machine kan worden uitgevoerd, is gebaseerd op deze release: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, en zorgt er alleen voor dat de code kan worden uitgevoerd zonder fouten. Als uw code niet kan worden uitgevoerd, probeer dan de wijzigingen van het officiële project na het terugdraaien van deze commit.

Als uw API geen snelheidsbeperking heeft, kunt u direct de officiële repository gebruiken

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

Kopieer het configuratiebestand config\config.example.yaml naar het bestand config\config.yaml in dezelfde directory.

Wijzig het configuratiebestand direct volgens de volgende indeling, andere delen verwijzen naar de beschrijving in het standaard configuratiebestand.

Telegram api aanvragen vereisen een IP van goede kwaliteit, als je deze niet kunt aanvragen, gebruik dan die van de auteur, je hoeft het niet te wijzigen. Dit is voor een derde partij client, niet voor een telegram robot.

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: 'Uw database wachtwoord'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # Verander dit hier niet in Gemini
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <Uw verkregen Gemini API KEY>
    # Gemini embedding-001 voert standaard 3072 dimensies uit en kan de dimensies niet aanpassen
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Start de backend service
pnpm run dev:server

# Start de frontend interface in een ander terminalvenster
pnpm run dev:frontend

Controleer of de frontend succesvol kan worden benaderd:

curl http://localhost:3333/

Als het op dezelfde machine is, open dan een browser en bezoek http://localhost:3333 om de applicatie te gebruiken

Als het een apparaat op afstand is, hoeft u alleen de poort van de frontend te openen voor toegang. Het mag echter niet direct openbaar worden gemaakt op het openbare netwerk, anders kan iedereen uw telegram account manipuleren. U moet zelf toegangsrechten configureren, er zijn veel opties.

Daarnaast, voor domein toegang, moet mogelijk apps\frontend\vite.config.ts worden gewijzigd door

 allowedHosts: ['Uw bezochte domeinnaam']

Voor de overige inhoud, zie de officiële documentatie.

Andere versies van deze webpagina

Er zijn verschillende taalversies van dit artikel.

Als u een reactie wilt plaatsen, bezoek dan de volgende webpagina:

ZH EN ZH-TW JA

Deze webpagina’s ondersteunen alleen browsen, niet het plaatsen van opmerkingen of berichten, maar bieden meer taalopties en laden sneller:

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