Você está cansado de folhear toneladas de mensagens do Telegram diariamente em busca de informações valiosas? A salvação está aqui!
Este repositório hospeda uma implementação de um aplicativo Telegram que monitora e resume chats em grupo. Criado inicialmente para uso pessoal, é destinado a pessoas que precisam coletar informações de um ou vários chats massivos em grupo do Telegram, que geram muitas mensagens para serem revisadas manualmente.
Com base nas configurações fornecidas:
api_id
e api_hash
para a API do Telegram usando este guia.gpt-4-turbo-preview
), mas é muito fácil substituí-lo pelo backend de sua escolha, pois é usado por meio das chamadas da biblioteca LangChain.examples/
como referência.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
ou
docker build -t tcsa:latest .
python3 app.py config.json
ou
docker run -it tcsa:latest
Na primeira execução, o aplicativo solicitará que você faça login na conta do Telegram usada, assim:
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:
Em seguida, a sessão será armazenada no disco e as execuções subsequentes não exigirão autenticação.
Assim que o aplicativo estiver instalado e funcionando, cada assinante do resumo precisa enviar a mensagem /verify
ao bot para que ele possa registrar o usuário.
O bot pode mudar o contexto da conversa recebendo o comando /<summarized chat name>
(o nome do chat pode ser qualquer um dos definidos na configuração). Este mecanismo é usado se você tiver mais de um chat sendo resumido: ao dar o comando correspondente você pode mudar o contexto do LLM para um chat diferente e discutir o resumo desse chat.
A implementação é muito simplista e definitivamente há espaço para melhorias. Algumas coisas interessantes imediatas (PRs são bem-vindos!):
Existe um guia passo a passo sobre Habr (RU) escrito após esta implementação.