Retomando um post que fiz no tópico original de fluxos de trabalho. Descobri como fazer o que eu queria. Tudo isso é apenas um teste, claro, mas veja o que ele faz:
Este é um sistema de reengajamento que usa IA para, esperançosamente, gerar discussões e aumentar o reengajamento em momentos em que o site está com menos movimento.
Fase A: Localizar e Resumir
Localizar posts com mais de 30 dias que sejam uma combinação dos seguintes critérios:
- Tópicos populares que não tiveram novos posts há algum tempo.
- Tópicos que estão recebendo muitas visualizações, mas não tiveram resposta há algum tempo.
- Tópicos que tiveram alguma atividade no último ano, mas que depois pararam.
Quando encontra um, ele inicia o agente ‘AI Summary’ do Discourse. O agente de IA escreve um resumo. Ele faz isso enviando uma requisição http via POST para o endpoint da API de resumo. Quando o resumo está pronto, ele salva a existência do fluxo de trabalho em uma tabela de dados.
(Isto roda uma vez por hora, mas potencialmente com mais frequência).
Fase B: Avaliar o Resumo para Seguir em Frente
Outro fluxo de trabalho agendado roda de forma independente, no seu próprio cronograma. Ele verifica a tabela de dados em busca de linhas que foram resumidas, mas não avaliadas. Ele pega um tópico da tabela de dados e, em seguida, obtém os 5 a 10 posts mais recentes desse tópico.
Ele passa para um agente de IA que lida com a triagem. Ele faz uma determinação. Este é um tópico que deve ser revivido? Se sim, como? Ele decide se o tópico deve ser impulsionado (bump) ou se deve ser feito um post que reengaje com o tópico: faz uma pergunta, pede um follow-up ou não faz nada.
Ele atualiza a tabela de dados com a decisão.
(Isto deve rodar com a mesma frequência da Fase A; você também pode acioná-lo a partir da Fase A ou combiná-lo com ela.)
Fase C: Reengajar com o Tópico
Outro fluxo de trabalho agendado roda no seu próprio cronograma, com menos frequência. Seu primeiro passo é verificar o quão ativo o fórum tem sido recentemente. Ele faz isso verificando quantos posts foram feitos, em média, por hora, nas últimas 3 horas. Em seguida, ele calcula a média de quão movimentado o fórum tem sido em períodos de 3 horas, no mesmo dia e horário ao longo dos últimos 2 meses. Se o site não estiver tão movimentado quanto o normal para o mesmo horário no mesmo dia, ele dirá ‘podemos fazer um reengajamento agora’.
Em seguida, ele pega até 10 oportunidades de reengajamento disponíveis. Ele envia para um agente de IA e pede para extrair o candidato mais forte para o reengajamento da lista. A IA decide e retorna um topic_id. O classificador na Fase B decidiu entre 3 opções: Impulsionar tópico (Bump topic), postar follow-up, não fazer nada.
O fluxo de trabalho fará um bump, a menos que um follow-up seja designado. Se destinado a um follow-up, ele pegará o id do tópico e obterá os posts mais recentes desse tópico. Ele o entregará a um agente de IA que determinará qual seria a melhor resposta para reengajar com o tópico. Ele tem salvaguardas para garantir uma resposta muito básica, que ainda esteja no tópico e não dê recomendações ou forneça comentários. Ele principalmente apenas pede uma atualização, pergunta se o autor original tem uma atualização sobre algo que aconteceu, etc. Ele publica a resposta e, em seguida, atualiza a tabela de dados com a data de conclusão.
Espero não ter apenas duplicado algum recurso oculto do Discourse do qual eu não sabia! Levou algumas tentativas e erros, mas consegui fazer.


