Sinergia tra LLM e GUI, oltre il Chatbot |  di Hans van Dam |  Ottobre 2023

 | Intelligenza-Artificiale

Una specifica completa delle funzioni è disponibile per la tua ispezione Qui.

L’implementazione Flutter della Natural Language Bar si basa su LangChain Dartla versione Dart dell’ecosistema LangChain. Tutta la progettazione tempestiva avviene lato client. Risulta più sensato tenere insieme schermate, logica di navigazione e modelli di funzioni. In effetti, i modelli di funzione sono integrati nella struttura di navigazione poiché esiste una relazione uno a uno. Di seguito è riportato il codice per l’attivazione e la navigazione nella schermata della carta di credito:

DocumentedGoRoute(
name: 'creditcard',
description: 'Show your credit card and maybe perform an action on it',
parameters: (
UIParameter(
name: 'limit',
description: 'New limit for the card',
type: 'integer',
),
UIParameter(
name: 'action',
description: 'Action to perform on the card',
enumeration: ('replace', 'cancel'),
),
),
pageBuilder: (context, state) {
return MaterialPage(
fullscreenDialog: true,
child: LangBarWrapper(
body: CreditCardScreen(
label: 'Credit Card',
action: ActionOnCard.fromString(
state.uri.queryParameters('action')),
limit:
int.tryParse(state.uri.queryParameters('limit') ?? ''))));
}),

In alto vediamo che si tratta di un percorso: una destinazione nel sistema di routing dell’app, attivabile tramite un collegamento ipertestuale. La descrizione è la parte che LLM utilizzerà per abbinare lo schermo alle intenzioni dell’utente. I parametri sottostanti (limite della carta di credito e azione da intraprendere) definiscono i campi dello schermo in linguaggio naturale, in modo che LLM possa estrarli dalla domanda dell’utente. Quindi l’elemento pageBuilder definisce come deve essere attivata la schermata, utilizzando i parametri di query del collegamento profondo. Puoi riconoscerli in https://langbar-1d3b9.web.app/home: digita: ‘limite carta di credito a 10000’ nell’NLB e la barra degli indirizzi del browser visualizzerà: https://langbar-1d3b9.web.app/creditcard?limit=10000.

È stato utilizzato un agente LangChain, che rende questo approccio indipendente da GPT, quindi può essere applicato anche utilizzando altri LLM come Llama, Gemini, Falcon, ecc. Inoltre, semplifica l’aggiunta di assistenza basata su LLM.

La barra del linguaggio naturale offre un pannello comprimibile della cronologia delle interazioni, in modo che l’utente possa ripetere facilmente le dichiarazioni precedenti. In questo modo la cronologia delle interazioni viene preservata, in modo simile alle interfacce di chat, ma in una forma compatta e pieghevole, risparmiando spazio sullo schermo ed evitando disordine. Le precedenti dichiarazioni linguistiche dell’utente vengono visualizzate utilizzando la lingua utilizzata dall’utente. Le risposte del sistema sono incorporate come collegamento ipertestuale nella dichiarazione dell’utente, quindi è possibile fare clic su di esse per riattivare nuovamente la schermata corrispondente:

Il pannello della cronologia della Natural Language Bar

Quando LLM non è in grado di determinare completamente la schermata da attivare, le risposte del sistema vengono visualizzate esplicitamente, nel qual caso il pannello della cronologia si espande automaticamente. Ciò può verificarsi quando l’utente ha fornito informazioni insufficienti, quando la richiesta dell’utente non rientra nell’ambito dell’app o quando si verifica un errore:

Il pannello della cronologia è un bel posto per offrire assistenza clienti e aiuto sensibile al contesto sotto forma di chatbot. Al momento in cui scrivo, è in corso una vivace discussione ed evoluzione delle tecniche RAG (Retrieval Augmented Generation) che consentono ai chatbot di rispondere alle domande degli utenti sulla base di un ampio corpus di contenuti testuali forniti dalla propria organizzazione. Oltre a ciò, la Natural Language Bar è un buon punto di partenza per immaginare quale potenza e facilità in più si possono dare alle applicazioni che utilizzano il linguaggio naturale. Per favore lascia le tue idee nei commenti. Sono davvero curioso.

Oltre alla tua app, la tua organizzazione dispone anche di un sito Web con molte informazioni per i tuoi utenti. Forse questo sito web ha già un chatbot. Forse anche la tua app ha già un chatbot. Il pannello della cronologia delle interazioni è un buon posto anche per avere conversazioni di questo tipo con l’assistenza clienti.

Nel contesto sopra descritto manteniamo una cronologia dell’interazione linguistica con la nostra app. In futuro, potremmo aggiungere (in modo invisibile) una traccia dell’interazione diretta dell’utente con la GUI a questa sequenza storica. È quindi possibile fornire una guida sensibile al contesto combinando la traccia storica dell’interazione dell’utente con RAG nella documentazione della guida dell’app. Le domande degli utenti riceveranno quindi una risposta più nel contesto dello stato attuale dell’app.

La proposta attuale è un MVP. Offre un modello statico per l’interpretazione delle richieste linguistiche di un utente nel contesto di un’app. Questa tecnica apre un ampio spettro di miglioramenti futuri:

  • Quando gli utenti pongono una domanda quando si trovano su una schermata specifica, potremmo essere in grado di aggiungere dinamicamente modelli di interpretazione (funzioni) più specifici al prompt che dipendono dallo stato di quella schermata come “Perché il pulsante di invio è disattivato/disabilitato?” ‘.
  • La chiamata di funzione utilizzando una barra del linguaggio naturale può essere utilizzata come assistente per applicazioni creative, ad esempio per eseguire procedure su selezioni come “crea la stessa dimensione” o “trasforma in un componente riutilizzabile”. Microsoft Copolit 365 utilizza già funzionalità simili. L’approccio adottato in questo articolo può anche consentire alla tua organizzazione di sfruttare tali funzioni.

L’interazione del linguaggio naturale con ogni aspetto del tuo sistema diventerà rapidamente una componente importante di ogni interfaccia utente. Quando si utilizza la chiamata di funzione, è necessario includere le capacità del sistema nel prompt, ma presto sul mercato arriveranno metodi più economici e potenti. Ad esempio, OpenAI è stato recentemente aperto messa a punto del modello con chiamata di funzionepermettendoti di creare una versione LLM con le capacità del tuo sistema integrate. Anche quando tali capacità sono molto estese, il carico sul prompt rimane limitato.

Gli LLM possono essere utilizzati come un meraviglioso collante per interagire con app basate su GUI in linguaggio naturale tramite la “chiamata di funzioni”. È stata introdotta una barra del linguaggio naturale che consente agli utenti di digitare o esprimere le proprie intenzioni e il sistema risponderà navigando nella schermata giusta e precompilando i valori corretti. L’app di esempio ti consente di provare realmente di cosa si tratta e il codice sorgente disponibile consente di applicarlo rapidamente alla tua app se usi Flutter. La Natural Language Bar non è destinata solo a Flutter o alle app mobili, ma può essere applicata a qualsiasi applicazione dotata di GUI. Il suo più grande punto di forza è che mette a disposizione dell’utente tutte le funzionalità dell’app da un unico punto di accesso, senza che l’utente debba sapere come fare le cose, dove trovarle o addirittura conoscere il gergo del mondo. app. Dal punto di vista dello sviluppo di app, puoi offrire tutto questo all’utente semplicemente documentando lo scopo delle tue schermate e dei widget di input su di esse.

Seguimi su LinkedIn

Ringraziamenti speciali a David Miguel Lozano per avermi aiutato LangChain Dart

Alcuni articoli interessanti: dialogo multimodale, blog di Google su GUI e LLM, interpretare l’interazione della GUI come linguaggio, Assistenti potenziati LLM, Lingua e GUI, Chatbot e GUI

Tutte le immagini presenti in questo articolo, se non diversamente specificato, sono dell’autore

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *