groupultra telegram-search — это новый инструмент для поиска истории чатов пользователей Telegram.
Некоторые рекомендации:
- Telegram 群组管理机器人 @CSUBOT: Может отправлять личные сообщения новым пользователям, отправлять веб-капчу CloudFlare для проверки при входе в группу, чтобы проверить, являются ли пользователи, подающие заявку на вступление в группу, реальными людьми. Не будет мешать другим участникам группы.
- 查询本机访问不同网站的公网 IP, может проверить конфигурацию перенаправления прокси, чтобы избежать блокировки инструментами ИИ. Может просматривать пользователи, посещающие китайские веб-сайты, известные международные веб-сайты ИИ, заблокированные международные веб-сайты, доступные международные веб-сайты, использующие IP.
Особенности проекта
Согласно официальной документации, Telegram Search предоставляет следующие основные функции:
- Семантический поиск: Может не только искать по ключевым словам, но и понимать контекст и значение сообщения.
- Векторное сопоставление: На основе технологии встраивания векторов OpenAI, реализует поиск по сходству.
- Эффективный поиск: Более точный и интеллектуальный опыт поиска, чем собственный поиск Telegram.
- Многоплатформенная поддержка: Предоставляет веб-интерфейс и настольное приложение.
Отказ от участия
Во-первых, перечислите некоторые вещи, которые сильно отличаются от ожиданий пользователей, а также некоторые существующие проблемы, чтобы отговорить часть пользователей, которым этот проект не подходит. И дайте рекомендации по использованию других зрелых проектов.
Разница между этим проектом и другими традиционными проектами, не использующими ИИ, заключается в семантическом поиске (может не только искать по ключевым словам, но и понимать контекст и значение сообщения). Однако в настоящее время я пробовал несколько запросов, независимо от того, установлен ли флажок «Поиск содержимого» в поле поиска, в основном невозможно выполнить поиск по вопросу (только один вопрос); невозможно выполнить поиск по синонимам. Можно найти только сообщения, в которых есть общие слова с запросом. Не уверен, проблема ли это с моделью встраивания.
Команды для развертывания и запуска интерфейса и серверной части, которые часто используются, должны быть скомпилированы, что занимает много времени для пользователей, привыкших к языкам программирования, которые не требуют предварительной компиляции, и пользователей, привыкших к быстрой компиляции.
Когда интерфейс открыт для использования, а затем обновляется через некоторое время, интерфейс отображается белым, как показано ниже. Каждый раз необходимо перезапускать, pnpm run dev:frontend
, нужно ждать компиляции. Развертывание на сервере, каждый раз, когда вы используете его, или каждый раз, когда вы хотите выполнить запрос, вам также нужно подключиться к серверу для компиляции, что действительно хлопотно.

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