Робот для поиска и архивирования групповых чатов Telegram, подходящий для среды CJK.
Нажмите кнопку [Поиск] для автоматической аутентификации и открытия интерфейса поиска.
Нажмите ссылку времени, чтобы перейти к интерфейсу чата.
вам нужно:
Загрузите файл .env.example
, ознакомьтесь с внутренними комментариями и настройте соответствующим образом.
Вы можете сохранить его как .env
или настроить как переменную среды.
TAS не предоставляет встроенную службу https. Для обратного прокси-сервера TAS рекомендуется использовать Caddy или подобное программное обеспечение.
docker run -d --restart=always --env-file=.env quay.io/oott123/telegram-archive-server
Конечно, вы также можете запустить его с помощью Kubernetes или docker-compose.
Если у вас нет Docker или вы не хотите использовать Docker, вы также можете скомпилировать и развернуть его из исходного кода. На этом этапе вам также понадобится:
git clone https://github.com/oott123/telegram-archive-server.git
cd telegram-archive-server
# git checkout vX.X.X
cp .env.example .env
vim .env
yarn
yarn build
yarn start
Отправить /search
в группе. Бот может предложить вам установить Домен, просто следуйте подсказкам.
Чтобы их аватар отображался в результатах поиска, пользователи должны соответствовать следующим критериям:
Поскольку у MeiliSearch низкая эффективность индексации новых сообщений, сообщения будут попадать в индекс только при выполнении любого из следующих условий:
Если Redis не используется для сохранения очереди сообщений, сообщения, не попавшие в очередь, могут быть потеряны при сбое в работе программы или перезапуске сервера.
В настоящее время поддерживается только импорт супергрупп.
Нажмите кнопку с тремя точками в настольном клиенте — Экспортировать историю чата, дождитесь завершения экспорта и получите result.json
.
осуществлять:
curl
-H " Content-Type: application/json "
-H " Authorization: Bearer $AUTH_IMPORT_TOKEN "
-XPOST -T result.json
http://localhost:3100/api/v1/import/fromTelegramGroupExport
Записи можно импортировать. Обратите внимание, что одновременно можно импортировать только записи из одной группы.
Если вы включите очередь OCR, потребуется Redis (может использовать экземпляр совместно с кешем) и настроить стороннюю службу распознавания. Процесс идентификации следующий:
Распознавание и хранение можно выполнять на разных экземплярах ролей: загрузка изображений и сохранение текста будут выполняться на экземпляре бота, а экземпляру OCR требуется только доступ к службе OCR.
Такая конструкция позволяет специалистам по обслуживанию разрабатывать централизованную автономную идентификацию (например, использовать вытесняемый экземпляр для запуска службы идентификации и отключать ее после очистки очереди) для снижения затрат на идентификацию.
Если вы используете стороннюю облачную службу, вы можете напрямую отключить очередь OCR или включить роли Bot и OCR в одном экземпляре.
См. документацию по распознаванию текста Google Cloud Vision и правила выставления счетов Google Cloud Vision. Конфигурация следующая:
OCR_DRIVER=google
OCR_ENDPOINT=eu-vision.googleapis.com # 或者 us-vision.googleapis.com ,决定 Google 在何处存储处理数据
GOOGLE_APPLICATION_CREDENTIALS=/path/to/google/credentials.json # 从 GCP 后台下载的 json 鉴权文件
Вам нужен экземпляр Paddleocr-web. Конфигурация следующая:
OCR_DRIVER=paddle-ocr-web
OCR_ENDPOINT=http://127.0.0.1:8980/api
Создайте ресурс Azure Vision и настройте информацию о ресурсе следующим образом:
OCR_DRIVER=azure
OCR_ENDPOINT=https://tas.cognitiveservices.azure.com
OCR_CREDENTIALS=000000000000000000000000000000000
docker run [...] dist/main ocr,bot
# or
node dist/main ocr,bot
DEBUG=app: * ,grammy * yarn start:debug
После аутентификации службы поиска сервер перейдет по адресу: $HTTP_UI_URL/index.html
со следующими параметрами URL:
tas_server
— базовый URL-адрес сервера в формате http://localhost:3100/api/v1
tas_indexName
— номер группы, в виде supergroup1234567890
tas_authKey
— JWT, выданный сервером, который можно использовать в качестве API-ключа MeiliSearch. /api/v1/search/compilable/meili
можно искать как обычный экземпляр MeiliSearch.
В имени индекса должен использоваться номер группы в виде supergroup1234567890
. Ключ API — это JWT, выданный сервером;
Обратите внимание, что фильтр временно недоступен по соображениям безопасности.