milharal-dev / nemli-nemlerei-bot

Um bot de discord para criar resumos baseado nas últimas mensagens de um canal
8 stars 1 forks source link

Bloquear chamadas sequencias ao bot #18

Closed rdenadai closed 1 month ago

rdenadai commented 1 month ago

Originalmente tínhamos comentado de evitar misusage do bot chamando o mesmo em intervalos de tempo curto demais (o que implica provavelmente q nem tenhamos tantas mensagens assim).

Bloqueamos isso por tempo ou quantidade de mensagens?

Por tempo, inicialmente é mais simples (talvez 5-10 min), mas acho q o goal deveria ser por qtde de mensagem, mas para isso precisaremos guardar o id da última mensagem q o bot leu e precisamos de um banco de dados (ou alguma forma de armazenamento local).

@ryukinix @flipbit03

ryukinix commented 1 month ago

Não acho que precisa de storage nem de state. Pode chamar o bot normal, aí ele em vez de gerar um novo resumo, ele pega o link do último e posta. E comenta que somente após X mensagens ou X tempo será possível chamar o bot novamente pra fazer sumário. Ler mensagens do Discord é barato, podemos fazer várias vezes. O que é caro é chamada no OpenAI. Isso precisamos economizar

ryukinix commented 1 month ago

Não acho que precisa de storage nem de state. Pode chamar o bot normal, aí ele em vez de gerar um novo resumo, ele pega o link do último e posta. E comenta que somente após X mensagens ou X tempo será possível chamar o bot novamente pra fazer sumário. @rdenadai

rdenadai commented 1 month ago

Podemos fazer o seguinte, se a mensagem do bot estiver dentro das últimas 20 msgs então nem faz sentido gerar uma nova ... ai esperamos os X minutos (parametrizado como envvar, e algum default no config)

mattpsvreis commented 1 month ago

No momento, o comando tem um cooldown de 10 segundos. É completamente customizável, só definir qual a regra de negócio que quer atender..

ryukinix commented 1 month ago

Onde fica essa definição do cooldown? Podemos começar por essa abordagem porque é mais simples. Mas ela é baseada no canal ou globalmente pelo server? @mattpsvreis se puder linkar onde isso tá definido no código, acho que fica mais fácil pra gente ter contexto

rdenadai commented 1 month ago

@ryukinix respondendo a nossa pergunta do cooldown, existe e esta nessa linha. https://github.com/milharal-dev/nemli-nemlerei-bot/blob/master/nemli/commands/utility/summarize.py#L16

refs da docs: https://docs.nextcord.dev/en/stable/ext/commands/api.html#nextcord.ext.commands.cooldown

Portanto, a cada vez q alguém aciona o bot, tem um cooldown de 10 secs ... Acho q isso é bom de qualquer forma (eu manteria esse cooldown de 10 secs), mas ainda implica em problemas se aumentarmos esse cooldown...

ryukinix commented 1 month ago

A resposta com o link é uma abordagem melhor

Em qua., 24 de jul. de 2024 08:49, ⟠ Rodolfo De Nadai < @.***> escreveu:

@ryukinix https://github.com/ryukinix respondendo a nossa pergunta do cooldown, existe e esta nessa linha.

https://github.com/milharal-dev/nemli-nemlerei-bot/blob/master/nemli/commands/utility/summarize.py#L16

refs da docs: https://docs.nextcord.dev/en/stable/ext/commands/api.html#nextcord.ext.commands.cooldown

Portanto, a cada vez q alguém aciona o bot, tem um cooldown de 10 secs ... Acho q isso é bom de qualquer forma (eu manteria esse cooldown de 10 secs), mas ainda implica em problemas se aumentarmos esse cooldown...

— Reply to this email directly, view it on GitHub https://github.com/milharal-dev/nemli-nemlerei-bot/issues/18#issuecomment-2247711086, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB2J57RNC4M4FTGYNLFIFZTZN6IFDAVCNFSM6AAAAABLLQGJC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBXG4YTCMBYGY . You are receiving this because you were mentioned.Message ID: @.***>