Το groupultra telegram-search είναι ένα νέο εργαλείο αναζήτησης ιστορικού συνομιλιών χρηστών telegram.

Μερικές προτάσεις:

  • Telegram 群组管理机器人 @CSUBOT: Μπορεί να στείλει ιδιωτικά μηνύματα σε νέους χρήστες, να στείλει κωδικούς επαλήθευσης ιστοσελίδων CloudFlare, ώστε να πραγματοποιείται έλεγχος εισόδου στην ομάδα, για να επαληθεύεται εάν οι χρήστες που υποβάλλουν αίτηση για είσοδο στην ομάδα είναι πραγματικοί άνθρωποι. Δεν θα ενοχλήσει τα άλλα μέλη της ομάδας.
  • 查询本机访问不同网站的公网 IP, μπορείτε να ανιχνεύσετε τη διαμόρφωση διαμοιρασμού μεσολάβησης, για να αποφύγετε το μπλοκάρισμα από εργαλεία AI. Μπορείτε να δείτε την πρόσβαση του χρήστη σε κινεζικούς ιστότοπους, διεθνώς γνωστούς ιστότοπους AI, αποκλεισμένους διεθνείς ιστότοπους, επιτρεπόμενους διεθνείς ιστότοπους και την IP που χρησιμοποιείται.

Χαρακτηριστικά του έργου

Σύμφωνα με την επίσημη τεκμηρίωση, το Telegram Search παρέχει τις ακόλουθες βασικές λειτουργίες:

  • Σημασιολογική αναζήτηση: Όχι μόνο μπορεί να αναζητήσει λέξεις-κλειδιά, αλλά και να κατανοήσει το πλαίσιο και τη σημασία του μηνύματος
  • Αντιστοίχιση διανυσμάτων: Βασισμένο στην τεχνολογία ενσωματωμένων διανυσμάτων της OpenAI, υλοποιεί αναζήτηση ομοιότητας
  • Αποτελεσματική ανάκτηση: Πιο ακριβής και έξυπνη εμπειρία ανάκτησης από την εγγενή αναζήτηση Telegram
  • Υποστήριξη πολλαπλών πλατφορμών: Παρέχει διεπαφή Web και εφαρμογή για υπολογιστές

Αποθάρρυνση

Αρχικά, ας απαριθμήσουμε μερικά περιεχόμενα που διαφέρουν σημαντικά από τις προσδοκίες των χρηστών, καθώς και μερικά υπάρχοντα προβλήματα, για να αποθαρρύνουμε ένα μέρος των χρηστών που δεν είναι κατάλληλοι για αυτό το έργο. Και να δώσουμε προτάσεις για τη χρήση άλλων ώριμων έργων.

Η διαφορά αυτού του έργου από άλλα παραδοσιακά έργα που δεν χρησιμοποιούν AI είναι η σημασιολογική αναζήτηση (όχι μόνο μπορεί να αναζητήσει λέξεις-κλειδιά, αλλά και να κατανοήσει το πλαίσιο και τη σημασία του μηνύματος). Ωστόσο, προς το παρόν, έχω δοκιμάσει αρκετά ερωτήματα και, ανεξάρτητα από το αν είναι επιλεγμένο το στοιχείο ρύθμισης του πλαισίου αναζήτησης “Αναζήτηση περιεχομένου”, βασικά δεν είναι δυνατή η αναζήτηση με ερωτήσεις (μόνο μία ερώτηση μπορεί). Δεν είναι δυνατή η αναζήτηση συνωνύμων. Μπορούν να αναζητηθούν μόνο μηνύματα που έχουν κοινές λέξεις με το ερώτημα. Δεν είμαι σίγουρος αν είναι πρόβλημα του embedding model.

Οι εντολές που χρησιμοποιούνται συχνά για την εκτέλεση της ανάπτυξης frontend και backend πρέπει να περιμένουν τη μεταγλώττιση, η οποία είναι χρονοβόρα για τους χρήστες που είναι εξοικειωμένοι με γλώσσες προγραμματισμού που δεν απαιτούν προκαταρκτική μεταγλώττιση και για τους χρήστες που είναι εξοικειωμένοι με γλώσσες προγραμματισμού με γρήγορη μεταγλώττιση.

Όταν ανοίγετε το frontend για χρήση και μετά το ανανεώνετε μετά από λίγο, το frontend θα εμφανίσει μια λευκή οθόνη, όπως φαίνεται παρακάτω. Κάθε φορά πρέπει να επανεκκινήσετε, pnpm run dev:frontend, και πρέπει να περιμένετε τη μεταγλώττιση. Η ανάπτυξη σε έναν διακομιστή και η ανάγκη σύνδεσης στον διακομιστή και μεταγλώττισης κάθε φορά που χρησιμοποιείτε ή, ας πούμε, πριν από κάθε ερώτημα, είναι πράγματι ενοχλητική.

groupultra/telegram-search 项目前端白屏问题

Συνοψίζοντας τα παραπάνω προβλήματα, το groupultra telegram-search, ως ένα έργο αναζήτησης ιστορικών μηνυμάτων telegram, είναι προς το παρόν λιγότερο χρήσιμο από άλλα ώριμα παραδοσιακά έργα. Άλλα προτεινόμενα έργα:

落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , αναπτύχθηκε από την Yiyun της κοινότητας archlinux cn, το έργο τρέχει σταθερά για πολλά χρόνια, δείτε τα πραγματικά αποτελέσματα: 公开的群组消息记录搜索网页 . Χαρακτηριστικά του έργου:

  • Το έργο χρησιμοποιεί κυρίως python, δεν χρειάζεται να περιμένετε τη μεταγλώττιση. Αν και υπάρχουν στοιχεία που χρειάζονται μεταγλώττιση, αλλά χρειάζεται να μεταγλωττιστούν μόνο μία φορά
  • Η αναζήτηση συμβολοσειρών δεν διακρίνει απλοποιημένα και παραδοσιακά κινέζικα (θα χρησιμοποιήσει αυτόματη μετατροπή OpenCC)
  • Η αναζήτηση συμβολοσειρών υποστηρίζει κάποια σύνταξη αναζήτησης
  • Η κατανάλωση πόρων κατά την εκτέλεση είναι χαμηλότερη από το groupultra/telegram-search

Προβλήματα του Luoxu:

  • Η εγκατάσταση και η ανάπτυξη μπορεί να είναι πιο ενοχλητικές από το έργο groupultra/telegram-search. (Είναι μια σύγκριση της πραγματικής ανάπτυξης δύο έργων. Επειδή αναπτύσσω το luoxu σε ένα σύστημα Linux arm32, όλες οι εξαρτήσεις για την ανάπτυξη του luoxu είναι πλήρως μεταγλωττισμένες και εγκατεστημένες, συμπεριλαμβανομένου του PostgreSQL: Linux 编译安装 PostgreSQL 17.4)
  • Ο προεπιλεγμένος κώδικας μπορεί να ευρετηριάσει μόνο τα μηνύματα ομάδων και καναλιών που είναι γραμμένα στο αρχείο διαμόρφωσης, φυσικά μπορείτε να αλλάξετε τον κώδικα χειροκίνητα

Προϋποθέσεις και απαιτήσεις για την ανάπτυξη

  • AI που μπορεί να χρησιμοποιηθεί, όπως Google Gemini, OpenAI κ.λπ.
  • Node.js: Έκδοση 20.0 ή νεότερη
  • RAM: Τουλάχιστον 100 MB
  • Δίκτυο με δυνατότητα πρόσβασης στο διεθνές διαδίκτυο

Αυτό το σεμινάριο χρησιμοποιεί το εντελώς δωρεάν Google Gemini, το online API δεν καταλαμβάνει τοπικούς υπολογιστικούς πόρους. Εισαγωγή της αίτησης: Gemini API KEY 申请及使用

Εγώ το αναπτύσσω σε έναν διεθνή διακομιστή Linux amd64, δεν χρησιμοποιώ Docker, άλλα περιβάλλοντα λειτουργικού συστήματος είναι μόνο για αναφορά

Ακολουθήστε αυτό το σεμινάριο για να λειτουργήσετε, προσέξτε να συγκρίνετε με την επίσημη τεκμηρίωση.

Γρήγορη έναρξη

Σύμφωνα με την επίσημη τεκμηρίωση, η βασική ροή εργασίας για τη χρήση του Telegram Search είναι η εξής:

  1. Εγκατάσταση και διαμόρφωση: Εγκαταστήστε την εφαρμογή και διαμορφώστε τα απαραίτητα API
  2. Σύνδεση λογαριασμού Telegram: Συνδεθείτε στον λογαριασμό σας Telegram
  3. Συγχρονισμός ιστορικού συνομιλιών: Επιλέξτε το ιστορικό συνομιλιών που θέλετε να αναζητήσετε για να συγχρονίσετε
  4. Έναρξη αναζήτησης: Χρησιμοποιήστε τη λειτουργία σημασιολογικής αναζήτησης για να βρείτε μηνύματα

Εγκατάσταση και διαμόρφωση

Εγκατάσταση του Node.js

Επισκεφτείτε τον Επίσημο ιστότοπο του Node.js για να δείτε την τεκμηρίωση και να εγκαταστήσετε. Συνιστάται η χρήση της πιο πρόσφατης έκδοσης LTS, χρησιμοποιήστε τις ακόλουθες δύο εντολές για να επιβεβαιώσετε την έκδοση μετά την ολοκλήρωση της εγκατάστασης:

node -v
v22.16.0

npm --version
10.9.2

Επειδή το έργο χρησιμοποιεί pnpm, εγκαταστήστε το. Επίσημη τεκμηρίωση: Installation | pnpm , τρέχουσα πραγματική εντολή:

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

Σύμφωνα με τις οδηγίες

source /home/opc/.bashrc

Εγκαταστήστε τη βάση δεδομένων PostgreSQL και την προσθήκη pgvector

Προσέξτε να εγκαταστήσετε το PostgreSQL και την προσθήκη pgvector. Σημειώστε ότι το περιεχόμενο αυτής της ενότητας μπορεί να μην είναι πλήρες

Σημειώστε ότι τα συστήματα CentOS και άλλα συστήματα redhat χρησιμοποιούν αυτές τις εντολές εγκατάστασης. Κατά τη λειτουργία, φροντίστε να ανατρέξετε σε άλλα άρθρα στο διαδίκτυο και σε προτάσεις AI.

Εγκαταστήστε το επίσημο πακέτο διαμόρφωσης αποθετηρίου YUM PostgreSQL

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

Η έκδοση που επέλεξα είναι η 13, μπορείτε να επιλέξετε μια νεότερη έκδοση. Επειδή είχα εγκαταστήσει προηγουμένως το PostgreSQL 13, οι συγκεκριμένες εντολές δεν είναι σίγουρες. Τώρα

Αναζητήστε διαθέσιμα πακέτα που σχετίζονται με το pgvector στην πηγή YUM

sudo yum search pgvector

Εγκατάσταση

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

Αρχικοποιήστε τον κατάλογο δεδομένων PostgreSQL 13 (πρέπει να εκτελεστεί μετά την πρώτη εγκατάσταση).

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

Επανεκκινήστε την υπηρεσία PostgreSQL 13 για να εφαρμοστούν οι αλλαγές.

sudo systemctl restart postgresql-13

Αλλάξτε στον χρήστη διαχειριστή βάσης δεδομένων postgres.

sudo -i -u postgres

Ξεκινήστε το πρόγραμμα-πελάτη γραμμής εντολών PostgreSQL.

psql

Ορίστε τον κωδικό πρόσβασης σύνδεσης για τον χρήστη postgres.

ALTER USER postgres WITH PASSWORD '您的数据库密码';

Συνδεθείτε στο PostgreSQL ως χρήστης postgres μέσω του τοπικού κεντρικού υπολογιστή και ζητήστε να εισαγάγετε τον κωδικό πρόσβασης.

psql -U postgres -h localhost --password

Έξοδος από το psql

exit

Στη συνέχεια, επιστρέψτε στον αρχικό χρήστη του συστήματος,

exit

Προσπαθήστε να εισέλθετε στη βάση δεδομένων

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

Διαμορφώστε το έργο και ξεκινήστε το

Επειδή το Google Gemini API έχει περιορισμούς ρυθμού, έκανα μια μικρή τροποποίηση:

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

Σημειώστε ότι αυτός ο τρέχων κλάδος ρυθμού, τροποποιήθηκε από εμένα εξ ολοκλήρου στην ιστοσελίδα Github και δεν πραγματοποιήθηκαν τοπικές δοκιμές.

Η τροποποίηση του ορίου ταχύτητας που μπορεί να εκτελεστεί με επιτυχία στο μηχάνημά μου βασίζεται σε αυτήν την έκδοση: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, η οποία μπορεί να εξασφαλίσει μόνο ότι ο κώδικας μπορεί να εκτελεστεί χωρίς σφάλματα. Εάν ο κώδικάς σας δεν μπορεί να εκτελεστεί, δοκιμάστε να αναιρέσετε τις τροποποιήσεις του επίσημου έργου μετά από αυτό το commit.

Εάν το API που χρησιμοποιείτε δεν έχει περιορισμούς ρυθμού, μπορείτε να χρησιμοποιήσετε απευθείας το επίσημο αποθετήριο

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

Αντιγράψτε το αρχείο διαμόρφωσης config\config.example.yaml στο ίδιο αρχείο καταλόγου config\config.yaml.

Ανατρέξτε στην ακόλουθη μορφή για να τροποποιήσετε απευθείας το αρχείο διαμόρφωσης, τα άλλα μέρη ανατρέξτε στην προεπιλεγμένη περιγραφή του αρχείου διαμόρφωσης για να τροποποιήσετε.

Η εφαρμογή telegram api χρειάζεται IP καλής ποιότητας, αν δεν μπορείτε να κάνετε αίτηση, χρησιμοποιήστε την IP του συγγραφέα, δεν χρειάζεται να τροποποιήσετε. Αυτό είναι για πελάτες τρίτων και όχι για ρομπότ 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: 'Ο κωδικός πρόσβασης της βάσης δεδομένων σας'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # 这里不要改为 Gemini
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <Το Gemini API KEY που αποκτήσατε>
    # Gemini embedding-001 默认输出 3072 维,不能自定义维度
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Ξεκινήστε την υπηρεσία backend
pnpm run dev:server

# Ξεκινήστε τη διεπαφή frontend σε ένα άλλο παράθυρο τερματικού
pnpm run dev:frontend

Ελέγξτε εάν το frontend μπορεί να προσπελαστεί με επιτυχία:

curl http://localhost:3333/

Εάν είναι τοπικό μηχάνημα, ανοίξτε ένα πρόγραμμα περιήγησης και επισκεφτείτε http://localhost:3333 για να χρησιμοποιήσετε την εφαρμογή

Εάν είναι μια απομακρυσμένη συσκευή, χρειάζεται μόνο να ανοίξετε τη θύρα του frontend για πρόσβαση. Αλλά δεν μπορεί να εκτεθεί απευθείας στο δημόσιο δίκτυο για να γίνει δημόσια, διαφορετικά οποιοσδήποτε μπορεί να χειριστεί τον λογαριασμό σας telegram. Πρέπει να διαμορφώσετε μόνοι σας τα δικαιώματα πρόσβασης, υπάρχουν πολλές λύσεις για αυτό.

Επιπλέον, για την πρόσβαση σε τομέα, ίσως χρειαστεί να τροποποιήσετε το apps\frontend\vite.config.ts για να προσθέσετε

 allowedHosts: ['Ο τομέας που επισκέπτεστε']

Για άλλα περιεχόμενα, ανατρέξτε στην επίσημη τεκμηρίωση.

Άλλες εκδόσεις αυτής της ιστοσελίδας

Αυτό το άρθρο είναι διαθέσιμο σε πολλές γλώσσες.

Αν θέλετε να κάνετε ένα σχόλιο, επισκεφτείτε τις παρακάτω ιστοσελίδες:

ZH EN ZH-TW JA

Αυτές οι ιστοσελίδες υποστηρίζουν μόνο την περιήγηση, δεν μπορείτε να κάνετε σχόλια ή να αφήσετε μηνύματα, αλλά παρέχουν περισσότερες επιλογές γλώσσας και έχουν μικρότερο χρόνο φόρτωσης:

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