wabri / chatbotpayments Goto Github PK
View Code? Open in Web Editor NEWChatBot per pagamenti vocali (prototipo)
License: MIT License
ChatBot per pagamenti vocali (prototipo)
License: MIT License
Rasa non riesce a comprendere quando gli viene inviato un iban, forse è possibile risolvere tramite frontend inserendo un box in cui incollare l'iban
Partendo dal presupposto che per un pagamento generico debbano essere presenti:
Conto di partenza
Valore del pagamento
Conto di destinazione
Necessario quindi determinare un flusso di conversazione da seguire per determinare i vari intenti e entità da definire. Per esempio una conversazione generica dovrebbe avere un flow di questo tipo (indico con u l'untente e con b il bot):
u: Vorrei effettuare un pagamento
( o semplicemente paga
)
b:
Questa è la lista dei tuoi conti:
------lista accounts bank-------
Dimmi con quale conto vuoi pagare
u: Con il secondo
b: Indicami il valore del pagamento da effettuare
u:300 franchi svizzeri
b:Ora dovrai fornirmi l'iban del conto di destinazione
u:xxxxxxxxxxxxxxxxxxxxx
(si presuppone che il numero di iban venga copiato incollato o inserito da tastiera, non sono sicuro che lo SpeechRecognition riesca a riconoscere uno spelling in italiano [da verificare])
b:Confermi il pagamento usando il conto2 di 300 franchi svizzeri con destinatario xxxxxxxx?
u:si
Per seguire un flow di questo tipo sono necessari gli intenti:
"paymentRequestToIban" per far iniziare la conversazione, corrisponde alla prima frase pronunciata dall'utente nell'esempio sopra (non ci sono entità?)
"accountChoice" per selezionare il conto da usare per il pagamento, corrisponde alla risposta dell'utente dopo la lista dei conti (ci sarà l'entità "accountNumber" che sarà il conto scelto dall'utente)
"valuePayment" questo servirà per prendere il totale del pagamento e la valuta con cui pagare, corrisponde alla frase dell'utente 300 franchi svizzeri
(ci saranno le entità: "value" corrispondente al valore effettivo del pagamento e "currency" che dovrà indicare il tipo di valuta con cui pagare)
"confirm" e "cancellation" servirà per comprendere la risposta all'ultima domanda del bot, qui sarà necessario creare i sinonimi di tutti i possibili modi per confermare.
Creare quindi un set di dati con cui fare il training usando rasa o dialogflow, solo dopo aver creato questo sarà possibile passare all'effettiva implementazione della chatbot.
Per una questione di "sicurezza" i conti di destinazione dei pagamenti sono definiti prima (nelle impostazioni?), partendo da questo presupposto noi avremo una serie di conti abilitati a eseguire i pagamenti vocali (es: mario, andrea, avvocato, etc.etc.) in questo modo la conversazione con il bot sarà molto più naturale del tipo: Paga l'avvocato 300 franchi
oppure paga andrea 30 euro
.
L'intento di questa frase è "paymentRequestToAKnownAccount" e le entità dovranno essere "knownAccount", "value" e "currency". Una volta che vengono trovate tutte le entità allora partirà la richiesta del conto da cui eseguire il pagamento, verrà stampato in chat quindi la lista dei conti attivi dell'utente:
conto 1: abc123456
conto 2: cba654321
verrà richiesto solo il numero identificativo del conto, nell'esempio sopra basterà dire conto 1
o 1
per indicare il conto da usare.
Infine verrà richeista la conferma del pagamento.
(i nomi delle entità e degli intenti sono da rivedere)
Aggiornare il README.md sia della root che di RASA_IA
l'utente deve poter eseguire alcune richieste semplici, come:
lista dei conti dell'account
valore totale di un conto
...........
di conseguenza sarà necessario un intento per ogni richiesta, quindi dovremo avere gli intenti:
"bankAccountsList", non dovrebbe avere bisogno di entità
"bankAccountTotalValue", dovrebbe avere l'entità necessaria con il numero di conto (se c'è un solo conto associato all'user allora non è richiesto il numero di conto?)
Riscrivere il codice usando typescript togliendo le interazioni con dialogflow sostituendole con il backend rasa
modificare il front end in per fare in modo che si in grando di garantire il botta e risposta con l'untente
test1
test2
ci sono le chiamate che rasa core fa verso il server che attualmente sono tutte uguali a causa di una carenza di informazioni.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.