groupultra telegram-search é uma nova ferramenta de pesquisa de histórico de bate-papo do usuário do telegram.

Algumas recomendações:

  • Telegram 群组管理机器人 @CSUBOT: pode enviar mensagens privadas para novos usuários, enviar códigos de verificação de página do CloudFlare para realizar auditorias de entrada no grupo, para verificar se os usuários que solicitam a entrada no grupo são humanos reais. Não perturba outros membros do grupo.
  • 查询本机访问不同网站的公网 IP, pode detectar a configuração de divisão de proxy e evitar ser bloqueado por ferramentas de IA. Pode ver o IP usado pelos usuários para acessar sites chineses, sites de IA internacionalmente conhecidos, sites internacionais bloqueados e sites internacionais permitidos

Recursos do projeto

De acordo com a documentação oficial, o Telegram Search fornece as seguintes funções principais:

  • Pesquisa semântica: não só pode pesquisar palavras-chave, mas também entender o contexto e o significado da mensagem
  • Correspondência de vetores: com base na tecnologia de vetores incorporados do OpenAI, realiza pesquisa de similaridade
  • Recuperação eficiente: experiência de recuperação mais precisa e inteligente do que a pesquisa nativa do Telegram
  • Suporte multiplataforma: fornece interface Web e aplicativos de desktop

Desistência

Primeiro, liste alguns conteúdos que são muito diferentes das expectativas do usuário, bem como alguns problemas existentes, para dissuadir alguns usuários que não são adequados para este projeto. E dê sugestões para usar outros projetos maduros.

A diferença entre este projeto e outros projetos tradicionais que não usam IA reside na pesquisa semântica (não só pode pesquisar palavras-chave, mas também entender o contexto e o significado da mensagem). No entanto, atualmente tentei várias consultas e, independentemente de a opção “conteúdo da pesquisa” estar marcada na caixa de pesquisa, basicamente não consigo pesquisar com perguntas (apenas uma); não consigo pesquisar sinônimos. Só consigo pesquisar mensagens cujos resultados e consultas tenham palavras em comum. Não tenho certeza se é um problema do modelo de incorporação.

Os comandos usados frequentemente para executar a implantação de front-end e back-end precisam ser compilados. Para usuários que estão acostumados a linguagens de programação que não precisam ser pré-compiladas e linguagens de programação que estão acostumados a velocidades de compilação rápidas, o tempo de espera para este projeto é um pouco longo.

Abra o front-end para usar e, após um tempo, atualize-o para usar, o front-end aparecerá em branco, como mostrado abaixo. Sempre preciso reiniciar, pnpm run dev:frontend, e preciso esperar pela compilação. Implantar no servidor, cada vez que usar ou, em outras palavras, antes de cada consulta, ainda preciso me conectar ao servidor e compilar uma vez, o que é realmente problemático.

Problema de tela branca do front-end do projeto groupultra/telegram-search

Em resumo, os problemas acima são que o groupultra telegram-search, como um projeto para pesquisar mensagens históricas do telegram, é atualmente menos utilizável do que outros projetos tradicionais maduros. Outros projetos recomendados:

落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , desenvolvido pela comunidade archlinux cn, Yiyun, o projeto tem funcionado de forma estável há muitos anos, veja o efeito real: 公开的群组消息记录搜索网页 . Características do projeto:

  • O projeto usa principalmente python e não precisa esperar pela compilação. Embora alguns componentes precisem ser compilados, eles só precisam ser compilados uma vez
  • As strings de pesquisa não distinguem entre caracteres simplificados e tradicionais (OpenCC será usado para conversão automática)
  • As strings de pesquisa suportam alguma sintaxe de pesquisa
  • A execução ocupa menos recursos do que groupultra/telegram-search

Problemas do Luoxu:

  • A instalação e a implantação podem ser mais problemáticas do que o projeto groupultra/telegram-search. (Esta é uma comparação dos dois projetos que eu realmente implantei. Como implantei o luoxu no sistema Linux arm32, todas as dependências que implantei no luoxu são totalmente compiladas e instaladas, incluindo PostgreSQL: Linux 编译安装 PostgreSQL 17.4)
  • O código padrão só pode indexar grupos pré-escritos e mensagens de canal no arquivo de configuração, claro, você pode alterar o código manualmente

Pré-requisitos e requisitos de implantação

  • IA utilizável, como Google Gemini, OpenAI, etc.
  • Node.js: versão 20.0 ou superior
  • RAM: pelo menos 100 MB
  • Rede capaz de acessar a Internet internacional

Este tutorial usa o Google Gemini totalmente gratuito, e a API online não ocupa recursos de computação local. Solicite uma apresentação: Gemini API KEY 申请及使用

Eu o implantei em um servidor internacional Linux amd64, não usei Docker, outros ambientes de sistema operacional são apenas para referência

Siga este tutorial para operar, preste atenção para comparar a documentação oficial.

Início rápido

De acordo com a documentação oficial, o fluxo básico de uso do Telegram Search é o seguinte:

  1. Instalação e configuração: instale o aplicativo e configure as APIs necessárias
  2. Conectar conta do Telegram: faça login na sua conta do Telegram
  3. Sincronizar histórico de bate-papo: selecione o histórico de bate-papo que precisa ser pesquisado para sincronizar
  4. Iniciar pesquisa: use a função de pesquisa semântica para encontrar mensagens

Instalação e configuração

Instalar Node.js

Visite o site oficial do Node.js para visualizar a documentação e instalá-lo. Recomenda-se usar a versão LTS mais recente e usar os dois comandos a seguir para confirmar a versão após a instalação:

node -v
v22.16.0

npm --version
10.9.2

Como o projeto usa pnpm, instale-o. Documentação oficial: Installation | pnpm , comando real atual:

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

De acordo com as dicas

source /home/opc/.bashrc

Instale o banco de dados PostgreSQL e o plug-in pgvector

Observe que você deve instalar o PostgreSQL e o plug-in pgvector. Observe que o conteúdo desta seção pode estar incompleto

Observe que sistemas redhat como CentOS usam esses comandos de instalação. Certifique-se de consultar outros artigos online e sugestões de IA ao operar.

Instale o pacote de configuração do repositório YUM oficial do PostgreSQL

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

A versão que escolhi é a 13, você pode escolher uma versão mais recente. Porque eu instalei o PostgreSQL 13 antes, o comando específico não é certo. Agora

Pesquise no repositório YUM por pacotes disponíveis relacionados a pgvector

sudo yum search pgvector

Instalar

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

Inicialize o diretório de dados do PostgreSQL 13 (deve ser executado após a primeira instalação).

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

Reinicie o serviço PostgreSQL 13 para que as alterações entrem em vigor.

sudo systemctl restart postgresql-13

Mude para o usuário administrador do banco de dados postgres.

sudo -i -u postgres

Inicie o cliente de linha de comando do PostgreSQL.

psql

Defina a senha de login do usuário postgres.

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

Conecte-se ao PostgreSQL como o usuário postgres através do host local e solicite a senha.

psql -U postgres -h localhost --password

Saia do psql

exit

Em seguida, retorne ao usuário inicial do sistema,

exit

Tente entrar no banco de dados

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

Configure o projeto e inicie-o

Como a API do Google Gemini tem limites de taxa, fiz algumas alterações:

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

Observe que este branch de taxa atual foi modificado por mim na página do Github, e nenhum teste local foi realizado.

A modificação do limite de taxa que pode ser executada com sucesso na minha máquina é baseada nesta versão: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, apenas para garantir que o código pode ser executado sem erros. Se o seu código não puder ser executado, tente reverter as modificações do projeto oficial após este commit.

Se a API que você está usando não tiver limites de taxa, você pode usar diretamente o repositório oficial

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

Copie o arquivo de configuração config\config.example.yaml para o mesmo arquivo de diretório config\config.yaml.

Modifique o arquivo de configuração diretamente de acordo com o seguinte formato e consulte a descrição do arquivo de configuração padrão para outras partes.

O aplicativo telegram api requer um IP de boa qualidade, se você não puder solicitá-lo, use o do autor, não precisa modificar. Isso é para um cliente de terceiros, não para um robô 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) # Aqui não altere para 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 saída padrão 3072 dimensões, não pode personalizar dimensões
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Iniciar o serviço de back-end
pnpm run dev:server

# Iniciar a interface de front-end em outra janela de terminal
pnpm run dev:frontend

Verifique se o front-end pode ser acessado com sucesso:

curl http://localhost:3333/

Se for uma máquina local, abra o navegador e visite http://localhost:3333 para usar o aplicativo

Se for um dispositivo remoto, basta abrir a porta do front-end para acessar. Mas não pode ser exposto diretamente na rede pública para divulgação, caso contrário, qualquer pessoa pode manipular sua conta telegram. Você precisa configurar as permissões de acesso sozinho, existem muitas soluções.

Além disso, para acesso ao domínio, pode ser necessário modificar apps\frontend\vite.config.ts adicionando

 allowedHosts: ['您访问的域名']

Para outros conteúdos, consulte a documentação oficial.

Outras versões desta página

Este artigo tem versões em vários idiomas.

Se você quiser deixar um comentário, visite a seguinte página:

ZH EN ZH-TW JA

Essas páginas são apenas para visualização, não é possível comentar ou deixar mensagens, mas oferecem mais opções de idiomas e carregam mais rapidamente:

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