groupultra telegram-search — это новый инструмент для поиска истории чатов пользователей Telegram.

Некоторые рекомендации:

  • Telegram 群组管理机器人 @CSUBOT: Может отправлять личные сообщения новым пользователям, отправлять веб-капчу CloudFlare для проверки при входе в группу, чтобы проверить, являются ли пользователи, подающие заявку на вступление в группу, реальными людьми. Не будет мешать другим участникам группы.
  • 查询本机访问不同网站的公网 IP, может проверить конфигурацию перенаправления прокси, чтобы избежать блокировки инструментами ИИ. Может просматривать пользователи, посещающие китайские веб-сайты, известные международные веб-сайты ИИ, заблокированные международные веб-сайты, доступные международные веб-сайты, использующие IP.

Особенности проекта

Согласно официальной документации, Telegram Search предоставляет следующие основные функции:

  • Семантический поиск: Может не только искать по ключевым словам, но и понимать контекст и значение сообщения.
  • Векторное сопоставление: На основе технологии встраивания векторов OpenAI, реализует поиск по сходству.
  • Эффективный поиск: Более точный и интеллектуальный опыт поиска, чем собственный поиск Telegram.
  • Многоплатформенная поддержка: Предоставляет веб-интерфейс и настольное приложение.

Отказ от участия

Во-первых, перечислите некоторые вещи, которые сильно отличаются от ожиданий пользователей, а также некоторые существующие проблемы, чтобы отговорить часть пользователей, которым этот проект не подходит. И дайте рекомендации по использованию других зрелых проектов.

Разница между этим проектом и другими традиционными проектами, не использующими ИИ, заключается в семантическом поиске (может не только искать по ключевым словам, но и понимать контекст и значение сообщения). Однако в настоящее время я пробовал несколько запросов, независимо от того, установлен ли флажок «Поиск содержимого» в поле поиска, в основном невозможно выполнить поиск по вопросу (только один вопрос); невозможно выполнить поиск по синонимам. Можно найти только сообщения, в которых есть общие слова с запросом. Не уверен, проблема ли это с моделью встраивания.

Команды для развертывания и запуска интерфейса и серверной части, которые часто используются, должны быть скомпилированы, что занимает много времени для пользователей, привыкших к языкам программирования, которые не требуют предварительной компиляции, и пользователей, привыкших к быстрой компиляции.

Когда интерфейс открыт для использования, а затем обновляется через некоторое время, интерфейс отображается белым, как показано ниже. Каждый раз необходимо перезапускать, 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)
  • Код по умолчанию может индексировать только группы и сообщения каналов, указанные в файле конфигурации, конечно, вы можете изменить код вручную.

Предпосылки и требования для развертывания

  • Возможность использования ИИ, такого как Google Gemini, OpenAI и т. д.
  • Node.js: версия 20.0 или выше.
  • RAM: не менее 100 МБ.
  • Возможность доступа к международному Интернету.

В этом руководстве используется полностью бесплатный Google Gemini, онлайн-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 используют эти команды установки. При работе обязательно обратитесь к другим статьям в Интернете и рекомендациям ИИ.

Установите официальный пакет конфигурации репозитория 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

Обратите внимание, что текущая ветка rate была изменена мной полностью на веб-странице Github, и локально не проводилось никаких тестов.

Изменения ограничения скорости, которые могут быть успешно запущены на моем компьютере, основаны на этом выпуске: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, и это просто может гарантировать, что код может работать без ошибок. Если ваш код не может работать, попробуйте откатить изменения официального проекта после этого коммита.

Если у используемого вами 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/'
# 启动后端服务
pnpm run dev:server

# 另一个终端窗口中启动前端界面
pnpm run dev:frontend

Проверьте, можно ли успешно получить доступ к интерфейсу:

curl http://localhost:3333/

Если это локальный компьютер, просто откройте браузер и перейдите по адресу http://localhost:3333, чтобы использовать приложение.

Если это удаленное устройство, вам нужно только открыть порт интерфейса для доступа. Но его нельзя открыто выставлять в общедоступной сети, иначе кто угодно сможет управлять вашей учетной записью 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