martedì 4 gennaio 2022

Skill Alexa per avere il riepilogo del bollettino covid giornaliero italiano

 


Dopo la creazione dello script python ho deciso di cimentarmi nella creazione di una skill per Alexa che mi leggesse il piccolo report giornaliero con tutti i numeri del covid in Italia. La skill restituisce:

  • il numero di nuovi positivi,
  • il numero di tamponi totali della giornata,
  • il tasso di positività,
  • i nuovi ingressi in terapia intensiva e
  • il numero decessi.

Non avendo trovato alcuna skill che proponeva questi dati ho deciso di provare per la prima volta a scrivere la skill. Come per il file python anche i dati da cui parte la skill sono sono quelli ufficiali pubblicati dal repository del Dipartimento della Protezione civile. La skill aggiornerà i dati secondo gli orari pubblicati nella pagina sopra menzionata.

Per la creazione della skill ho utilizzato un tutorial youtube e dove non ho trovato nulla ho semplicemente ragionato fino a trovare una soluzione funzionante. 

Per attivare la skill basta dire:
Alexa, bollettino covid
oppure
Alexa, apri bollettino covid
oppure
Alexa, chiedi a bollettino covid il numero di tamponi

Ripropongo nel seguito i principali step della creazione della skill:

01. Aprite il sito developer Amazon
02. Skill Builders
03. Sviluppa la tua Skill
04. Crea Skill
05. Custom

06. Alexa-hosted (Python)

07. Start from Scratch

08. Continue with template
09. Interaction Model -> Intents
10. Add Intent
11. Aggiungo gli Intents. Save Models

12. Ho ripetuto il processo per i nuovi positivi, tamponi, deceduti, ospedalizzazioni e tasso di positività
 

13. Build Model
14. Andiamo su "code"

15. Per inserire gli Intent copiamo e incolliamo quelli già presenti (ad esempio copiamo quello del "HelpIntentHandler" e modifichiamolo secondo gli intent da noi specificati nella scheda "Build". Io ho attivato la funzione ask che chiederà all'utente se vuole sapere altri dati. Se l'utente non risponderà la skill terminerà

16. Aggiungi "intenthandler" a fondo pagina con gli altri "SkillBuilder"


17. Ho incollato il codice python dello script modificato cancellando i print (trovate il codice su github Pymay73) e l'ho modificando alleggerendolo un poco

18. Ho completato il file "requirements.txt" inserendo solo pandas perché ho scoperto che le altre librerie da me usate nel codice python erano già nativamente incluse nel lambda function. Per tutte le librerie non nativamente incluse nel lambda dovrete popolare il file "requirements.txt". Per conoscere la lista delle librerie nativamente incluse potete vedere qui

19. Testiamo il codice sulla scheda "Test"

20. Per effettuare modifiche torniamo alla scheda "Code" e "Build" se le modifiche riguardano gli Intent, gli Slot o la parola di invocazione.

Quando cambierete la scheda da "Test" a "Code" ad esempio riceverete molto spesso il messaggio "Scheduled Manteinance" e dovrete attendere circa un minuto prima di rifreshare la pagina e poter riprendere con le modifiche al codice. Purtroppo è da parecchio che riscontro questo bug nel sito dei devoloper amazon. Quindi dovrete avere pazienza.

Questi sono gli step principali. Se avete dubbi potete consultare il codice sorgente sulla mia pagina github Pymay73

Essendo una prima versione potrebbe non funzionare sempre a dovere e accetto consigli in caso di scoperta di bug.

 

 

Nessun commento:

Posta un commento