Estou criando automações com IA usando scripts independentes de triagem de IA (por exemplo, verificação de spam, determinação de tags). Atualmente, eles rodam simultaneamente, o que é ineficiente. Preciso “encadeá-los” para que, por exemplo, o script de tags só rode se o script de spam não sinalizar o conteúdo.
Como posso governar e orquestrar esses scripts para um fluxo de trabalho mais lógico? Especificamente, como posso encadear esses scripts condicionalmente?
Você pode descrever o fluxo completo que você está buscando? Isso seria algo que você executaria em um servidor separado ou gostaria que rodasse no Discourse?
Fluxos de trabalho de IA são algo que estamos pensando muito, a capacidade de definir cadeias é fundamental com fluxos de trabalho. Concordo completamente com isso.
Pelo que posso ver, a maioria dos meus casos de uso pode ser feita no Discourse com Triagem e Automação de IA, se um puder acionar o próximo.
Aqui está um fluxo hipotético onde cada etapa enviaria o conteúdo da postagem e um prompt para o LLM:
Verificar se é spam
Se for spam, ocultar e sinalizar
Se não for spam, determinar os produtos discutidos
Adicionar rótulo(s) de produto
Em seguida, determinar a intenção:
** Reclamação
** Pergunta
** Sugestão
** Compartilhamento de informações
** Feedback positivo
Adicionar tag de intenção
Se a intenção for ‘reclamação’, avaliar questões sensíveis: ou seja, contém frases sensíveis (cancelar, terrível, lento)
Se for uma questão sensível, adicionar a tag ‘hot’ e atribuir a Sam
Se a intenção for ‘feedback positivo’ e o produto for ‘plano de telefone sem fio’, escrever um convite personalizado para o programa de indicação e enviar como PM.
Ferramentas personalizadas já têm suporte para scripting, então temos um ótimo veículo para esse tipo de mudança.
Estou pensando em Persona + uso forçado de ferramentas - então, a partir da ferramenta, podemos executar o fluxo, já que já temos toda a infraestrutura para isso. Só precisamos dar às ferramentas personalizadas a capacidade de acionar outras chamadas de LLM, algo que é razoavelmente simples de adicionar.
Interessantemente, como as ferramentas personalizadas têm suporte para chamadas REST, elas podem executar todo o fluxo (e apenas usar a API REST do discurso para conectar isso).
Vou pensar sobre isso durante o fim de semana e responderei novamente na próxima semana com como acho que podemos fazer isso.
A encadeamento de automação também é uma abordagem muito interessante aqui, @j.jaffeux você pensou sobre esse problema?
Olá @Cloud_spanner, estou tentando entender isso e gostaria de detalhar um pouco mais o fluxo real, você pode me ajudar com algumas respostas para as perguntas ao longo do caminho? 5.
Quais posts devem ser escaneados?
Todo novo post no fórum?
Todo novo tópico - por exemplo, post número 1 - no fórum?
E as edições? Toda edição deve ser escaneada? Com que frequência? (debounce de 10 minutos)
E os usuários de alta confiança? Pessoas que já postaram duas vezes no fórum?
Intenção
Deve se aplicar a TODOS os tópicos? TODOS os posts?
E se uma tag de intenção já estiver lá?
Um tópico pode ter mais de 1 intenção (isso é um grupo de tags?)
Se a intenção puder ser manual, o material marcado manualmente também deve ser escaneado para “hot button”?
hot é uma tag invisível ou visível?
Particularmente, o que estou pensando aqui é:
O “fluxo de trabalho” contém atalhos, onde posts específicos apenas pulam etapas e prosseguem para a próxima?
Cada novo tópico deve iniciar um fluxo de trabalho de triagem de IA. Edições podem ser ignoradas.
Para ser claro, estou usando a intenção para ilustrar o fluxo de trabalho, portanto, não deve ser considerada um fluxo codificado. O ponto que estou tentando fazer é que não há razão para iniciar o fluxo de trabalho de ‘intenção’ se o primeiro fluxo de trabalho de triagem o considerar desnecessário. +1 para o conceito de fluxo de trabalho IFTTT.
Intenção e ‘hot’ seriam tags invisíveis neste exemplo, visíveis apenas para moderadores e administradores.
Deve haver uma tag de intenção por postagem.
Acho que, para fins de fluxo de trabalho, podemos ignorar postagens marcadas manualmente.
Sim.
E se uma tag privada fosse usada para mostrar que o fluxo foi executado para esse tópico? E então ele poderia ser ignorado para quaisquer execuções futuras.
Outro pensamento que tenho é que, com a capacidade aumentada de “raciocínio” de LLM + grandes janelas de contexto, seria melhor permitir saídas estruturadas na janela de Automação do Discourse. A lógica IFTTT poderia então ser aplicada a uma única automação em vez de encadear várias automações. Imagine se houvesse a capacidade de ter uma automação, mas muitas ações de “Pesquisar texto”.
Podemos então permitir mais algumas funções, como llm.generate e topic.close, topic.tag e assim por diante, que poderiam ser usadas pela ferramenta para executar esses tipos de fluxos de trabalho.
Outra vantagem é que você poderia até mesmo testá-la, o que facilitaria o ajuste.
Isso parece uma ótima ideia. Ainda sou relativamente novo no ecossistema do Discourse, então vou explorar as Ferramentas Personalizadas e também como as solicitações de recursos chegam à produção.
Tenho boas notícias, seu fluxo de trabalho está totalmente funcional agora usando ferramentas personalizadas!
A ideia é que você definiria uma única ferramenta personalizada com todos os parâmetros:
is_spam, intent, hot, requires_invite
Em seguida, você clicaria em triage using persona para chamar a ferramenta, e a ferramenta executaria todas as ações (no momento via API do Discourse, mas podemos expor mais recursos integrados conforme avançamos).
Um bom guia sobre como tudo isso pode ser conectado é: