Sto creando automazioni basate sull’IA utilizzando script di triage IA indipendenti (ad esempio, controllo spam, determinazione tag). Attualmente vengono eseguiti in parallelo, il che è inefficiente. Ho bisogno di “metterli in catena” in modo che, ad esempio, lo script dei tag venga eseguito solo se lo script spam non contrassegna il contenuto.
Come posso governare e orchestrare questi script per un flusso di lavoro più logico? In particolare, come posso concatenare questi script in modo condizionale?
Puoi descrivere il flusso completo che stai cercando? Sarebbe qualcosa che eseguiresti su un server separato o vorresti che questo fosse eseguito in Discourse?
I flussi di lavoro AI sono qualcosa a cui pensiamo molto, la capacità di definire catene è fondamentale nei flussi di lavoro. Sono completamente d’accordo.
Per quanto posso vedere, la maggior parte dei miei casi d’uso può essere gestita in Discourse con AI Triage e Automazione, se si riesce ad attivarli uno dopo l’altro.
Ecco un flusso ipotetico in cui ogni passaggio invierebbe il contenuto del post e un prompt all’LLM:
Controlla se è spam
Se è spam, nascondi e segnala
Se non è spam, determina i prodotti discussi
Aggiungi etichetta/e del prodotto
Successivamente determina l’intento:
** Reclamo
** Domanda
** Suggerimento
** Condivisione di informazioni
** Feedback positivo
Aggiungi tag di intento
Se l’intento è ‘reclamo’, valuta le questioni critiche: ad esempio, contiene frasi critiche (cancella, terribile, lento)
Se è una questione critica, aggiungi il tag ‘hot’ e assegna a Sam
Se l’intento è ‘feedback positivo’ e il prodotto è ‘piano telefonico wireless’, scrivi un invito personalizzato al programma di referral e invialo come PM.
Questo è fantastico e un caso d’uso molto interessante.
Gli strumenti personalizzati hanno già il supporto per lo scripting, quindi abbiamo un ottimo veicolo per questo tipo di cambiamento.
Sto pensando a Persona + uso forzato dello strumento - quindi dallo strumento possiamo eseguire il flusso dato che abbiamo già tutta l’infrastruttura per farlo. Dobbiamo solo dare agli strumenti personalizzati la capacità di attivare altre chiamate LLM, qualcosa che è ragionevolmente semplice da aggiungere.
Interessante, dato che gli strumenti personalizzati hanno supporto per le chiamate REST, possono eseguire l’intero flusso (e semplicemente utilizzare l’API REST di discourse per collegare tutto questo).
Ci penserò durante il fine settimana e risponderò di nuovo la prossima settimana su come penso che possiamo realizzare questo.
Anche la concatenazione di automazioni è un approccio molto interessante qui, @j.jaffeux ci hai pensato a questo problema?
Questo mi ricorda la catena di azioni di IFTT/Zapier, penso che potremmo prendere in prestito molti dei loro elementi UI/UX se costruissimo qualcosa di simile.
Ciao @Cloud_spanner sto cercando di capire a fondo questo problema e vorrei approfondire un po’ di più il flusso effettivo, puoi aiutarmi con alcune risposte alle domande lungo il percorso 5?
Quali post devono essere scansionati?
Ogni nuovo post sul forum?
Ogni nuovo argomento - ad esempio il post numero 1 - sul forum?
E le modifiche? Ogni modifica dovrebbe essere scansionata? A quale frequenza? (debounce di 10 minuti)
Che dire degli utenti con alta fiducia? Persone che hanno già pubblicato due volte sul forum?
Intento
Dovrebbe applicarsi a TUTTI gli argomenti? TUTTI i post?
Cosa succede se un tag di intento è già presente?
Un argomento può avere più di 1 intento (questo è un gruppo di tag?)
Se l’intento può essere manuale, anche il materiale etichettato manualmente dovrebbe essere scansionato per il “pulsante caldo”?
hot è un tag invisibile o un tag visibile?
In particolare, quello a cui sto pensando qui è:
Il “flusso di lavoro” contiene scorciatoie, dove particolari post saltano semplicemente dei passaggi e procedono al successivo
Ogni nuovo argomento dovrebbe avviare un flusso di lavoro di triage AI. Le modifiche possono essere ignorate.
Per essere chiari, sto usando l’intento per illustrare il flusso di lavoro, quindi non dovrebbe essere considerato un flusso codificato. Il punto che sto cercando di fare è che non c’è motivo di avviare il flusso di lavoro di “intento” se il primo flusso di lavoro di triage lo ritiene non necessario. +1 al concetto di flusso di lavoro IFTTT.
Intento e “hot” sarebbero tag invisibili in questo esempio visibili solo ai moderatori e agli amministratori.
Dovrebbe esserci un tag di intento per post.
Penso che ai fini del flusso di lavoro, possiamo ignorare i post contrassegnati manualmente.
Sì.
E se un tag privato venisse utilizzato per mostrare che il flusso è stato eseguito per quell’argomento? E poi potrebbe essere ignorato per qualsiasi esecuzione futura.
Un altro pensiero che ho è che con la maggiore capacità di “ragionamento” dei LLM + ampie finestre di contesto, sarebbe meglio consentire output strutturati nella finestra di Discourse Automation. La logica IFTTT potrebbe quindi essere applicata a una singola automazione invece di concatenare più automazioni. Immagina se ci fosse la possibilità di avere un’automazione, ma molte azioni di “Ricerca testo”.
Ho pensato a come risolvere questo problema all’interno del nostro sistema attuale e un’opzione molto interessante è consentire un nuovo tipo di automazione:
triage_using_custom_tool
Abbiamo già il sistema di strumenti personalizzati:
Possiamo quindi consentirgli alcune funzioni aggiuntive come llm.generate e topic.close, topic.tag e così via che potrebbero essere utilizzate dallo strumento per eseguire questi tipi di flussi di lavoro.
Un altro vantaggio è che potresti persino testarlo, il che renderebbe più facile ottimizzarlo.
Sembra una grande idea. Sono ancora abbastanza nuovo nell’ecosistema di Discourse, quindi approfondirò gli Strumenti Personalizzati e anche come le richieste di funzionalità arrivano alla produzione.
Ho delle buone notizie: il tuo flusso di lavoro ora è completamente funzionante utilizzando strumenti personalizzati!
L’idea è che definiresti un singolo strumento personalizzato con tutti i parametri:
is_spam, intent, hot, requires_invite
Quindi, utilizzeresti triage using persona per chiamare lo strumento e lo strumento eseguirebbe tutte le azioni (al momento tramite l’API di Discourse, ma possiamo esporre più funzionalità integrate man mano).
Un buon approfondimento su come tutto questo può essere collegato è: