TASE (Telegram Audio Search Engine)
Eine blitzschnelle Audio-Volltextsuchmaschine zusätzlich zu Telegram
Es ermöglicht Benutzern, schnell und einfach Informationen zu finden, die von echtem Interesse oder Wert sind, ohne zahlreiche irrelevante Kanäle durchsuchen zu müssen. Es bietet Benutzern Suchergebnisse, die zu relevanten Informationen zu hochwertigen Audiodateien führen.
Inhalt
- Was macht TASE so besonders?
- So installieren und ausführen
- Merkmale
- Technologie-Stack
- Aufruf zur Spende
- Lizenz und Leute
Was macht TASE so besonders?
TASE ist eine wachsende Open-Source-Volltext-Audiosuchmaschinenplattform, die umfangreiche Anfragen von Benutzern bedient. Basierend auf Python und Telegram führt das neueste große Update viele neue Funktionen ein, darunter ein stark abstrahiertes und modulares Designmuster auf Basis von Elasticsearch und ArangoDB mit Unterstützung für parallele Cluster auf verschiedenen Servern in verschiedenen Teilen der Welt.
TASE auf einen Blick
- Erweiterte Volltextsuchmaschine für Audiodateien
- Extrem schneller Audiodatei-Indexer (Benchmark: mindestens 4 Millionen Songs pro Tag und Client)
- Unterstützung für mehrere parallele Clients als Indexer
- Unterstützung für verteilte parallele Cluster auf mehreren Servern (Suche und Indizierung) (alle Audiodateien, Diagramm- und Dokumentmodelle)
- Diagramm der Benutzer und Elemente
- Dynamische URLs
- Asynchron
- Erreichen Sie Admin-Tools
- Mehrsprachig
- Zwischenspeichern von Audiodateien
- Einfache Konfiguration und Anpassung
- Freundliches Erscheinungsbild
TASE ist kostenlos und wird es immer bleiben. Helfen Sie uns ... Wenn Sie kostenlose Dinge und großartige Software lieben, geben Sie uns einen Stern! :star::star2:
So installieren und ausführen
* Hinweis: Bitte lesen Sie unbedingt den Abschnitt zur Konfiguration und Anpassung, bevor Sie das Projekt ausführen Es gibt zwei verschiedene Möglichkeiten, TASE zu verwenden
(*Hinweis: Bevor Sie das Projekt ausführen, stellen Sie sicher, dass Sie die Dateien tase.json und .env konfigurieren.) Klonen Sie das Repository
Dienste einrichten:
Installieren Sie die Abhängigkeiten manuell
- Elasticsearch (v8.3) installieren (Anleitung)
- Installieren Sie ArangoDB (v3.9.1) (Anleitung)
- RabbitMQ installieren (Anleitung)
- Redis installieren (Anleitung)
Mit Docker Compose ausführen
Die einfachere Methode (empfohlen) (*Hinweis: Bevor Sie das Projekt ausführen, stellen Sie sicher, dass Sie die Datei tase.json konfigurieren.) Docker komponieren -d
* Installieren Sie Docker Compose , falls Sie dies noch nicht getan haben (Anleitung)
- * Installieren Sie Poesie , falls Sie dies noch nicht getan haben (Anleitung)
- Führen Sie die Datei tase_client.py aus, die sich im Tase-Paket befindet
Konfiguration und Anpassung
Bevor Sie Ihr Projekt ausführen, müssen Sie die Datei tase.json im Stammverzeichnis anpassen, die von TASE als Konfigurationsdatei verwendet wird
Um das Projekt auszuführen, müssen Sie grundlegende Informationen bereitstellen, mit denen der Bot arbeitet. Beispielsweise müssen Sie das Telegram-Bot-Token und Ihre Telegram-Client-Authentifizierungsinformationen bereitstellen, um Ihre eigenen Clients auszuführen.
Merkmale
Funktionen für Entwickler
- Fügen Sie neue Sprachen in Gebietsschemas hinzu (wir empfehlen die Verwendung von Poedit)
- Fügen Sie ganz einfach neue Schaltflächen und Funktionen (Abfrage und Inline) hinzu, indem Sie die abstrakten Methoden in der Basis-Schaltflächenklasse implementieren
- Echtzeitvisualisierungen für Diagrammmodelle und Audiodateien (Kibana, ArangoDB)
- Abstraktion und Fassadengestaltungsmuster
Große Auswahl an Funktionen
Suchmaschine
- Durchsuchen Sie Audiodateien über die direkte Bot-Suche
- Suchen Sie mithilfe der Erwähnung @bot_name nach Audiodateien aus Gruppen und privaten Chats und senden Sie sie direkt an den Chat
- Echtzeitsuche mit @bot_name-Erwähnung durch Anzeige einer Inline-Ergebnisliste
- Echtzeitsuche direkt in den Privat- und Gruppenchats
- Suche basierend auf Dateiname, Interpretenname und Audioname
- Zeigt die 10 relevantesten Ergebnisse in einer Nachricht und unbegrenzt in den weiteren Ergebnissen an; wird als Inline-Liste zurückgegeben
- Spielen Sie die Songs in den Inline-Listen ab, bevor Sie sie herunterladen
- Durchsuchte Audiodateien werden zwischengespeichert, um unnötige redundante DB-Anfragen zu vermeiden
- Dynamische URL für die Ergebnisse
- Ermöglicht dem Besitzer, die heruntergeladenen Audiodateien zu verfolgen
- Hohe Genauigkeit und Relevanz
- Suchen Sie in einer Vielzahl von Sprachen
- Zeigt den Namen des Quellkanals und den Link zur Datei an
- Ergebnisse im umgekehrten Modus sortieren (um relevantere Ergebnisse unten anzuzeigen)
Beispiel-Screenshot suchen
Ergebnis-Screenshot eines Audio-Beispiels
Indizierungsfunktionen
- Findet automatisch neue Kanäle auf optimistische Weise (geht zunächst davon aus, dass es sich um einen gültigen Kanal handelt, und validiert ihn später, bevor mit der Indizierung begonnen wird).
- Auszug aus Texten und Bildunterschriften
- Auszug aus „weitergeleitete Erwähnung“
- Auszug aus Links
- Indiziert automatisch neue Kanäle
- Durchläuft vorherige Kanäle und setzt die Indizierung ab dem vorherigen Prüfpunkt fort
- Extrem schnelle Indizierung (mindestens 4 Millionen Songs pro Tag und Kunde).
- Analysiert Kanäle und berechnet auf deren Grundlage eine Punktzahl (0–5).
- Dichte der Audiodateien (Verhältnis der Audiodateien
- Aktivität des Kanals (wie oft er neue Dateien teilt)
- Anzahl der Mitglieder
- Verhindert eine Sperrung durch die Telegram-Server
- Unterstützung für parallele Indizierung mit mehreren Telegram-Clients
- Hasht die Datei-IDs auf eine bestimmte Art und Weise, die Konflikte weitestgehend vermeidet und sie dennoch auf maximal acht Zeichen beschränkt
- Benutzer und Kanalbesitzer können mit „/index Kanalname“ eine Anfrage zur Indexierung eines bestimmten Kanals senden.
- Erstellt in Echtzeit ein Diagramm für Benutzer und Audiodateien, das für Empfehlungssysteme und Linkvorhersageaufgaben verwendet werden kann
Funktionen zur Benutzerbegrenzung/-kontrolle
- Verwalten Sie die Benutzermitgliedschaft in Ihren Kanälen nahezu in Echtzeit
- Legen Sie Einschränkungen für Benutzer basierend auf ihrem Mitgliedschaftsstatus fest
- Beschränkt Benutzer, die kein Mitglied sind, auf die freie Suche nach 5 Audiodateien. Anschließend sollten sie eine Minute warten, bis sie ihre gesuchten Audiodateien erhalten
- Nicht-Mitglieder haben Einschränkungen bei der direkten Suche im Chat
Benutzeroberfläche
- Benutzerhandbuch
- Mehrere Menüs (Home, Hilfe, Playlist usw.)
- Eine Tastatur für jedes Teil, um den Vorgang für Benutzer zu vereinfachen
- Mehrsprachiger Bot – derzeit unterstützt:
- ?? Englisch
- ?? Spanisch
- ?? Russisch
- ?? Arabisch
- ?? Portugiesisch
- ?? Hindi
- ?? Deutsch
- ?? Kurdisch (Sorani)
- ?? Kurdisch (Kurmanji)
- ?? Niederländisch
- ?? Italienisch
- ?? persisch
- Begrüßungsnachrichten an Benutzer basierend auf ihrer Aktivität, wenn sie länger als eine Woche oder mehr als zwei Wochen nicht aktiv waren
- Zeigt den Suchverlauf für jeden Benutzer über eine scrollbare Inline-Liste an, indem Sie auf der Home-Tastatur die Schaltfläche „Verlauf“ drücken
- Schöne und lebendige Benutzeroberfläche (Nachrichten und Emojis)
Wiedergabelisten
- Benutzer können unbegrenzte Wiedergabelisten erstellen und in jeder unbegrenzte Audiodateien speichern
- Benutzer können die Metadaten der Wiedergabeliste bearbeiten
- Benutzer können gespeicherte Audiodateien bearbeiten
Screenshot des Hauptmenüs
Admin-Funktionen
- Echtzeit-Grafikvisualisierung (unterstützt das ArangoDB-Dashboard)
- Indizierte Audiodateivisualisierung in Echtzeit (unterstützt das Kibana-Dashboard)
* Kibana ist ein Datenvisualisierungs- und Explorationstool, das für Protokoll- und Zeitreihenanalysen, Anwendungsüberwachung und Anwendungsfälle für operative Intelligenz verwendet wird. Es bietet leistungsstarke und benutzerfreundliche Funktionen wie Histogramme, Liniendiagramme, Kreisdiagramme, Wärmekarten und integrierte Geodatenunterstützung.
Andere
- Extrem schnell
- Die Dokumentation erfolgt in den Codes (docstring)
- Behandelt datenbankbezogene Ausnahmen
- Multithread-Suche (durchsucht mehrere Anfragen asynchron)
- Bewältigt RTL-Texte perfekt
Technologie-Stack
Die wichtigsten Werkzeuge und Technologien, die bei der Entwicklung von TASE verwendet werden, sind folgende:
- Elasticsearch
- ArangoDB
- Pyrogramm
- Python get_text
- Sellerie
- RabbitMQ
- Redis
- Pydantisch
- Jinja
Aufruf zur Spende
Wir freuen uns über Ihr Fachwissen und Ihre Begeisterung!
Möglichkeiten, zur Telegram-Audiosuchmaschine beizutragen:
- Code schreiben
- Überprüfen Sie Pull-Anfragen
- Entwickeln Sie Tutorials, Präsentationen, Dokumentationen und andere Lehrmaterialien
- Übersetzen Sie Dokumentation und Readme-Inhalte
Wir freuen uns über Ihre Beiträge und tun unser Bestes, um Sie zu betreuen und zu unterstützen. Wenn Sie nach einem Problem suchen, das Sie angehen können, werfen Sie einen Blick auf Probleme.
Probleme
Wenn Sie auf ein Problem mit den Codes stoßen, melden Sie es bitte hier. Eine bessere Möglichkeit besteht darin, das Repository auf Github zu forken und/oder eine Pull-Anfrage zu erstellen.
Zukünftige Arbeit
Wenn Sie es hilfreich fanden, geben Sie uns bitte eine
Lizenz
TASE ist unter der Apache-Lizenz, Version 2.0, lizenziert. Den vollständigen Lizenztext finden Sie unter LIZENZ.
Urheberrecht © 2020-2022
- Soran Ghaderi ([email protected])
- Persönliche Website: soran-ghaderi.github.io
- Linkedin: Soran-Ghaderi
- Twitter: SoranGhadri
- Taleb Zarhesh ([email protected])
- Linkedin: Taleb Zarhesh
- Twitter: Taleb Zarhesh