Haben Sie es satt, täglich Unmengen von Telegram-Nachrichten zu durchforsten und nach wertvollen Informationen zu suchen? Die Erlösung ist da!
Dieses Repository beherbergt eine Implementierung einer Telegram-Anwendung, die Gruppenchats überwacht und zusammenfasst. Ursprünglich für den persönlichen Gebrauch konzipiert, ist es für Personen gedacht, die Informationen aus einem oder mehreren Live-Massen-Telegram-Gruppenchats sammeln müssen, die viel zu viele Nachrichten generieren, als dass sie manuell überprüft werden könnten.
Basierend auf den gegebenen Konfigurationen gilt Folgendes:
api_id
und api_hash
Werte für die Telegram-API.gpt-4-turbo-preview
Modell), aber es ist ziemlich einfach, es durch das Backend Ihrer Wahl zu ersetzen, da es über die LangChain-Bibliotheksaufrufe verwendet wird.examples/
als Referenz.config.json
: {
"telegram_api_id" : <api_id>,
"telegram_api_hash" : " <api_hash> " ,
"openai_api_key" : " <key> " ,
"telegram_bot_auth_token" : " <token> " ,
"chats_to_summarize" : [
{
"id" : " <group chat ID or name> " ,
"lookback_period_seconds" : 86400 ,
"summarization_prompt_path" : " prompts/example_summarization_prompt.txt "
}
],
"telegram_summary_receivers" : [
" <Telegram username> "
]
}
python3 -m pip install -r requirements.txt
oder
docker build -t tcsa:latest .
python3 app.py config.json
oder
docker run -it tcsa:latest
Beim ersten Start werden Sie von der App aufgefordert, sich wie folgt bei dem verwendeten Telegram-Konto anzumelden:
user@pc: ~ /telegram-chat-summarizer $ python3 app.py config.json
2024-03-27 23:03:11,618 - INFO - Started !
Please enter your phone (or bot token): < phone number >
Please enter the code you received: < OTP >
Please enter your password:
Dann wird die Sitzung auf der Festplatte gespeichert und die nachfolgenden Ausführungen erfordern keine Authentifizierung.
Sobald die App betriebsbereit ist, muss jeder Zusammenfassungsabonnent die /verify
-Nachricht an den Bot senden, damit dieser den Benutzer registrieren kann.
Der Bot kann den Konversationskontext wechseln, indem ihm der Befehl /<summarized chat name>
bereitgestellt wird (der Chatname kann einer der in der Konfiguration definierten Namen sein). Dieser Mechanismus wird verwendet, wenn mehr als ein Chat zusammengefasst wird: Durch Eingabe des entsprechenden Befehls können Sie den LLM-Kontext auf einen anderen Chat umschalten und die Zusammenfassung dieses Chats besprechen.
Die Implementierung ist sehr einfach und es gibt definitiv Raum für Verbesserungen. Einige unmittelbare Nice-to-haves (PRs sind willkommen!):
Nach dieser Implementierung wurde eine Schritt-für-Schritt-Anleitung zu Habr (RU) verfasst.