groupultra telegram-search to nowe narzędzie do wyszukiwania historii czatów użytkowników Telegrama.
Kilka rekomendacji:
- Robot do zarządzania grupami Telegram @CSUBOT : Może wysyłać prywatne wiadomości do nowych użytkowników, wysyłać kody weryfikacyjne CloudFlare w celu weryfikacji przyłączenia się do grupy, aby zweryfikować, czy użytkownik chcący dołączyć do grupy jest prawdziwym człowiekiem. Nie przeszkadza innym członkom grupy.
- Sprawdź publiczny adres IP, z którego urządzenie łączy się z różnymi stronami , może wykryć konfigurację routingu proxy i uniknąć zablokowania przez narzędzia AI. Można sprawdzić adres IP używany przez użytkownika do uzyskiwania dostępu do chińskich stron internetowych, znanych międzynarodowych stron internetowych AI, zablokowanych międzynarodowych stron internetowych i dostępnych międzynarodowych stron internetowych
Funkcje projektu
Zgodnie z oficjalną dokumentacją, Telegram Search oferuje następujące podstawowe funkcje:
- Wyszukiwanie semantyczne: Może nie tylko wyszukiwać słowa kluczowe, ale także rozumieć kontekst i znaczenie wiadomości
- Dopasowywanie wektorowe: Oparte na technologii wektorów osadzania OpenAI, realizuje wyszukiwanie podobieństw
- Efektywne wyszukiwanie: Bardziej precyzyjne i inteligentne wyszukiwanie niż natywne wyszukiwanie Telegrama
- Obsługa wielu platform: Dostępny interfejs Web i aplikacja na komputery
Zniechęcanie
Po pierwsze, wymieńmy kilka treści, które różnią się od oczekiwań użytkowników, oraz pewne istniejące problemy, aby zniechęcić niektórych użytkowników, dla których ten projekt nie jest odpowiedni. I przedstawmy sugestie dotyczące korzystania z innych dojrzałych projektów.
Różnica między tym projektem a innymi tradycyjnymi projektami, które nie wykorzystują AI, polega na wyszukiwaniu semantycznym (może nie tylko wyszukiwać słowa kluczowe, ale także rozumieć kontekst i znaczenie wiadomości). Jednak obecnie próbowałem kilku zapytań i niezależnie od tego, czy zaznaczę opcję “Szukaj treści”, zasadniczo nie można wyszukiwać za pomocą pytań (tylko jedno zapytanie działa); nie można wyszukiwać synonimów. Można znaleźć tylko wiadomości, które mają wspólne słowa z zapytaniem. Nie jestem pewien, czy to problem modelu osadzania.
Często używane polecenia do uruchamiania frontendu i backendu wymagają kompilacji. Dla użytkowników, którzy są przyzwyczajeni do języków programowania, które nie wymagają wcześniejszej kompilacji, i użytkowników, którzy są przyzwyczajeni do szybkiej kompilacji, czas oczekiwania na ten projekt jest trochę długi.
Po otwarciu frontendu i odświeżeniu go po pewnym czasie, frontend wyświetli biały ekran, jak pokazano poniżej. Za każdym razem trzeba go ponownie uruchomić, pnpm run dev:frontend
, trzeba czekać na kompilację. Wdrożenie na serwerze, przed każdym użyciem, a raczej przed każdym zapytaniem, trzeba jeszcze połączyć się z serwerem i skompilować, co jest naprawdę kłopotliwe.

Podsumowując powyższe problemy, groupultra telegram-search jako projekt do wyszukiwania historii wiadomości Telegrama, obecnie jest mniej użyteczny niż inne dojrzałe projekty tradycyjne. Inne polecane projekty:
落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , opracowany przez Yiyun ze społeczności archlinux cn, projekt działa stabilnie od wielu lat, zobacz rzeczywisty efekt: Publiczna strona wyszukiwania historii wiadomości grupowych . Cechy projektu:
- Projekt wykorzystuje głównie Pythona, nie trzeba czekać na kompilację. Chociaż niektóre komponenty wymagają kompilacji, wystarczy skompilować je tylko raz
- Wyszukiwane ciągi nie rozróżniają znaków uproszczonych i tradycyjnych (automatycznie konwertowane za pomocą OpenCC)
- Wyszukiwane ciągi obsługują pewną składnię wyszukiwania
- Działanie zajmuje mniej zasobów niż groupultra/telegram-search
Problemy z Luoxu:
- Instalacja i wdrożenie mogą być bardziej kłopotliwe niż w przypadku projektu groupultra/telegram-search. (To jest porównanie moich rzeczywistych wdrożeń dwóch projektów. Ponieważ wdrażam luoxu na systemie Linux arm32, wszystkie zależności, które wdrożyłem dla luoxu, są kompilowane i instalowane w całości, w tym PostgreSQL: Kompilacja i instalacja PostgreSQL 17.4 w systemie Linux )
- Domyślny kod może indeksować tylko wiadomości z grup i kanałów zapisanych w pliku konfiguracyjnym, oczywiście możesz ręcznie zmienić kod
Wymagania wstępne i wymagania dotyczące wdrożenia
- Możliwość korzystania z AI, takie jak Google Gemini, OpenAI itp.
- Node.js: 20.0 lub nowszy
- RAM: Co najmniej 100 MB
- Możliwość dostępu do międzynarodowego Internetu
Ten poradnik korzysta z całkowicie darmowego Google Gemini, a API online nie zajmuje lokalnych zasobów obliczeniowych. Wprowadzenie do wniosku: Wniosek o klucz Gemini API i jego użycie
Osobiście wdrażam go na międzynarodowym serwerze Linux amd64, bez użycia Dockera, inne środowiska systemowe służą jedynie jako odniesienie
Wykonując czynności zgodnie z tym poradnikiem, zwróć uwagę na porównanie z oficjalną dokumentacją.
Szybki start
Zgodnie z oficjalną dokumentacją, podstawowy proces korzystania z Telegram Search wygląda następująco:
- Instalacja i konfiguracja: Zainstaluj aplikację i skonfiguruj niezbędne API
- Połącz konto Telegram: Zaloguj się na swoje konto Telegram
- Synchronizuj historię czatów: Wybierz historię czatów, którą chcesz przeszukać, i zsynchronizuj ją
- Rozpocznij wyszukiwanie: Użyj funkcji wyszukiwania semantycznego, aby znaleźć wiadomości
Instalacja i konfiguracja
Instalacja Node.js
Odwiedź oficjalną stronę Node.js , aby zapoznać się z dokumentacją i przeprowadzić instalację. Zaleca się korzystanie z najnowszej wersji LTS. Po zakończeniu instalacji użyj następujących dwóch poleceń, aby potwierdzić wersję:
node -v
v22.16.0
npm --version
10.9.2
Ponieważ projekt korzysta z pnpm, więc przeprowadź instalację. Oficjalna dokumentacja: Installation | pnpm , bieżące rzeczywiste polecenie:
curl -fsSL https://get.pnpm.io/install.sh | sh -
Zgodnie z wyświetlonymi komunikatami
source /home/opc/.bashrc
Instalacja bazy danych PostgreSQL i wtyczki pgvector
Należy pamiętać, aby zainstalować PostgreSQL i wtyczkę pgvector. Należy pamiętać, że ta sekcja może być niekompletna
Należy pamiętać, że systemy CentOS i inne systemy redhat używają tych poleceń instalacyjnych. Podczas operacji należy zawsze odwoływać się do innych artykułów w Internecie i sugestii AI.
Zainstaluj oficjalny pakiet konfiguracyjny repozytorium YUM PostgreSQL
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Wybraną przeze mnie wersją jest 13, możesz wybrać nowszą wersję. Ponieważ wcześniej zainstalowałem PostgreSQL 13, konkretne polecenia nie są pewne. Teraz
Wyszukaj dostępne pakiety związane z pgvector
w źródłach YUM
sudo yum search pgvector
Zainstaluj
sudo yum install -y pgvector_13
sudo systemctl status postgresql-13
Zainicjuj katalog danych PostgreSQL 13 (musi być wykonane po pierwszej instalacji).
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Uruchom ponownie usługę PostgreSQL 13, aby zmiany zostały zastosowane.
sudo systemctl restart postgresql-13
Przełącz się na użytkownika administratora bazy danych postgres
.
sudo -i -u postgres
Uruchom klienta linii poleceń PostgreSQL.
psql
Ustaw hasło logowania dla użytkownika postgres
.
ALTER USER postgres WITH PASSWORD 'Twoje hasło do bazy danych';
Połącz się z PostgreSQL jako użytkownik postgres
przez localhost i wprowadź hasło.
psql -U postgres -h localhost --password
Wyjdź z psql
exit
Następnie wróć do początkowego użytkownika systemu,
exit
Spróbuj wejść do bazy danych
psql -U postgres -h localhost --password
CREATE DATABASE tg_1;
CREATE EXTENSION IF NOT EXISTS vector;
Skonfiguruj projekt i uruchom go
Ponieważ Google Gemini API ma limit szybkości, wprowadziłem niewielką modyfikację:
git clone -b rate https://github.com/cjh0613/groupultra-telegram-search.git
Należy pamiętać, że bieżąca gałąź rate została zmodyfikowana przeze mnie w całości na stronie Github i nie przeprowadziłem żadnych testów lokalnie.
Modyfikacja limitu szybkości, która pomyślnie działa na moim komputerze, jest oparta na tym wydaniu: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, po prostu upewniam się, że kod może działać i nie ma błędów. Jeśli twój kod nie działa, spróbuj przywrócić modyfikacje oficjalnego projektu po tym commitcie.
Jeśli używane API nie ma limitu szybkości, możesz użyć bezpośrednio oficjalnego repozytorium
git clone https://github.com/groupultra/telegram-search.git
Skopiuj plik konfiguracyjny config\config.example.yaml
do pliku config\config.yaml
w tym samym katalogu.
Zmodyfikuj bezpośrednio plik konfiguracyjny zgodnie z poniższym formatem, a pozostałe części zmodyfikuj zgodnie z domyślnymi instrukcjami w pliku konfiguracyjnym.
Aplikacja telegram api wymaga wysokiej jakości adresu IP, jeśli nie możesz go uzyskać, użyj adresu autora, nie musisz go modyfikować. Służy do klienta innej firmy, a nie robota 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: 'Twoje hasło do bazy danych'
database: tg_1
api:
embedding:
# Embedding provider (openai or ollama) # Nie zmieniaj tutaj na Gemini
provider: openai
# Embedding model
model: models/text-embedding-004
# gemini-embedding-exp-03-07
# API key for provider
apiKey: <Uzyskany klucz Gemini API>
# Gemini embedding-001 domyślnie wyprowadza 3072 wymiary, nie można dostosować wymiarów
dimension: 768
# Optional, for custom API providers
apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Uruchom usługę backendu
pnpm run dev:server
# Uruchom interfejs frontend w innym oknie terminala
pnpm run dev:frontend
Sprawdź, czy frontend jest dostępny:
curl http://localhost:3333/
Jeśli jest to urządzenie lokalne, otwórz przeglądarkę i odwiedź http://localhost:3333
, aby użyć aplikacji
Jeśli jest to urządzenie zdalne, wystarczy otworzyć port frontendu do dostępu. Ale nie można go bezpośrednio udostępniać publicznie w Internecie, w przeciwnym razie każdy może manipulować twoim kontem Telegram. Musisz samodzielnie skonfigurować uprawnienia dostępu, istnieje wiele rozwiązań.
Ponadto, w przypadku dostępu do domeny, może być konieczna modyfikacja apps\frontend\vite.config.ts
poprzez dodanie
allowedHosts: ['Twoja domena']
Inne treści znajdują się w oficjalnej dokumentacji.
Inne wersje tej strony
Ten artykuł jest dostępny w wielu wersjach językowych.
Jeśli chcesz opublikować komentarz, odwiedź następujące strony:
Te strony obsługują tylko przeglądanie, nie można publikować komentarzy ani wiadomości, ale oferują więcej opcji językowych i krótszy czas ładowania:
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