groupultra telegram-search es una nueva herramienta de búsqueda de registros de chat de usuarios de Telegram.

Algunas recomendaciones:

  • Robot de gestión de grupos de Telegram @CSUBOT : puede enviar mensajes privados a nuevos usuarios y enviar códigos de verificación web de CloudFlare para realizar la revisión del ingreso al grupo, para verificar si los usuarios que solicitan ingresar al grupo son humanos reales. No molestará a otros miembros del grupo.
  • Consultar la IP pública de mi máquina para acceder a diferentes sitios web , puede detectar la configuración de distribución de proxy para evitar que las herramientas de IA bloqueen la cuenta. Puede ver la IP utilizada por los usuarios para acceder a sitios web chinos, sitios web internacionales de IA conocidos, sitios web internacionales bloqueados y sitios web internacionales permitidos

Características del proyecto

Según la documentación oficial, Telegram Search proporciona las siguientes funciones principales:

  • Búsqueda semántica: no solo puede buscar palabras clave, sino también comprender el contexto y el significado de los mensajes
  • Coincidencia de vectores: basada en la tecnología de vectores de incrustación de OpenAI, para lograr una búsqueda de similitud
  • Recuperación eficiente: experiencia de recuperación más precisa e inteligente que la búsqueda nativa de Telegram
  • Soporte multiplataforma: proporciona una interfaz web y una aplicación de escritorio

Retractación

En primer lugar, enumeraré algunos contenidos que son muy diferentes de las expectativas del usuario, así como algunos problemas existentes, para retractar a algunos usuarios que no son adecuados para este proyecto. Y dar sugerencias para usar otros proyectos maduros.

La diferencia entre este proyecto y otros proyectos tradicionales que no utilizan IA radica en la búsqueda semántica (no solo puede buscar palabras clave, sino también comprender el contexto y el significado de los mensajes). Sin embargo, actualmente he intentado varias consultas, ya sea que la opción “Buscar contenido” esté marcada o no en el cuadro de búsqueda, básicamente no se puede buscar con una pregunta (solo se puede una). No se puede buscar sinónimos. Solo se pueden buscar mensajes que tengan palabras en común con la consulta. No estoy seguro de si es un problema del modelo de incrustación.

Los comandos de implementación y ejecución del frontend y el backend que se utilizan con frecuencia deben esperar a la compilación. Para los usuarios que están acostumbrados a los lenguajes de programación que no necesitan compilarse por adelantado y los lenguajes de programación que están acostumbrados a la compilación rápida, el tiempo de espera para este proyecto es un poco largo.

Cuando se abre el frontend para su uso, y luego se actualiza después de un tiempo, el frontend aparecerá en blanco, como se muestra a continuación. Cada vez es necesario reiniciar, pnpm run dev:frontend , y esperar a la compilación. Implementado en el servidor, cada vez que se usa, o cada vez que se realiza una consulta, también es necesario conectarse al servidor para compilarlo, lo cual es realmente problemático.

groupultra/telegram-search Problema de pantalla blanca en el frontend del proyecto

En resumen, los problemas anteriores son que groupultra telegram-search, como un proyecto para buscar mensajes históricos de Telegram, actualmente es menos útil que otros proyectos tradicionales maduros. Otras recomendaciones de proyectos:

落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , desarrollado por Yiyun de la comunidad Archlinux CN, el proyecto ha estado funcionando de manera estable durante muchos años, vea el efecto real: 公开的群组消息记录搜索网页 . Características del proyecto:

  • El proyecto utiliza principalmente Python, sin necesidad de esperar a la compilación. Aunque hay componentes que necesitan ser compilados, solo necesitan ser compilados una vez
  • La cadena de búsqueda no distingue entre chino simplificado y tradicional (se convertirá automáticamente usando OpenCC)
  • La cadena de búsqueda admite algunas sintaxis de búsqueda
  • La ejecución ocupa menos recursos que groupultra/telegram-search

Problemas de Luoxu:

  • La instalación y la implementación pueden ser un poco más problemáticas que el proyecto groupultra/telegram-search. (Es una comparación de mi implementación real de los dos proyectos. Como implementé Luoxu en un sistema Linux arm32, todas las dependencias de mi implementación de Luoxu están completamente compiladas e instaladas, incluido PostgreSQL: Linux 编译安装 PostgreSQL 17.4 )
  • El código predeterminado solo puede indexar los mensajes de grupos y canales escritos en el archivo de configuración, por supuesto, puede modificar el código manualmente

Requisitos previos y requisitos de implementación

  • IA utilizable, como Google Gemini, OpenAI, etc.
  • Node.js: 20.0 o superior
  • RAM: al menos 100 MB
  • Red que pueda acceder a Internet internacional

Este tutorial utiliza Google Gemini, que es completamente gratuito, y la API en línea no ocupa recursos informáticos locales. Solicitud de introducción: Solicitud y uso de Gemini API KEY

Yo lo estoy implementando en un servidor internacional Linux amd64, sin usar Docker, otros entornos de sistemas operativos son solo para referencia

De acuerdo con este tutorial para operar, preste atención a la comparación con la documentación oficial.

Inicio rápido

Según la documentación oficial, el flujo básico para usar Telegram Search es el siguiente:

  1. Instalación y configuración: instale la aplicación y configure la API necesaria
  2. Conecte la cuenta de Telegram: inicie sesión en su cuenta de Telegram
  3. Sincronizar el historial de chat: seleccione el historial de chat que necesita buscar para sincronizar
  4. Comience a buscar: use la función de búsqueda semántica para encontrar mensajes

Instalación y configuración

Instalar Node.js

Visite el sitio web oficial de Node.js para ver la documentación e instalarlo. Se recomienda utilizar la última versión LTS. Una vez finalizada la instalación, utilice los siguientes dos comandos para confirmar la versión:

node -v
v22.16.0

npm --version
10.9.2

Debido a que el proyecto utiliza pnpm, instálelo. Documentación oficial: Installation | pnpm , comando real actual:

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

Según la sugerencia

source /home/opc/.bashrc

Instalar la base de datos PostgreSQL y el complemento pgvector

Tenga en cuenta que debe instalar PostgreSQL y el complemento pgvector. Tenga en cuenta que el contenido de esta sección puede no estar completo.

Tenga en cuenta que los sistemas CentOS y otros sistemas Red Hat utilizan estos comandos de instalación. Al operar, asegúrese de consultar otros artículos en línea y sugerencias de IA.

Instale el paquete de configuración del repositorio YUM oficial de PostgreSQL

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

La versión que elegí es 13, puede elegir una versión más reciente. Porque antes instalé PostgreSQL 13, el comando específico no está determinado. Ahora

Busque paquetes disponibles relacionados con pgvector en la fuente YUM

sudo yum search pgvector

Instalar

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

Inicialice el directorio de datos de PostgreSQL 13 (debe ejecutarse después de la primera instalación).

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

Reinicie el servicio PostgreSQL 13 para que los cambios surtan efecto.

sudo systemctl restart postgresql-13

Cambie al usuario administrador de la base de datos postgres.

sudo -i -u postgres

Inicie el cliente de línea de comandos de PostgreSQL.

psql

Configure la contraseña de inicio de sesión para el usuario postgres.

ALTER USER postgres WITH PASSWORD 'Su contraseña de base de datos';

Conéctese a PostgreSQL a través del host local como usuario postgres y solicite que ingrese la contraseña.

psql -U postgres -h localhost --password

Salir de psql

exit

Luego regrese al usuario inicial del sistema,

exit

Intente ingresar a la base de datos

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

Configurar el proyecto e iniciarlo

Debido a que la API de Google Gemini tiene un límite de velocidad, hice una pequeña modificación:

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

Tenga en cuenta que esta rama de tasa actual la modifiqué completamente en la página web de Github y no realicé ninguna prueba local.

La modificación del límite de velocidad que se puede ejecutar con éxito en mi máquina se basa en este lanzamiento: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, solo para asegurar que el código se pueda ejecutar, sin errores. Si su código no se puede ejecutar, intente revertir este commit después de la modificación del proyecto oficial.

Si la API que está utilizando no tiene límite de velocidad, puede usar directamente el repositorio oficial

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

Copie el archivo de configuración config\config.example.yaml al mismo archivo config\config.yaml del directorio.

Consulte el siguiente formato para modificar directamente el archivo de configuración, y otras partes se modifican de acuerdo con la descripción del archivo de configuración predeterminado.

La solicitud de la API de Telegram requiere una IP de buena calidad. Si no puede solicitarla, utilice la del autor y no la modifique. Esto es para clientes de terceros, no para robots de 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: 'Su contraseña de base de datos'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # No cambie esto a Gemini
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <Su Gemini API KEY obtenida>
    # Gemini embedding-001 salida predeterminada de 3072 dimensiones, no se puede personalizar la dimensión
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# Inicie el servicio de backend
pnpm run dev:server

# Inicie la interfaz de usuario en otra ventana de terminal
pnpm run dev:frontend

Verifique si el frontend se puede acceder con éxito:

curl http://localhost:3333/

Si está en la máquina local, abra el navegador y visite http://localhost:3333 para usar la aplicación

Si es un dispositivo remoto, solo necesita abrir el puerto del frontend para acceder. Pero no se puede exponer directamente en la red pública para su publicación, de lo contrario, cualquiera puede manipular su cuenta de Telegram. Debe configurar los permisos de acceso usted mismo, hay muchos esquemas.

Además, el acceso al dominio puede requerir la modificación de apps\frontend\vite.config.ts para agregar

 allowedHosts: ['Su dominio de acceso']

Para otros contenidos, consulte la documentación oficial.

Otras versiones de esta página web

Este artículo tiene versiones en varios idiomas.

Si desea publicar un comentario, visite la siguiente página web:

ZH EN ZH-TW JA

Estas páginas web solo admiten la navegación y no pueden publicar comentarios ni mensajes, pero brindan más opciones de idiomas y tienen un tiempo de carga más corto:

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