Sto sviluppando un assistente virtuale per gestire le transazioni in un'azienda. Sto usando un servizio esterno per gestire Natural Language e ottenere intenti, azioni e parametri dalle richieste dei miei utenti.
Il client invia richieste come stringhe di testo alla logica della mia applicazione e la mia logica applicativa indirizza i messaggi alla PNL o al Business.
Quando un client ha bisogno dell'autenticazione per effettuare una transazione, mostro una finestra di dialogo modale per chiedere le sue credenziali. Quindi aggiungo un tag come '[XXX]'
al
stringhe così il mio componente di entrata può indirizzare il messaggio direttamente al servizio aziendale. Aggiungo anche lo stesso tag alle risposte dei client quando voglio
client per attivare un comportamento specifico. Ad esempio:
- Il client invia la stringa
'I wan to log in'
al server. - Il server non vede il tag
[XXX]
, quindi consegna la stringa al servizio NLP. - Il servizio NLP risponde con l'azione
'UserLogIn'
al server. - Server effettua una ricerca per l'azione e invia la stringa
'[Require_Auth]'
al Client. - Il client vede un tag
[XXX]
, quindi analizza la stringa, mostra una modale, chiede le credenziali e invia'[Username]ZZZZZZZZ[Password]ZZZZZZZZ'
al server. - Il server vede un tag
[XXX]
, quindi analizza la stringa e passa i parametri al servizio Bussiness. - Business Service crea una sessione e la consegna al Server.
- Sessione di segnalibri del server e invia la stringa
'Welcome "username"!'
al client. - Il client non vede nessun tag
[XXX]
, quindi visualizza la stringa nella finestra.
Ciò significa che il client e i programmi server devono analizzare i messaggi per cercare i tag '[XXX]'
per attivare un comportamento specifico.
Ritengo che questa soluzione sia negativa, quindi quale sarebbe un approccio migliore per attivare comportamenti specifici tramite messaggi tra client e server?