TASE (поисковая система аудио Telegram)
Молниеносная полнотекстовая поисковая система по аудио поверх Telegram.
Это позволяет пользователям быстро и легко находить информацию, которая представляет подлинный интерес или ценность, без необходимости пробираться по многочисленным нерелевантным каналам. Он предоставляет пользователям результаты поиска, которые приводят к соответствующей информации о высококачественных аудиофайлах.
Содержание
- Что делает ТАСЭ особенным?
- Как установить и запустить
- Функции
- Стек технологий
- Призыв к пожертвованиям
- Лицензия и люди
Что делает ТАСЭ особенным?
TASE — это растущая платформа полнотекстового аудиопоиска с открытым исходным кодом, которая обслуживает большие объемы запросов от пользователей. Последнее крупное обновление, основанное на Python и Telegram, представляет множество новых функций, среди которых высокоабстрактный и модульный шаблон проектирования на базе Elasticsearch и ArangoDB с поддержкой параллельных кластеров на разных серверах, расположенных в разных частях мира.
ТАСЭ с первого взгляда
- Расширенная система полнотекстового поиска аудиофайлов
- Чрезвычайно быстрый индексатор аудиофайлов (тест: минимум 4 миллиона песен в день на одного клиента)
- Поддержка нескольких параллельных клиентов в качестве индексатора
- Поддержка распределенных параллельных кластеров на нескольких серверах (поиск и индексирование) (все аудиофайлы, модели графиков и документов)
- График пользователей и предметов
- Динамические URL-адреса
- Асинхронный
- Доступ к инструментам администратора
- Многоязычный
- Кэширование аудиофайлов
- Простая настройка и настройка
- Дружелюбный внешний вид
TASE бесплатен и всегда будет таким. Помогите нам… Если вы любите бесплатные вещи и отличное программное обеспечение, поставьте нам звезду! :звезда::звезда2:
Как установить и запустить
* Примечание. Перед запуском проекта обязательно прочтите раздел «Конфигурация и настройка». Существует два разных способа использования TASE.
(*примечание: перед запуском проекта обязательно настройте файлы tase.json и .env) Клонировать репозиторий
Настройка сервисов:
Установите зависимости вручную
- Установите Elasticsearch (v8.3) (инструкция)
- Установите ArangoDB (v3.9.1) (инструкция)
- Установите RabbitMQ (инструкция)
- Установить Redis (инструкция)
Запуск с помощью Docker Compose
Более простой метод (рекомендуется) (*примечание: перед запуском проекта обязательно настройте файл tase.json). докер составить -d
* установите docker Compose , если вы еще этого не сделали (инструкции)
- * установите поэзию , если вы еще этого не сделали (инструкция)
- Запустите файл tase_client.py, расположенный в пакете tase.
Конфигурация и настройка
Прежде чем запустить проект, вам необходимо настроить файл tase.json в корневом каталоге, который используется TASE в качестве файла конфигурации.
Для запуска проекта вам необходимо предоставить основную информацию, с которой работает бот. Например, вы должны предоставить токен бота Telegram и информацию для аутентификации клиента Telegram для запуска собственных клиентов.
Функции
Возможности для разработчиков
- Добавляйте новые языки в локали (мы рекомендуем использовать Poedit)
- Легко добавляйте новые кнопки и функции (запросные и встроенные), реализуя абстрактные методы в базовом классе кнопок.
- Визуализация в реальном времени графовых моделей и аудиофайлов (Kibana, ArangoDB)
- Абстракция и шаблон дизайна фасада
Широкий спектр функций
Поисковая система
- Поиск аудиофайлов через прямой поиск бота
- Ищите аудиофайлы в группах и приватных чатах по упоминанию @bot_name и отправляйте их прямо в чат.
- Поиск в реальном времени с использованием упоминания @bot_name и отображением встроенного списка результатов.
- Поиск в реальном времени прямо в приватных и групповых чатах
- Поиск по имени файла, имени исполнителя и названию аудио.
- Показывает 10 лучших релевантных результатов в сообщении и неограниченное количество в дополнительных результатах; возвращается в виде встроенного списка
- Воспроизведите песни из встроенных списков перед их загрузкой.
- Кэширует найденные аудиофайлы, чтобы избежать ненужных избыточных запросов к базе данных.
- Динамический URL для результатов
- Позволяет владельцу отслеживать загруженные аудиофайлы.
- Высокая точность и актуальность
- Поиск на разных языках
- Показать название исходного канала и ссылку на файл.
- Отсортируйте результаты в обратном режиме (чтобы сделать более релевантные результаты внизу)
Скриншот примера поиска
Скриншот примера результата аудио
Функции индексирования
- Автоматически находит новые каналы оптимистичным способом (сначала предполагает, что это действительный канал, а затем проверяет его позже, прежде чем начинать индексацию).
- Выдержки из текстов и подписей
- Отрывок из «Пересылаемого упоминания»
- Выдержка из ссылок
- Автоматически индексирует новые каналы
- Перебирает предыдущие каналы и возобновляет индексацию с предыдущей контрольной точки.
- Чрезвычайно быстрая индексация (минимум 4 миллиона песен в день на одного клиента).
- Анализирует каналы и вычисляет оценку (0–5) на основе их
- Плотность аудиофайлов (соотношение аудиофайлов
- Активность канала (как часто он делится новыми файлами)
- Количество членов
- Избегает бана на серверах Telegram
- Поддержка параллельной индексации с использованием нескольких клиентов Telegram.
- Хеширует идентификаторы файлов особым образом, что позволяет в значительной степени избежать конфликтов и при этом сохранять их короткими до восьми символов.
- Пользователи и владельцы каналов могут отправить запрос на индексацию определенного канала, используя «/index имя_канала».
- Создает график для пользователей и аудиофайлов в реальном времени, который можно использовать для систем рекомендаций и задач прогнозирования ссылок.
Функции ограничения/контроля пользователя
- Управляйте членством пользователей в ваших каналах практически в реальном времени.
- Установите ограничения для пользователей в зависимости от их статуса членства.
- Ограничивает пользователей, не являющихся членами, свободным поиском 5 аудиофайлов, а затем им следует подождать одну минуту, пока они не получат найденные аудиофайлы.
- Не участники имеют ограничения на прямой поиск в чате.
Пользовательский интерфейс
- Руководство пользователя
- Несколько меню (главное, справка, плейлист и т. д.)
- Клавиатура для каждой части, чтобы упростить процесс для пользователей.
- Многоязычный бот – на данный момент поддерживается:
- ?? Английский
- ?? испанский
- ?? Русский
- ?? арабский
- ?? португальский
- ?? хинди
- ?? немецкий
- ?? Курдский (Сорани)
- ?? Курдский (Курманджи)
- ?? Голландский
- ?? итальянский
- ?? персидский
- Приветствие сообщений пользователям в зависимости от их активности, если они не были активны более недели или более двух недель.
- Показывает историю поиска для каждого пользователя посредством прокручиваемого встроенного списка при нажатии кнопки истории на домашней клавиатуре.
- Красивый и яркий пользовательский интерфейс (сообщения и смайлы)
Плейлисты
- Пользователи могут иметь неограниченное количество плейлистов и сохранять неограниченное количество аудиофайлов в каждом.
- Пользователи могут редактировать метаданные плейлиста.
- Пользователи могут редактировать сохраненные аудиофайлы
Скриншот главного меню
Функции администратора
- Визуализация графиков в реальном времени (поддерживает панель управления ArangoDB)
- Визуализация индексированных аудиофайлов в реальном времени (поддерживает панель управления Kibana)
* Kibana — это инструмент визуализации и исследования данных, используемый для анализа журналов и временных рядов, мониторинга приложений и сценариев использования оперативной аналитики. Он предлагает мощные и простые в использовании функции, такие как гистограммы, линейные графики, круговые диаграммы, тепловые карты и встроенную геопространственную поддержку.
Другой
- Чрезвычайно быстро
- Документация представлена в кодах (docstring)
- Обрабатывает исключения, связанные с базой данных.
- Многопоточный поиск (асинхронный поиск по нескольким запросам)
- Отлично обрабатывает тексты RTL
Стек технологий
Основные инструменты и технологии, использованные при разработке TASE, следующие:
- Эластичный поиск
- АрангоДБ
- Пирограмма
- Python get_text
- Сельдерей
- КроликMQ
- Редис
- Пидантик
- Джинджа
Призыв к пожертвованиям
Мы приветствуем ваш опыт и энтузиазм!
Способы внести свой вклад в поисковую систему аудио Telegram:
- Написание кода
- Просмотрите запросы на включение
- Разрабатывать учебные пособия, презентации, документацию и другие учебные материалы.
- Перевести документацию и содержимое readme
Мы ценим ваш вклад и делаем все возможное, чтобы предоставить вам наставничество и поддержку. Если вы ищете проблему, которую нужно решить, взгляните на проблемы.
Проблемы
Если вы столкнулись с какой-либо проблемой в кодах, сообщите об этом здесь. Лучший способ — создать форк репозитория на Github и/или создать запрос на включение.
Будущая работа
Если вы нашли это полезным, пожалуйста, дайте нам
Лицензия
TASE распространяется по лицензии Apache версии 2.0. Полный текст лицензии см. в разделе ЛИЦЕНЗИЯ.
© 2020-2022.
- Соран Гадери ([email protected])
- Персональный сайт: soran-ghaderi.github.io
- Linkedin: Соран-Гадери
- Твиттер: СоранГадри
- Талеб Зархеш ([email protected])
- Linkedin: Талеб Зархеш
- Твиттер: Талеб Зархеш