TASE (moteur de recherche audio Telegram)
Un moteur de recherche audio en texte intégral ultra-rapide au-dessus de Telegram
Il permet aux utilisateurs de trouver rapidement et facilement des informations présentant un véritable intérêt ou une réelle valeur, sans avoir à parcourir de nombreux canaux non pertinents. Il fournit aux utilisateurs des résultats de recherche menant à des informations pertinentes sur des fichiers audio de haute qualité.
Contenu
- Qu’est-ce qui rend TASE spécial ?
- Comment installer et exécuter
- Caractéristiques
- Pile technologique
- Appel à contributions
- Licence et personnes
Qu’est-ce qui rend TASE spécial ?
TASE est une plate-forme de moteur de recherche audio en texte intégral open source en pleine croissance qui répond aux requêtes volumineuses des utilisateurs. Basée sur Python et Telegram, la dernière mise à jour majeure introduit de nombreuses nouvelles fonctionnalités parmi lesquelles un modèle de conception hautement abstrait et modulaire optimisé par Elasticsearch et ArangoDB avec prise en charge de clusters parallèles sur différents serveurs situés dans différentes parties du monde.
TASE en un coup d'œil
- Moteur de recherche avancé en texte intégral pour les fichiers audio
- Indexeur de fichiers audio extrêmement rapide (benchmark : minimum 4 millions de chansons par jour et par client)
- Prise en charge de plusieurs clients parallèles en tant qu'indexeur
- Prise en charge de clusters parallèles distribués sur plusieurs serveurs (recherche et indexation) (tous les fichiers audio, modèles de graphiques et de documents)
- Graphique des utilisateurs et des éléments
- URL dynamiques
- Asynchrone
- Accéder aux outils d'administration
- Multilingue
- Mise en cache des fichiers audio
- Configuration et personnalisation faciles
- Aspect et convivialité
TASE est gratuit et le sera toujours. Aidez-nous… Si vous aimez les trucs gratuits et les bons logiciels, donnez-nous une étoile ! :étoile::étoile2:
Comment installer et exécuter
* Remarque : assurez-vous de lire la section de configuration et de personnalisation avant d'exécuter le projet. Il existe deux manières différentes d'utiliser TASE
(*remarque : avant d'exécuter le projet, assurez-vous de configurer les fichiers tase.json et .env) Cloner le référentiel
Mise en place de services :
Installer manuellement les dépendances
- Installer Elasticsearch (v8.3) (instructions)
- Installer ArangoDB (v3.9.1) (instructions)
- Installer RabbitMQ (instructions)
- Installer Redis (instructions)
Exécuter en utilisant Docker Compose
La méthode la plus simple (recommandée) (*remarque : avant d'exécuter le projet, assurez-vous de configurer le fichier tase.json) docker compose -d
* installez Docker Compose si vous ne l'avez pas déjà fait (instructions)
- * installez la poésie si vous ne l'avez pas déjà fait (instructions)
- Exécutez le fichier tase_client.py situé dans le package tase
Configuration et personnalisation
Avant d'exécuter votre projet, vous devez personnaliser le fichier tase.json dans le répertoire racine qui est utilisé comme fichier de configuration par TASE.
Afin d'exécuter le projet, vous devez fournir des informations de base avec lesquelles le bot travaille. Par exemple, vous devez fournir un jeton de robot Telegram et vos informations d'authentification client Telegram pour exécuter vos propres clients.
Caractéristiques
Fonctionnalités pour les développeurs
- Ajouter de nouvelles langues dans les locales (nous vous recommandons d'utiliser Poedit)
- Ajoutez facilement de nouveaux boutons et fonctionnalités (requête et en ligne) en implémentant les méthodes abstraites dans la classe de bouton de base
- Visualisations en temps réel pour les modèles graphiques et les fichiers audio (Kibana, ArangoDB)
- Modèle de conception d'abstraction et de façade
Large gamme de fonctionnalités
Moteur de recherche
- Rechercher des fichiers audio via la recherche directe du robot
- Recherchez des fichiers audio dans des groupes et des discussions privées en utilisant la mention @bot_name et envoyez-les directement au chat
- Recherche en temps réel à l'aide de la mention @bot_name, en affichant une liste de résultats en ligne
- Recherche en temps réel directement dans les discussions privées et de groupe
- Recherche basée sur le nom du fichier, le nom de l'interprète et le nom de l'audio
- Affiche les 10 meilleurs résultats pertinents dans un message et illimité dans plus de résultats ; renvoyé sous forme de liste en ligne
- Jouez les chansons dans les listes en ligne avant de les télécharger
- Met en cache les fichiers audio recherchés pour éviter les requêtes de base de données redondantes inutiles
- URL dynamique pour les résultats
- Permet au propriétaire de retracer les fichiers audio téléchargés
- Haute précision et pertinence
- Rechercher dans une grande variété de langues
- Afficher le nom du canal source et le lien vers le fichier
- Trier les résultats en mode inverse (pour rendre les résultats plus pertinents en bas)
Rechercher un exemple de capture d'écran
Capture d'écran de l'exemple audio du résultat
Fonctionnalités d'indexation
- Trouve automatiquement de nouvelles chaînes de manière optimiste (suppose d'abord qu'il s'agit d'une chaîne valide et la valide plus tard avant de commencer l'indexation)
- Extrait de textes et légendes
- Extrait de "mention transmise"
- Extrait de liens
- Indexe automatiquement les nouvelles chaînes
- Parcourt les canaux précédents et reprend l'indexation à partir du point de contrôle précédent
- Indexation extrêmement rapide (minimum 4 millions de chansons par jour et par client)
- Analyse les chaînes et calcule un score (0-5) en fonction de leur
- Densité des fichiers audio (rapport de fichiers audio
- Activité de la chaîne (à quelle fréquence elle partage de nouveaux fichiers)
- Nombre de membres
- Évite d'être banni par les serveurs Telegram
- Prise en charge de l'indexation parallèle à l'aide de plusieurs clients Telegram
- Hache les identifiants de fichiers d'une manière spécifique qui évite les conflits dans une large mesure tout en les gardant aussi courts que huit caractères
- Les utilisateurs et les propriétaires de chaînes peuvent envoyer une demande d'indexation d'une chaîne spécifique en utilisant "/index nom_chaîne".
- Construit un graphique pour les utilisateurs et les fichiers audio en temps réel qui peut être utilisé pour les systèmes de recommandation et les tâches de prédiction de liens
Fonctionnalités de limitation/contrôle de l'utilisateur
- Gérez l'adhésion des utilisateurs à votre (vos) chaîne(s) en temps quasi réel
- Définir des limites pour les utilisateurs en fonction de leur statut d'adhésion
- Limite aux utilisateurs non membres la possibilité de rechercher librement 5 fichiers audio, puis ils doivent attendre une minute jusqu'à ce qu'ils reçoivent les fichiers audio recherchés.
- Les membres ne sont pas limités en ce qui concerne les recherches directes dans le chat.
Interface utilisateur
- Guide d'utilisation
- Plusieurs menus (accueil, aide, playlist etc.)
- Un clavier pour chaque partie pour faciliter le processus pour les utilisateurs
- Bot multilingue - actuellement pris en charge :
- ?? Anglais
- ?? Espagnol
- ?? russe
- ?? arabe
- ?? portugais
- ?? hindi
- ?? Allemand
- ?? Kurde (sorani)
- ?? Kurde (Kurmanji)
- ?? Néerlandais
- ?? italien
- ?? persan
- Messages de bienvenue aux utilisateurs en fonction de leur activité s'ils n'ont pas été actifs depuis plus d'une semaine ou plus de deux semaines
- Affiche l'historique de recherche de chaque utilisateur via une liste déroulante en ligne en appuyant sur le bouton Historique du clavier d'accueil.
- Interface utilisateur belle et dynamique (messages et emojis)
Listes de lecture
- Les utilisateurs peuvent disposer de listes de lecture illimitées et enregistrer un nombre illimité de fichiers audio dans chacune d'elles.
- Les utilisateurs peuvent modifier les métadonnées de la playlist
- Les utilisateurs peuvent modifier les fichiers audio enregistrés
Capture d'écran du menu principal
Fonctionnalités d'administration
- Visualisation graphique en temps réel (prend en charge le tableau de bord ArangoDB)
- Visualisation des fichiers audio indexés en temps réel (prend en charge le tableau de bord Kibana)
* Kibana est un outil de visualisation et d'exploration de données utilisé pour l'analyse des journaux et des séries chronologiques, la surveillance des applications et les cas d'utilisation de l'intelligence opérationnelle. Il offre des fonctionnalités puissantes et faciles à utiliser telles que des histogrammes, des graphiques linéaires, des diagrammes circulaires, des cartes thermiques et une prise en charge géospatiale intégrée.
Autre
- Extrêmement rapide
- La documentation est fournie dans les codes (docstring)
- Gère les exceptions liées à la base de données
- Recherche multithread (recherche plusieurs requêtes de manière asynchrone)
- Gère parfaitement les textes RTL
Pile technologique
Les principaux outils et technologies utilisés dans le développement de TASE sont les suivants :
- Recherche élastique
- ArangoDB
- Pyrogramme
- Pythonget_text
- Céleri
- LapinMQ
- Rédis
- Pydantique
- Jinja
Appel à contributions
Nous apprécions votre expertise et votre enthousiasme !
Façons de contribuer au moteur de recherche audio Telegram :
- Écrire du code
- Examiner les demandes d'extraction
- Développer des tutoriels, des présentations, de la documentation et d'autres supports pédagogiques
- Traduire la documentation et le contenu Lisez-moi
Nous aimons vos contributions et faisons de notre mieux pour vous offrir mentorat et soutien. Si vous cherchez un problème à résoudre, jetez un œil aux problèmes.
Problèmes
Si vous rencontrez un problème avec les codes, veuillez le signaler ici. Une meilleure façon est de créer un fork du référentiel sur Github et/ou de créer une pull request.
Travaux futurs
Si vous l'avez trouvé utile, veuillez nous donner un
Licence
TASE est sous licence Apache, version 2.0. Voir LICENCE pour le texte complet de la licence.
Droits d'auteur © 2020-2022
- Soran Ghaderi ([email protected])
- Site personnel : soran-ghaderi.github.io
- Linkedin : Soran-Ghaderi
- Twitter : SoranGhadri
- Taleb Zarhesh ([email protected])
- Linkedin : Taleb Zarhesh
- Twitter : Taleb Zarhesh