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 не занимает локальные вычислительные ресурсы.
Я развертываю на международном сервере 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