Πίνακας περιεχομένων:
- Βήμα 1: Ορίστε τα δικαιώματα του Λογαριασμού σας Google
- Βήμα 2: Δημιουργήστε τη δράση σας
- Βήμα 3: Επίκληση δράσης
- Βήμα 4: Προσθέστε την πρώτη σας ενέργεια
- Βήμα 5: Εκπαιδευτικές φράσεις για την πρόθεσή σας
- Βήμα 6: Οντότητες
- Βήμα 7: Δράση και παράμετροι
- Βήμα 8: Εκπλήρωση
- Βήμα 9: Πρόθεση καλωσορίσματος
- Βήμα 10: Η υπηρεσία Web Python
- Βήμα 11: Δοκιμάστε τη δράση σας
- Βήμα 12: Αφήστε τη δράση σας
Βίντεο: Δημιουργία προσαρμοσμένων ενεργειών για τον Βοηθό Google: 12 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Βλέποντας τις δυνατότητες του Google Assistant όπως παρουσιάστηκε στο Google I/O 18 καθώς και της Volvo Cars στο σύστημα ψυχαγωγίας τους, δεν άντεξα να το δοκιμάσω. Επαναχρησιμοποίησα ένα από τα παλαιότερα έργα μου, το VasttraPi και το διασύνδεσα με τον Βοηθό Google. Αν θέλετε να διαβάσετε περισσότερα για το έργο, θα χαρώ πολύ αν ρίξετε μια ματιά στο σχετικό άρθρο στο ιστολόγιό μου: Προσαρμοσμένες ενέργειες για τον Βοηθό Google.
Σε αυτό το Instructable, περνάμε τα απαραίτητα βήματα για να ξεκινήσουμε τη δική σας Δράση του Βοηθού Google, η οποία θα επικοινωνεί με τον διακομιστή σας και θα επικοινωνεί μαζί σας, αναφέροντας τις επερχόμενες αναχωρήσεις. Λάβετε υπόψη ότι δεν πρόκειται να χρησιμοποιήσουμε το SDK, καθώς το χρησιμοποιούμε πλήρως στο Google Assistant και όχι στη δική μας συσκευή. Συνολικά θα παραμείνει απλό. Η ενέργειά σας θα μπορεί να χρησιμοποιηθεί σε συσκευές που υποστηρίζουν τον Βοηθό Google, όπως τηλέφωνα, tablet, οικιακούς βοηθούς και φορετά και μπορείτε ακόμη και να το μοιραστείτε όπως θα κάνατε με μια εφαρμογή στο Play Store!
Ένα από τα κύρια πλεονεκτήματα της δημιουργίας ενός τέτοιου σε σχέση με τη χρήση υπηρεσιών όπως το IFTTT είναι ότι μπορείτε να δημιουργήσετε προσαρμοσμένες απαντήσεις στον διακομιστή σας, τις οποίες θα διαβάσει ο Βοηθός Google. Στο IFTTT η επικοινωνία είναι όσο αφορά εμένα μονόδρομος.
Θα καλυφθούν τα ακόλουθα θέματα:
- Δημιουργώντας το πρώτο σας έργο δράσης
- Δημιουργώντας την προσαρμοσμένη σας πρόθεση
- Δημιουργία της προσαρμοσμένης οντότητάς σας
- Ρύθμιση webhook για την εκπλήρωση της ενέργειας σας
- Ρύθμιση ενός απλού διακομιστή REST, γραμμένου σε Python με Flask, ο οποίος θα παρέχει τις απαντήσεις ή την "εκπλήρωση"
- Δοκιμάζοντας το έργο δράσης σας
- Απελευθέρωση του έργου δράσης σας
Εδώ δεν θα βρείτε πολλές λεπτομέρειες ή θεωρία σχετικά με τις διάφορες λειτουργίες και έννοιες του Βοηθού Google. Αν σας ενδιαφέρουν, σας προτείνω να ακολουθήσετε το επίσημο σεμινάριο ή να δείτε αυτό το βίντεο.
Βήμα 1: Ορίστε τα δικαιώματα του Λογαριασμού σας Google
Πριν ξεκινήσουμε, πρέπει να διασφαλίσουμε ότι ο Βοηθός Google διαθέτει τα κατάλληλα δικαιώματα.
- Μεταβείτε στα Στοιχεία ελέγχου δραστηριότητας
-
Βεβαιωθείτε ότι είναι ενεργοποιημένα τα ακόλουθα:
- Δραστηριότητα ιστού και εφαρμογών
- Πληροφορίες συσκευής
- Δραστηριότητα φωνής και ήχου
Βήμα 2: Δημιουργήστε τη δράση σας
- Μεταβείτε στην Κονσόλα ενεργειών και κάντε κλικ στο "Προσθήκη/εισαγωγή έργου"
- Ας ονομάσουμε αυτό το έργο Actions "local-traffic-planner".
- Κάντε κλικ στο "Δημιουργία έργου".
- Στην επόμενη σελίδα, μην επιλέξετε μια κατηγορία και κάντε κλικ στο "Παράλειψη".
- Θα πρέπει να βρίσκεστε στην κύρια σελίδα Actions Console τώρα.
Βήμα 3: Επίκληση δράσης
Καθορίστε πώς θέλετε να ενεργοποιήσετε τον Βοηθό Google για να ξεκινήσει η δράση σας.
- Κάντε κλικ στο "Αποφασίστε πώς γίνεται επίκληση της ενέργειας σας" στην ενότητα "Γρήγορη ρύθμιση".
- Ονομάστε το "Ο τοπικός προγραμματιστής κυκλοφορίας μου" και κάντε κλικ στο "Αποθήκευση".
-
Κάντε κλικ στην ερώτηση "ΕΝΗΜΕΡΩΣΗ ΚΛΗΣΕΩΝ ΔΕΙΓΜΑΤΟΣ" που εμφανίστηκε αφού κάνετε κλικ στην αποθήκευση.
Μπορείτε επίσης να βρείτε αυτήν την επιλογή στην ενότητα "Πληροφορίες καταλόγου"
- Προσθέστε το "Ask My local planner traffic" ως νέα επίκληση και κάντε κλικ στο "Save".
Βήμα 4: Προσθέστε την πρώτη σας ενέργεια
- Κάντε κλικ στο "Ενέργειες" στην αριστερή γραμμή.
- Κάντε κλικ στο "ΠΡΟΣΘΗΚΗ ΤΗΣ ΠΡΩΤΗΣ ΣΑΣ ΔΡΑΣΗΣ".
- Επιλέξτε "Προσαρμοσμένη πρόθεση" και, στη συνέχεια, κάντε κλικ στο "Δημιουργία".
- Θα μεταφερθείτε στη σελίδα Dialogflow, όπου θα εφαρμόσετε την κύρια λογική.
Βήμα 5: Εκπαιδευτικές φράσεις για την πρόθεσή σας
- Επιλέξτε τη ζώνη ώρας και κάντε κλικ στο "Δημιουργία".
- Στην επόμενη σελίδα, αφήστε τις υπάρχουσες προθέσεις και κάντε κλικ στο "ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΘΕΣΗΣ".
- Δώστε στην πρόθεση ένα λογικό όνομα, δηλαδή "αναχωρήσεις".
- Μεταβείτε στην ενότητα "Φράσεις εκπαίδευσης" και κάντε κλικ στην επιλογή "Προσθήκη φράσεων εκπαίδευσης".
-
Χρησιμοποιήστε τις παρακάτω φράσεις για να εκπαιδεύσετε το μοντέλο σας ώστε να μπορεί να ερμηνεύσει αυτό που του λέτε:
- Είμαι στο σπίτι αυτή τη στιγμή
- Προς το παρόν είμαι σπίτι
- Είμαι στο διαμέρισμά μας αυτή τη στιγμή
- Κάθομαι σπίτι
- Αυτή τη στιγμή είμαι κοντά στη δουλειά
- είμαι στη δουλειά
- Είμαι στο γραφείο
- Εργασία
- Σπίτι
Βήμα 6: Οντότητες
Τώρα έχετε καθορίσει τι πρέπει να είναι περισσότερο ή λιγότερο αναμενόμενο ως είσοδος, πρέπει να καθορίσουμε ποια τμήματα της εισόδου ενδιαφέρουν την επιχειρηματική μας λογική, ώστε να μπορούν να εξαχθούν και να επισημανθούν στον διακομιστή μας. Στην περίπτωσή μας, θέλουμε να μάθουμε αν ο χρήστης είναι στο σπίτι ή στη δουλειά, ώστε να μπορούμε να ανταποκριθούμε με τις αναχωρήσεις από τον συγκεκριμένο σταθμό. Ας δούμε πώς μπορούμε να το κάνουμε αυτό.
- Εάν κάνετε διπλό κλικ σε μία ή περισσότερες λέξεις των φράσεων εκπαίδευσης, θα λάβετε μια λίστα προκαθορισμένων οντοτήτων. Μπορείτε να διαβάσετε περισσότερα για κάθε μία από αυτές εδώ. Συνολικά, το πιο κατάλληλο θα ήταν το @sys.location, ωστόσο νομίζω ότι είναι το καλύτερο και ευκολότερο αν δημιουργήσουμε τη δική μας οντότητα την οποία θα πρέπει να ονομάσουμε @current-location.
- Κάντε κλικ στην επιλογή "Οντότητες" στην αριστερή πλευρά.
- Κάντε κλικ στο "CREATE ENTITY".
-
Ορίστε το όνομα σε "τρέχουσα τοποθεσία" και ορίστε δύο τιμές αναφοράς μαζί με τα συνώνυμα τους:
-
Σπίτι
σπίτι, σπίτι, διαμέρισμα, κούνια
-
εργασία
εργασία, γραφείο, Aptiv, ορυχεία κώδικα (lol just kidding)
-
- Κάντε κλικ στο "Αποθήκευση. Για επιπλέον εφέ, μπορείτε επίσης να κάνετε κλικ στο" Να επιτρέπεται η αυτοματοποιημένη επέκταση "για να δώσετε στον Βοηθό Google περισσότερες ελευθερίες να προσπαθήσουν να αντιστοιχίσουν περισσότερα συνώνυμα με τις τιμές αναφοράς σας.
Βήμα 7: Δράση και παράμετροι
Timeρα να δώσετε λίγο νόημα στις λέξεις -κλειδιά μέσα στις φράσεις κατάρτισης.
- Κάντε κλικ στο "Προθέσεις" και, στη συνέχεια, μεταβείτε στην προσαρμοσμένη πρόθεσή σας, δηλαδή "αναχωρήσεις" εάν ακολουθήσατε τις προτάσεις του ονόματός μου.
- Κάντε κύλιση προς τα κάτω στην ενότητα "Φράσεις εκπαίδευσης".
- Κάντε διπλό κλικ στις λέξεις που υποδεικνύουν την τρέχουσα τοποθεσία σας και επιλέξτε την ετικέτα @current-location από το αναδυόμενο παράθυρο.
- Κάντε κύλιση προς τα κάτω στο "Ενέργειες και παράμετροι", κάντε κλικ στο "διαχείριση"
- Εάν όλα έγιναν σωστά, θα δείτε τη νέα σας οντότητα να αναφέρεται εκεί.
- Επιλέξτε το πλαίσιο "Απαιτείται", το οποίο κάνει μια νέα στήλη, "Προτροπές". Οι προτροπές είναι αυτό που θα ακούσει ο χρήστης εάν δεν έχει παρέχεται τίποτα που να ταιριάζει με τις προσδοκίες.
- Κάντε κλικ στο "Ορισμός προτροπών" και εισαγάγετε κάτι όπως "Δεν κατάλαβα την τοποθεσία σας. Πού βρίσκεστε αυτήν τη στιγμή;".
Βήμα 8: Εκπλήρωση
Τώρα ήρθε η ώρα να συνδέσετε την υπηρεσία ιστού σας με τη δράση του Βοηθού Google. Το άγκιστρό σας θα κληθεί όταν ενεργοποιηθεί αυτή η συγκεκριμένη πρόθεση και θα πρέπει να παράγει την εκπλήρωση αυτής της ενέργειας. Πριν από αυτό, θέλουμε επίσης να θέσουμε την πρόθεσή μας να ολοκληρώσουμε τη δράση αφού εκπληρωθούμε.
- Μεταβείτε στις "Απαντήσεις" και κάντε κλικ στο "ΠΡΟΣΘΗΚΗ ΑΠΑΝΤΗΣΗΣ".
- Μην προσθέσετε απαντήσεις, απλώς ενεργοποιήστε το "Ορίστε αυτήν την πρόθεση ως τέλος συνομιλίας".
- Κάντε κύλιση προς τα κάτω στο "Fulfillment" κάντε κλικ στο "ENABLE FULFILLMENT" και, στη συνέχεια, ενεργοποιήστε το "Enable webhook call for this purpose".
- Κάντε κλικ στην επιλογή "Αποθήκευση" και, στη συνέχεια, μεταβείτε στην επιλογή "Εκτέλεση" στην αριστερή πλευρά.
-
Ενεργοποιήστε την επιλογή "Webhook" και εισαγάγετε τη διεύθυνση URL που "ακούγεται" από τον διακομιστή ιστού σας.
Κάθε φορά που ενεργοποιείται η πρόθεση, θα στείλει ένα αίτημα POST στον ιστότοπό σας με το σώμα του αιτήματος που περιέχει ένα αντικείμενο JSON με την τρέχουσα τοποθεσία του χρήστη
- Κάντε κλικ στην επιλογή Αποθήκευση.
- Τώρα είμαστε έτοιμοι να δημιουργήσουμε την υπηρεσία web, αλλά πριν από αυτό, ας βεβαιωθούμε ότι η Δράση μας μας καλωσορίζει με τον κατάλληλο τρόπο.
Βήμα 9: Πρόθεση καλωσορίσματος
Για να προσαρμόσουμε την εμπειρία χρήστη, θα πρέπει να δημιουργούμε έναν κατάλληλο χαιρετισμό για εμάς κάθε φορά που ενεργοποιούμε τη δράση μας.
- Μεταβείτε στην επιλογή "Προθέσεις" και, στη συνέχεια, κάντε κλικ στην επιλογή "Προεπιλεγμένη πρόθεση καλωσορίσματος".
- Πραγματοποιήστε κύλιση προς τα κάτω στις "Απαντήσεις", αφαιρέστε τις υπάρχουσες και εισαγάγετε τι θέλετε η δράση σας πώς να σας καλωσορίσει μόλις ξεκινήσει.
- Κάντε κλικ στην επιλογή "Αποθήκευση".
Βήμα 10: Η υπηρεσία Web Python
Ας κάνουμε έναν γρήγορο και βρώμικο διακομιστή Python χρησιμοποιώντας το Flask. Δεν υπάρχουν στιγμιότυπα οθόνης για αυτό το βήμα, αλλά θα πρέπει να είναι αρκετά ευθεία.
- Ανοίξτε μια νέα καρτέλα και δημιουργήστε έναν λογαριασμό στο pythonanywhere.com
- Επαληθεύστε το email σας.
- Ρυθμίστε την εφαρμογή ιστού κάνοντας κλικ στο "Άνοιγμα καρτέλας ιστού".
- Κάντε κλικ στο "Προσθήκη νέας διαδικτυακής εφαρμογής" και επιλέξτε "Flask" ως πλαίσιο ιστού Python.
- Επιλέξτε Python 3.6 και κάντε κλικ στο "Επόμενο".
- Επιλέξτε τη διαδρομή στην οποία θέλετε να βρίσκεται το "flask_app.py". Το τοποθέτησα απευθείας στον αρχικό μου φάκελο ως "/home/your-username/flask_app.py".
- Επιστρέψτε στην κύρια σελίδα κάνοντας κλικ στο λογότυπο Python στην επάνω αριστερή γωνία.
- Κάτω από αρχεία, κάντε κλικ στο "flask_app.py" για να ξεκινήσετε την επεξεργασία του.
- Όταν ανοίξει ο επεξεργαστής κειμένου ιστού, επικολλήστε τον ακόλουθο κώδικα και κάντε κλικ στην επιλογή "Αποθήκευση". Η γενική ιδέα είναι ότι, ανάλογα με την ανάλυση JSON που προέρχεται από το Google Asssistant, ο διακομιστής μας θα εκτελέσει μια ενέργεια (π.χ. ανάγνωση ή εγγραφή) και θα την αναφέρει ως απάντηση /εκπλήρωση που πρέπει να διαβαστεί στον χρήστη.
- Κάντε κλικ στο "Άνοιγμα καρτέλας ιστού" ξανά και, στη συνέχεια, στο πράσινο "Κουμπί επαναφόρτωσης".
- Μέχρι τώρα θα πρέπει να έχετε τον δικό σας Python web server που λειτουργεί στη διεύθυνση "https://your-username.pythonanywhere.com/departures".
Βήμα 11: Δοκιμάστε τη δράση σας
Εντάξει, έχετε τελειώσει πολύ μέχρι τώρα. Ας δοκιμάσουμε τώρα ολόκληρη τη στοίβα και να δουλέψουμε αυτό το παράδειγμα "Hello world"!
- Κάντε κλικ στο "Ενσωματώσεις" από την αριστερή μπάρα.
- Κάντε κλικ στην επιλογή "Ρυθμίσεις ενσωμάτωσης" στην επιλογή Βοηθός Google.
- Στην ενότητα "Σιωπηρή επίκληση προσθέστε το όνομα της πρόθεσής σας, δηλ." Αναχωρήσεις ", ώστε να ενεργοποιηθεί άμεσα λέγοντας κάτι σαν" Hey Google, talk to my local planner traffic about αναχωρήσεις από το σπίτι ".
- Ενεργοποιήστε τις αλλαγές "Αυτόματη προεπισκόπηση".
- Κάντε κλικ στο "Test" το οποίο θα ανοίξει μια νέα σελίδα.
- Πληκτρολογήστε "Talk to My local planner traffic".
- Η ενέργειά σας πρέπει να επικαλεστεί, η οποία θα πρέπει να σας χαιρετά με μία από τις προηγουμένως καθορισμένες απαντήσεις καλής υποδοχής.
- Στη συνέχεια, πληκτρολογήστε "Είμαι στη δουλειά". Θα πρέπει να επικοινωνήσετε με τον διακομιστή Python και η απάντηση θα διαβαστεί από τον Βοηθό Google.
Δροσερό δεν είναι; Τώρα φανταστείτε τι μπορείτε να κάνετε όταν αλληλεπιδράτε με αισθητήρες, ενεργοποιητές και άλλα API μέσω του Βοηθού Google.
Βήμα 12: Αφήστε τη δράση σας
Αφού τελειώσετε τη δοκιμή της Δράσης σας και είναι σε καλή κατάσταση, ήρθε η ώρα να μοιραστείτε την αγάπη με τον κόσμο ή, αν αυτό δεν έχει νόημα, με τους φίλους και την οικογένειά σας.
- Επιστρέψτε στην κονσόλα Actions και επιλέξτε την τοπική δράση σχεδιασμού επισκεψιμότητας.
- Στην ενότητα "Ετοιμαστείτε για ανάπτυξη" κάντε κλικ στο "Εισαγάγετε πληροφορίες που απαιτούνται για την καταχώριση της ενέργειας σας στον κατάλογο ενεργειών".
- Εισαγάγετε μια σύντομη περιγραφή, μια μακρύτερη περιγραφή, ένα μικρό λογότυπο, τα στοιχεία επικοινωνίας σας, έναν σύνδεσμο πολιτικής απορρήτου (εάν δεν πρόκειται να το κοινοποιήσετε δημόσια, απλώς τοποθετήστε έναν σύνδεσμο στον ιστότοπό σας ή κάτι τέτοιο) και μια κατηγορία.
- Μετακινηθείτε προς τα πάνω και κάντε κλικ στο "Αποθήκευση".
- Κάντε κλικ στην επιλογή "Αποδέσμευση" από την αριστερή μπάρα.
- Εδώ μπορείτε να επιλέξετε σε ποια κατάσταση βρίσκεται η δράση σας. Εάν δεν θέλετε να ακούσετε την απάντηση "Ας πάρουμε τη δοκιμαστική έκδοση του τοπικού μου σχεδιασμού κυκλοφορίας", πρέπει να κάνετε μια πλήρη δημόσια κυκλοφορία. Ωστόσο, αυτό απαιτεί έλεγχο από την Google και δεν θα καλυφθεί σε αυτό το σεμινάριο. Αντ 'αυτού, μπορείτε να το μοιραστείτε με έως και 20 άτομα επιλέγοντας μια έκδοση Alpha και προσθέτοντάς τα ως δοκιμαστές Alpha.
- Προσθέστε τυχόν δοκιμαστές άλφα είτε στέλνοντάς τους έναν σύνδεσμο είτε προσθέτοντας τα email τους.
- Κάντε κλικ στο "ΥΠΟΒΟΛΗ ΓΙΑ ALPHA", σημειώστε τα πλαίσια, κάντε κλικ στην επιλογή "ΥΠΟΒΟΛΗ" και τελειώσατε!
Τώρα η δράση σας είναι ζωντανή και μπορείτε να έχετε πρόσβαση σε εσάς και τους φίλους σας. Καλα να περνατε!
Εάν ενδιαφέρεστε για τον κώδικα που χρησιμοποίησα, ρίξτε μια ματιά στο έργο στο GitHub.
Συνιστάται:
Έλεγχος LED βασισμένος στον Βοηθό Google χρησιμοποιώντας Raspberry Pi: 3 βήματα
Έλεγχος LED βάσει Βοηθού Google χρησιμοποιώντας Raspberry Pi: Γεια! Σε αυτό το έργο, θα εφαρμόσουμε τον έλεγχο του LED με Βοηθό Google χρησιμοποιώντας Raspberry Pi 4 χρησιμοποιώντας HTTP σε Python. Μπορείτε να αντικαταστήσετε το LED με έναν λαμπτήρα (προφανώς όχι κυριολεκτικά, θα χρειαστείτε μια μονάδα ρελέ ενδιάμεσα) ή οποιοδήποτε άλλο σπίτι
Δημιουργία ειδοποιήσεων μέσω ηλεκτρονικού ταχυδρομείου για τον αισθητήρα ασύρματης θερμοκρασίας και υγρασίας NCD με χρήση του Κόμβου-Κόκκινου: 22 Βήματα
Δημιουργία ειδοποιήσεων μέσω ηλεκτρονικού ταχυδρομείου για τον αισθητήρα ασύρματης θερμοκρασίας και υγρασίας NCD χρησιμοποιώντας το Node-Red: Χρησιμοποιούμε εδώ τον αισθητήρα θερμοκρασίας και υγρασίας του NCD, αλλά τα βήματα παραμένουν ίσα για οποιοδήποτε προϊόν ncd, οπότε αν έχετε άλλους ασύρματους αισθητήρες ncd, δοκιμάστε δωρεάν παρατηρήστε παράλληλα. Με τη διακοπή αυτού του κειμένου, πρέπει να
Arduino IDE: Δημιουργία προσαρμοσμένων πινάκων: 10 βήματα
Arduino IDE: Δημιουργία προσαρμοσμένων πινάκων: Τους τελευταίους έξι μήνες έχω περάσει πολύ χρόνο μεταφέροντας διαφορετικές βιβλιοθήκες στον πίνακα Robo HAT MM1 που αναπτύχθηκε από τους Robotics Masters. Αυτό οδήγησε στην ανακάλυψη πολλών για αυτές τις βιβλιοθήκες, πώς λειτουργούν στα παρασκήνια και το σημαντικότερο
Μετατρέψτε το ενσύρματο κουδούνι σας σε έξυπνο κουδούνι με βοηθό σπιτιού: 6 βήματα
Μετατρέψτε το ενσύρματο κουδούνι σε έξυπνο κουδούνι με βοηθό σπιτιού: Μετατρέψτε το υπάρχον ενσύρματο κουδούνι σε έξυπνο κουδούνι. Λάβετε μια ειδοποίηση στο τηλέφωνό σας ή ζευγαρώστε με την υπάρχουσα κάμερα της μπροστινής πόρτας για να λάβετε ειδοποίηση φωτογραφίας ή βίντεο κάθε φορά που κάποιος σας χτυπά το κουδούνι. Μάθετε περισσότερα στη διεύθυνση: fireflyelectronix.com/pro
Ο τρομερός ιός αμοιβάδας χρησιμοποιώντας δέσμη ενεργειών: 3 βήματα
The Dreaded Amoeba Virus Using Batch Script: Εάν ενδιαφέρεστε για κωδικοποίηση ή δέσμες ενεργειών, δείτε το τελευταίο Ible εδώ. Έμαθα για το protista στην τάξη Bio. Πρέπει να κυνηγήσουμε ζωντανές αμοιβάδες κάτω από ένα μικροσκόπιο. Δεν χρησιμοποιείται πολύ στη ζωή, αλλά μου έδωσε μια ιδέα για το πώς να ονομάσω το τελευταίο μου v