groupultra telegram-search 은 새로운 Telegram 사용자 채팅 기록 검색 도구입니다.
몇 가지 추천 사항:
- Telegram 그룹 관리 로봇 @CSUBOT : 신규 사용자에게 개인 메시지를 보내고 CloudFlare 웹페이지 인증 코드를 보내 그룹 가입 심사를 진행하여 그룹에 가입하려는 사용자가 실제 사람인지 확인할 수 있습니다. 그룹 내 다른 구성원을 방해하지 않습니다.
- 다른 웹사이트에 접속하는 내 컴퓨터의 공용 IP를 조회 하여 에이전트 분할 구성을 감지하고 AI 도구에 의해 차단되는 것을 방지할 수 있습니다. 사용자가 중국 웹사이트, 국제적으로 유명한 AI 웹사이트, 차단된 국제 웹사이트, 허용된 국제 웹사이트에 액세스하는 데 사용되는 IP를 확인할 수 있습니다.
프로젝트 특징
공식 문서에 따르면 Telegram Search는 다음과 같은 핵심 기능을 제공합니다.
- 의미 검색: 키워드를 검색할 뿐만 아니라 메시지의 맥락과 의미를 이해할 수 있습니다.
- 벡터 매칭: OpenAI의 임베딩 벡터 기술을 기반으로 유사성 검색을 구현합니다.
- 효율적인 검색: Telegram 기본 검색보다 더 정확하고 스마트한 검색 경험
- 다중 플랫폼 지원: 웹 인터페이스 및 데스크톱 애플리케이션 제공
말림
먼저 사용자의 기대와 크게 다른 내용과 존재하는 문제점을 나열하여 이 프로젝트에 적합하지 않은 일부 사용자를 포기하도록 하겠습니다. 다른 성숙한 프로젝트를 사용하는 것이 좋습니다.
이 프로젝트와 AI를 사용하지 않는 기존 프로젝트의 차이점은 의미 검색(키워드를 검색할 뿐만 아니라 메시지의 맥락과 의미를 이해할 수 있음)에 있습니다. 그러나 현재 몇 가지 쿼리를 시도한 결과 검색 상자의 “검색 내용” 설정 항목을 선택하든 선택하지 않든 기본적으로 질문을 사용하여 검색할 수 없습니다(한 문장만 가능). 유의어 검색을 할 수 없습니다. 쿼리와 공통 단어가 있는 메시지만 검색할 수 있습니다. 임베딩 모델의 문제인지 확실하지 않습니다.
자주 사용해야 하는 프런트엔드 및 백엔드 배포 및 실행 명령은 컴파일을 기다려야 합니다. 미리 컴파일할 필요가 없는 프로그래밍 언어 와 컴파일 속도가 빠른 프로그래밍 언어 에 익숙한 사용자에게는 이 프로젝트의 대기 시간이 약간 깁니다.
프런트엔드를 열어 사용한 다음 잠시 후 새로 고침하여 사용하면 프런트엔드가 빈 화면으로 나타납니다. 매번 다시 시작해야 합니다. pnpm run dev:frontend
는 컴파일을 기다려야 합니다. 서버에 배포하면 매번 사용하거나 매번 쿼리하기 전에 서버에 연결하여 컴파일해야 하므로 번거롭습니다.

위의 문제를 요약하면 groupultra telegram-search는 텔레그램 과거 메시지를 검색하는 프로젝트로서 현재 사용하기에 다른 성숙한 기존 프로젝트보다 못합니다. 다른 프로젝트 추천:
낙서 lilydjwg/luoxu: 중국어 및 일본어 그룹 콘텐츠를 인덱싱하는 데 사용되는 텔레그램 사용자 로봇입니다. — 중국어 및 일본어 그룹 콘텐츠를 인덱싱하는 텔레그램 사용자 봇. 는 Archlinux CN 커뮤니티의 Yiyun이 개발했습니다. 이 프로젝트는 수년 동안 안정적으로 운영되어 왔습니다. 실제 효과를 확인하세요. 공개 그룹 메시지 기록 검색 웹페이지 . 프로젝트 특징:
- 프로젝트는 주로 Python을 사용하며 컴파일을 기다릴 필요가 없습니다. 컴파일해야 하는 구성 요소가 있지만 한 번만 컴파일하면 됩니다.
- 검색 문자열은 간체와 번체를 구분하지 않습니다(OpenCC를 사용하여 자동 변환).
- 검색 문자열은 일부 검색 구문을 지원합니다.
- 실행하는 데 필요한 리소스가 groupultra/telegram-search보다 약간 적습니다.
Luoxu의 문제점:
- 설치 및 배포가 groupultra/telegram-search 프로젝트보다 약간 더 번거로울 수 있습니다. (두 프로젝트를 실제로 배포한 것을 비교한 결과입니다. Linux ARM32 시스템에 Luoxu를 배포했기 때문에 PostgreSQL: Linux에서 PostgreSQL 17.4 컴파일 및 설치 를 포함하여 Luoxu의 모든 종속성을 완전히 컴파일하여 설치했습니다.)
- 기본 코드는 구성 파일에 작성된 그룹 및 채널 메시지만 인덱싱할 수 있지만 코드를 수동으로 변경할 수 있습니다.
배포 전제 조건 및 요구 사항
- 사용 가능한 AI, Google Gemini, OpenAI 등
- Node.js: 20.0 이상
- RAM: 최소 100MB
- 국제 인터넷에 접속할 수 있는 네트워크
본 튜토리얼에서는 완전히 무료인 Google Gemini를 사용하며 온라인 API는 로컬 계산 리소스를 차지하지 않습니다. 신청 소개: Gemini API KEY 신청 및 사용
본인은 Linux AMD64 국제 서버에 배포했으며 Docker를 사용하지 않았습니다. 다른 운영 체제 환경은 참고용입니다.
본 튜토리얼에 따라 작업을 수행할 때는 공식 문서와 비교하세요.
빠른 시작
공식 문서에 따르면 Telegram Search의 기본 흐름은 다음과 같습니다.
- 설치 및 구성: 애플리케이션을 설치하고 필요한 API를 구성합니다.
- Telegram 계정 연결: Telegram 계정에 로그인합니다.
- 채팅 기록 동기화: 검색할 채팅 기록을 선택하여 동기화합니다.
- 검색 시작: 의미 검색 기능을 사용하여 메시지를 찾습니다.
설치 및 구성
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 권장 사항을 참조하십시오.
PostgreSQL 공식 YUM 리포지토리 구성 패키지 설치
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을 설치했으므로 구체적인 명령은 확실하지 않습니다. 지금
YUM 소스에서 pgvector
와 관련된 사용 가능한 패키지를 검색합니다.
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 '데이터베이스 비밀번호';
postgres
사용자로 로컬 호스트를 통해 PostgreSQL에 연결하고 비밀번호를 입력하라는 메시지가 표시됩니다.
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
현재 이 rate branch 분기는 Github 웹페이지에서 전체적으로 수정했으며 로컬에서 테스트하지 않았습니다.
본인 컴퓨터에서 성공적으로 실행할 수 있는 속도 제한 수정은 이 릴리스: v1.0.0-beta.10, 커밋: c60ac6416dcac6543d2623c49179681ed859e26f 를 기반으로 코드 실행이 보장되고 오류가 발생하지 않습니다. 코드가 실행되지 않으면 이 커밋 이후 공식 프로젝트의 수정을 revert해 보세요.
API에 속도 제한이 없으면 공식 리포지토리를 직접 사용할 수 있습니다.
git clone https://github.com/groupultra/telegram-search.git
구성 파일 config\config.example.yaml
를 동일한 디렉터리 config\config.yaml
파일로 복사합니다.
다음 형식에 따라 구성 파일을 직접 수정하고 다른 부분은 기본 구성 파일 설명을 참조하여 수정합니다.
Telegram API 신청에는 품질이 좋은 IP가 필요합니다. 신청할 수 없으면 작성자의 것을 사용하세요. 수정할 필요가 없습니다. 이것은 타사 클라이언트에 사용되며 텔레그램 봇에는 사용되지 않습니다.
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/'
# 백엔드 서비스 시작
pnpm run dev:server
# 다른 터미널 창에서 프런트엔드 인터페이스 시작
pnpm run dev:frontend
프런트엔드에 성공적으로 액세스할 수 있는지 확인합니다.
curl http://localhost:3333/
본인 컴퓨터인 경우 브라우저를 열어 http://localhost:3333
에 액세스하여 애플리케이션을 사용할 수 있습니다.
원격 장치인 경우 프런트엔드의 포트만 열어 액세스하면 됩니다. 그러나 공용 네트워크에 직접 노출하여 공개적으로 액세스할 수는 없습니다. 그렇지 않으면 누구나 텔레그램 계정을 조작할 수 있습니다. 액세스 권한을 직접 구성해야 하며 이 솔루션은 많습니다.
또한 도메인 액세스의 경우 apps\frontend\vite.config.ts
를 수정하여 다음을 추가해야 할 수 있습니다.
allowedHosts: ['액세스할 도메인']
다른 내용은 공식 문서를 참조하세요.
이 웹페이지의 다른 버전
이 문서에는 여러 언어 버전이 있습니다.
댓글을 게시하려면 다음 웹페이지를 방문하세요.
이 웹페이지는 보기만 지원하며 댓글을 게시하거나 메시지를 남길 수 없지만 더 많은 언어 옵션을 제공하고 로드 시간이 더 짧습니다.
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