Moderando Conteúdo com a ChatGPT API

Aqui no blog já desenvolvemos um bot que realiza a moderação do conteúdo digitado em um grupo do Telegram. Na implementação desse bot foi definida uma lista de palavras cuja citação deveria ser proibida. Sendo assim, o bot, ao ser inserido em um grupo, lê todas as mensagens e exclui aquelas em que o conteúdo contenha as palavras proibidas.

Qual tal implementarmos um novo bot com o mesmo objetivo, porém fazendo uso da API do ChatGPT para a moderação das mensagens? (Espero que sua resposta tenha sido “Sim!” kkkkkk)

Antes da implementação, precisamos entender como utilizar a API do ChatGPT para realizar a moderação de textos. Para isso, temos que verificar o funcionamento dessa API no guia disponibilizado pela OpenAi. Nessa documentação (ver imagem abaixo), é possível notar que as infrações foram categorizadas, e dentre essas categorias estão: hate, sexual e violence.

Cada uma dessas categorias, após o texto ser analisado, recebe uma pontuação que varia de 0 a 1, onde valores mais altos denotam maior confiança.

É importante esclarecer que a análise do texto, a definição das categorias e a pontuação de cada uma delas após a análise textual segue as regras da política de uso da OpenAi. Sendo assim, na implementação do bot, não teremos como modificar esse processamento ou influenciar no resultado.

Sabendo disso e supondo que você já criou uma conta no site da OpenAI e criou uma API key para as requisições, a chamada a API de moderação pode ser feita da seguinte forma:

Logo após o texto ser processado, a resposta da requisição acima será recebida da seguinte forma:

No JSON acima, é possível perceber que existem os seguintes campos:

  • flagged: Definido como true se o modelo classificar o conteúdo como violando as políticas de uso da OpenAI, caso contrário, será false.
  • categories: Contém um conjunto de sinalizadores de violação de políticas de uso por categoria. Para cada categoria, o valor será true se a análise sinalizar que a categoria correspondente foi violada, caso contrário, será false.
  • category_scores: Contém um conjunto de pontuações brutas por categoria produzidas pós análise, denotando o nível de confiança de que o texto analisado viola a política da OpenAI para a categoria. Como mencionado anteriormente, o valor fica entre 0 e 1, onde valores mais altos denotam maior confiança. Lembrando que as pontuações não devem ser interpretadas como probabilidades.

Agora que já sabemos como fazer a requisição e obter a resposta da API, podemos iniciar a construção do bot. Desse modo, a primeira etapa é a configuração junto ao BotFather, porém, como esse procedimento já foi feito diversas vezes aqui no blog (É interessante também ler o post sobre o uso de bots para gerenciamento de grupos), vamos partir direto para a codificação.

Na implementação do bot, teremos que fazer com que ele, ao ler uma mensagem do grupo, envie o conteúdo via API, a fim de verificar se existem violações com base na análise do ChatGPT. Sendo assim, abaixo, é possível visualizar a codificação em PHP desse comportamento.

Na linha 6 do código acima existe a constante CHATGPT_API, a qual armazena a URL da API. Além disso, na linha 17, existe a chamada ao método checkViolation. Esse método recebe o texto da mensagem e o envia para a análise via API. Uma vez que o resultado é retornado, o valor do campo flagged é obtido, a fim de verificar se o texto possui ou não violações da política.

Uma vez que o bot obtenha o resultado da análise, caso haja violações, a mensagem é deletada do grupo. Esse procedimento pode ser visto nas linhas 19 a 26.

Com o bot codificado, podemos adicioná-lo a um grupo para poder testá-lo.

Bom, é isso!

O exemplo desse post foi bastante simples e teve como objetivo demonstrar como integrar a API do ChatGPT a um bot do Telegram e tirar proveito das suas capacidades de análise de textos.

Caso você queira testar o bot ou adicioná-lo a um grupo, acesse: https://t.me/ModeradorGptBot

Para visualizar o código-fonte completo do bot que foi desenvolvido neste tutorial, acesse: Moderação Grupo Bot.

O bot desenvolvido neste tutorial foi hospedado na Umbler.

E aí gostou do post? Ficou com alguma dúvida? Então, deixe um comentário!

Deixe um comentário