Δεδομενα

Τι έμαθα δημιουργώντας ένα advanced data dashboard με vibe coding 

Μειώνει σημαντικά τον όγκο της κοπιαστικής εργασίας που απαιτεί ο καθαρισμός δεδομένων και η ανάπτυξη ιστοσελίδων, αλλά το μάτι ενός επιμελητή – και κάποιες δεξιότητες μηχανικού λογισμικού – παραμένουν απαραίτητα προκειμένου να προετοιμαστεί η δημοσίευση. 

Αυτό το άρθρο δημοσιεύθηκε αρχικά στο blog «Generative AI in the Newsroom» και αναδημοσιεύεται εδώ από το iMEdD κατόπιν άδειας. Οποιαδήποτε άδεια αναδημοσίευσης υπόκειται στην έγκριση του αρχικού εκδότη. Διαβάστε το αρχικό άρθρο εδώ.

Μεταφραση: Εβίτα Λύκου
Κεντρική εικόνα: Shutterstock, Ευγένιος Καλοφωλιάς

Δεδομενα

Τα δέκα πρότζεκτ δημοσιογραφίας δεδομένων που κέρδισαν τα βραβεία Sigma 2026

Δέκα εξαιρετικά δημοσιογραφικά πρότζεκτ βασισμένα σε δεδομένα, από ισάριθμες χώρες, διακρίθηκαν μεταξύ των 31 φιναλίστ –26 μεμονωμένα έργα και πέντε «portfolio»– από μια ετερόκλητη Επιτροπή Βραβείων, αποτελούμενη από 17 μέλη.

Αφιέρωσα μία εβδομάδα στη δημιουργία ενός πίνακα ελέγχου (dashboard) για την οπτικοποίηση και την ανάλυση δεδομένων της Εθνικής Δημογραφικής και Υγειονομικής Έρευνας (NDHS) των Φιλιππίνων το 2025, μιας έκθεσης που εκδίδεται κάθε τρία χρόνια και καταγράφει τους βασικούς δείκτες στους τομείς της υγείας, της γονιμότητας, της πληθυσμιακής σύνθεσης και των πολιτισμικών αντιλήψεων. Η έρευνα, η οποία δημοσιεύθηκε από τη Στατιστική Υπηρεσία των Φιλιππίνων (PSA) στα τέλη Μαρτίου, περιέχει πολύτιμα δεδομένα όχι μόνο για τους δημοσιογράφους, αλλά και για τους υπεύθυνους χάραξης πολιτικής, και τους πολίτες.

Dashboard οπτικοποίησης και ανάλυσης δεδομένων για την Εθνική Δημογραφική και Υγειονομική Έρευνα των Φιλιππίνων το 2025

Ωστόσο, περισσότερο από έναν μήνα μετά τη δημοσίευσή της, τα περισσότερα ειδησεογραφικά δημοσιεύματα σχετικά με την έκθεση επικεντρώνονται σε ένα μόνο στοιχείο των δεδομένων: τον συνολικό δείκτη γονιμότητας των Φιλιππίνων, ο οποίος έχει πέσει στο 1,7, δηλαδή κάτω από το επίπεδο αναπλήρωσης του πληθυσμού. Αν και αυτό είναι ένα μεγάλο θέμα εθνικής σημασίας, η έρευνα περιείχε πολλά άλλα πολύτιμα και ενδιαφέροντα στοιχεία σχετικά με τη γονιμότητα, τη φροντίδα των νέων μητέρων, την αντισύλληψη, τη βρεφική θνησιμότητα, τους εμβολιασμούς, την πειθαρχία και την τιμωρία [των παιδιών], την ανάπτυξη στην πρώιμη παιδική ηλικία, καθώς και την ενδοοικογενειακή βία. Τα δεδομένα της έρευνας μπορούν να αναλυθούν περαιτέρω, προκειμένου να αντληθούν πληροφορίες που θα ήταν χρήσιμες για δημοσιογράφους, υπεύθυνους χάραξης πολιτικής και εκπροσώπους της κοινωνίας των πολιτών σε διάφορους τομείς και πεδία.

Με αυτό το πρότζεκτ, ευελπιστώ να καταστήσω τα δεδομένα πιο προσιτά στο κοινό μέσω χαρτών, γραφημάτων, αλλά και αναλύσεων που παράγονται από τεχνητή νοημοσύνη, ώστε οι χρήστες να μπορούν να τα ανακαλύψουν πιο διεξοδικά. Αυτά είναι τα συμπεράσματα που έβγαλα μετά από μία εβδομάδα vibe coding για τη δημιουργία του dashboard.

Μπορείς να δημιουργήσεις τα βασικά στοιχεία ακόμα και αν δεν ξέρεις από πού να ξεκινήσεις, αλλά χρειάζεσαι πολλή υπομονή

Ένας αναλυτικός (drill down) χάρτης των Φιλιππίνων με έναν πίνακα δεδομένων που έχει δημιουργηθεί με vibe coding.

Όταν ξεκίνησα αυτήν τη διαδικασία, δεν είχα σκοπό να δημιουργήσω ένα dashboard για την NDHS. Ήθελα μόνο να δοκιμάσω να χρησιμοποιήσω έναν πράκτορα προγραμματισμού (coding agent, ένα αυτόνομο εργαλείο τεχνητής νοημοσύνης) για να φτιάξω πολύ ευπαρουσίαστους χάρτες.

Ο Φιλιππινέζος προγραμματιστής Τζέιμς Φέλντον (James Faeldon) διατηρεί στο Github ένα αποθετήριο χαρτών των διοικητικών ορίων των Φιλιππίνων, το οποίο επιτρέπει σε οποιονδήποτε να κατασκευάσει χάρτες στους οποίους ο χρήστης μπορεί ψάχνοντας σε βάθος να ανατρέξει από το περιφερειακό στο επαρχιακό επίπεδο, στην πόλη/δήμο, μέχρι και στα χωριά (barangay), τη μικρότερη διοικητική μονάδα της χώρας. Ήθελα να χρησιμοποιήσω τη δουλειά του για το έργο μου, αλλά δεν είχα τις προγραμματιστικές γνώσεις για να το συνθέσω, μέχρι που πρώτοεμφανίστηκαν οι coding agents.

Δουλεύοντας με τον Claude Code για τον σχεδιασμό του έργου, του έδωσα απλώς τη διεύθυνση του αποθετηρίου και περιέγραψα τη ζητούμενη λειτουργία: έπρεπε να φορτώσει ολόκληρο τον χάρτη των Φιλιππίνων χωρισμένο σε περιφέρειες. Κάνοντας κλικ σε μια περιφέρεια θα εμφανίζονταν οι επαρχίες της, και κάνοντας κλικ στις επαρχίες θα εμφανίζονταν οι πόλεις και οι δήμοι της εν λόγω επαρχίας. Ήθελα επίσης σε κάθε επίπεδο να εμφανίζεται ένας πίνακας δεδομένων.

Η διαδικασία άρχισε εντυπωσιακά, με τον Claude Code να διαβάζει τα αρχεία από το αποθετήριο Github και να κατασκευάζει έναν ιστότοπο παρόμοιο με αυτόν που είχα στο μυαλό μου μέσα σε περίπου μία ώρα.

Ένας χάρτης της επαρχίας Ιλόιλο στις Φιλιππίνες, δημιουργημένος με vibe coding, με το Ιλόιλο Σίτι απομακρυσμένο από την υπόλοιπη επαρχεία.

Ακόμα κι έτσι, όμως, ξόδεψα μία ολόκληρη μέρα προσπαθώντας να το φτιάξω ακριβώς όπως ήθελα. Τα ζητήματα που αντιμετώπισα έμοιαζαν ήσσονος σημασίας, αλλά απαιτούσαν γνώση του τρόπου με τον οποίο είναι δομημένη η τοπική αυτοδιοίκηση στις Φιλιππίνες. Για παράδειγμα, υπάρχουν πόλεις που ταξινομούνται ως Εξαιρετικά Αστικοποιημένες Πόλεις (Highly Urbanized Cities, HUCs), οι οποίες γεωγραφικά ανήκουν σε επαρχίες αλλά είναι ανεξάρτητες από την επαρχιακή αυτοδιοίκηση. Για παράδειγμα, το Ιλόιλο Σίτι δεν αποτελεί διοικητικό μέρος της επαρχίας Ιλόιλο, παρόλο που γεωγραφικά ανήκει στην επαρχία. Πρακτικά, αυτό σήμαινε ότι σε πρώτη φάση ο χάρτης της επαρχίας Ιλόιλο απεικονίστηκε χωρίς το Ιλόιλο Σίτι, κάτι που μπορεί να είναι λογικό για τους πολιτικούς, αλλά δεν είναι λογικό για τους χρήστες.

Ακόμα και αφού έδωσα στον Claude Code μια λίστα με τις HUCs, δυσκολεύτηκε να αποδώσει σωστά τους χάρτες. Κάθε φορά σχεδίαζε τις πόλεις στη θάλασσα, μακριά από την υπόλοιπη επαρχία. Άλλες φορές, απεικόνιζε τις πόλεις στον χάρτη σαν αταίριαστα κομμάτια ενός παζλ.

Ένας χάρτης της επαρχίας Παμπάνγκα στις Φιλιππίνες, δημιουργημένος με vibe coding, με την πόλη Άντζελες να προεξέχει.

Η διαδικασία της διόρθωσης χαρακτηρίστηκε από πολλά μπρος πίσω με τον Claude Code, καθώς εκείνος προσπαθούσε να διορθώσει τα σφάλματα που είχα εντοπίσει. Αρκετές φορές, έφτασα στο όριο χρήσης του λογαριασμού μου, με αποτέλεσμα να υποχρεώνομαι να διακόψω για να συνεχίσω μετά την ανανέωση του ορίου.

Αυτή η εμπειρία της συνεργασίας με έναν coding agent μού θύμισε εκείνο το παλιό ανέκδοτο των προγραμματιστών: «Το πρώτο 90 τοις εκατό του κώδικα αντιπροσωπεύει το πρώτο 90 τοις εκατό του χρόνου ανάπτυξης. Το υπόλοιπο 10 τοις εκατό του κώδικα αντιπροσωπεύει το υπόλοιπο 90 τοις εκατό του χρόνου ανάπτυξης». Αυτό αποδείχθηκε αληθινό πολλές φορές καθ’ όλη τη διάρκεια του πρότζεκτ.

Τελικά, όμως, τα κατάφερα να φτιάξω χάρτες που φαίνονταν ικανοποιητικοί, αν και όχι ακριβώς τέλειοι. Συνειδητοποιώντας ότι τόσο εγώ όσο και άλλοι θα μπορούσαμε να χρησιμοποιήσουμε αυτό το έργο ως δομική μονάδα για άλλα έργα οπτικοποίησης δεδομένων, ζήτησα από τον Claude να το ανεβάσει στο Github. Ακολουθεί μια επίδειξη λειτουργίας.

Ο καθαρισμός και η εξαγωγή δεδομένων με coding agents μοιάζει με μαγεία 

Αφού δημοσίευσα το πρότυπο του αναλυτικού μου χάρτη στο Github, ήθελα να τον δοκιμάσω με διάφορα σύνολα δεδομένων. Ξεκίνησα ένα καινούργιο πρότζεκτ στον Claude Code για να δημιουργήσω έναν ιστότοπο που θα εμφάνιζε διαφορετικούς χωροπληθείς χάρτες (choropleth maps) για διαφορετικά σύνολα δεδομένων στις Φιλιππίνες.

Έψαξα στον ιστότοπο της PSA για να βρω τα διαθέσιμα σύνολα δεδομένων με γεωγραφική ανάλυση. Στις Φιλιππίνες, η λήψη κυβερνητικών δεδομένων σημαίνει ότι πρέπει να περιπλανηθείς σε αργούς ιστότοπους για να κατεβάσεις δεδομένα σε φύλλα Excel – δεν υπάρχουν φανταχτεροί διακομιστές MCP, API ή άλλα αυτοματοποιημένα δίκτυα μεταφοράς δεδομένων εδώ. Η χρήση των δεδομένων για τη δημοσιογραφία και για την παραγωγή οπτικοποιήσεων απαιτεί πολύ καθαρισμό και μετατροπές. Αυτή είναι η πραγματικότητα για πολλές αίθουσες σύνταξης σε ολόκληρο τον κόσμο.

Ξεκίνησα με ένα σύνολο δεδομένων που περιείχε την έκταση της φτώχειας στις Φιλιππίνες. Ως προς τη μορφοποίηση, δεν επρόκειτο για το πιο καθαρό σύνολο δεδομένων, αν και δεν ήταν ούτε και το πιο σύνθετο.

Ένα υπολογιστικό φύλλο Excel που δείχνει το όριο φτώχειας στις Φιλιππίνες. 

Έδωσα εντολή στον Claude Code να εξαγάγει τα δεδομένα και να τα ενσωματώσει στον πρότυπο χάρτη μας. Δεδομένου ότι περιείχε δεδομένα μόνο μέχρι το επίπεδο της επαρχίας, ζήτησα από τον coding agent να απενεργοποιήσει απλώς τη δυνατότητα περαιτέρω εμβάθυνσης σε χαμηλότερο επίπεδο [διοικητικών μονάδων]. 

Ως δια μαγείας δεν χρειάστηκε καμία επίπονη διαδικασία καθαρισμού ή μετατροπής δεδομένων. Μπόρεσε να καταλάβει μέχρι και ότι οι κουκκίδες στο υπολογιστικό φύλλο υποδήλωναν ιεραρχία και εισήγαγε τα δεδομένα ανάλογα. Ένας δειγματοληπτικός έλεγχος των εισαχθέντων δεδομένων στον πίνακα των χαρτών έδειξε, επίσης, ότι όλα τα δεδομένα είχαν εξαχθεί με ακρίβεια. Χρειάστηκα τον Claude Code μόνο για να τροποποιήσω ορισμένα στοιχεία της παρουσίασης. Για παράδειγμα, η Περιφέρεια Εθνικής Πρωτεύουσας (National Capital Region) της χώρας, σε αντίθεση με άλλες περιφέρειες της χώρας, περιλαμβάνει πόλεις και δήμους αντί για επαρχίες, οπότε οι χάρτες πρέπει να αποτυπώνουν αυτό το στοιχείο.

Ένας αναλυτικός χάρτης της έκτασης της φτώχειας στις Φιλιππίνες, βασισμένος σε ένα υπολογιστικό φύλλο της Στατιστικής Αρχής των Φιλιππίνων.

Το δοκίμασα με άλλα σύνολα δεδομένων που μπόρεσα να βρω – ετήσιο οικογενειακό εισόδημα νοικοκυριών, συντελεστής GINI, ακαθάριστο εγχώριο προϊόν ανά περιοχή – και τα χειρίστηκε όλα εξίσου καλά. Ήταν εντυπωσιακό.

Οι πράκτορες προγραμματισμού διευκολύνουν τη στήριξη και την προώθηση νέων ιδεών 

Τότε ήταν που έπεσα πάνω στο σύνολο δεδομένων της NDHS. Σε αντίθεση με τα άλλα υπολογιστικά φύλλα, αυτό ήταν πιο πολύπλοκο, με πολλαπλά φύλλα, καθώς και με άλλους δείκτες πέραν των γεωγραφικών. Ζήτησα από τον Claude Code να εξάγει γεωγραφικά δεδομένα και να δημιουργήσει έναν χάρτη από ένα φύλλο –συνολικό ποσοστό γονιμότητας–, και το έκανε τέλεια.

Ένας πίνακας από την Εθνική Δημογραφική και Υγειονομική Έρευνα του 2025 στις Φιλιππίνες με δεδομένα για την εφηβική εγκυμοσύνη.

Η δημιουργία χαρτών από άλλα φύλλα δεν ήταν τόσο απλή. Για παράδειγμα, ο πίνακας για την εφηβική εγκυμοσύνη είχε πέντε διαφορετικές διαστάσεις. Ζήτησα από τον Claude Code να κατασκευάσει ένα σύστημα καρτελών, για να πλοηγείται ο χρήστης σε αυτές τις διαστάσεις, και το κατάφερε με τη μία. Αφού δημιούργησα άλλους πέντε χάρτες από το σύνολο δεδομένων, συνειδητοποίησα ότι θα μπορούσα να το μετατρέψω σε ξεχωριστό dashboard, εστιάζοντας μόνο στην έρευνα NDHS.

Ξεκίνησα άλλο ένα καινούργιο πρότζεκτ στον Claude Code για το σύνολο δεδομένων της NDHS. Κοιτάζοντας τα δεδομένα της έκθεσης, συνειδητοποίησα ότι το πρότζεκτ θα ήταν πολύ πληρέστερο αν συμπεριλάμβανε και άλλους δείκτες πέρα από χάρτες.

Έτσι του ζήτησα να δημιουργήσει άλλο ένα σύστημα καρτελών, αυτήν τη φορά για να μπορούν οι χρήστες να πλοηγηθούν σε μια σελίδα γραφημάτων που περιέχει τα υπόλοιπα, μη γεωγραφικά δεδομένα. Στη συνέχεια του ζήτησα να εξαγάγει τα μη γεωγραφικά δεδομένα από κάθε φύλλο και να τα μετατρέψει σε γραφήματα.

Δύο γραφήματα που παρουσιάζουν στοιχεία για την εφηβική εγκυμοσύνη από την NDHS, το ένα ραβδόγραμμα και το άλλο lollipop chart.

Ακόμα και για τις σχεδιαστικές επιλογές, ήταν εύκολο να αλλάξω κατεύθυνση. Όταν συνειδητοποίησα ότι ήθελα τα γραφήματα να είναι lollipop chart αντί για ραβδογράμματα, επειδή πίστευα ότι φαίνονταν πιο καθαρά και επειδή, εντάξει, εξυπηρετούσε τις «προθέσεις» μου, χρειάστηκε μόνο μία εντολή για να αλλάξει τα πάντα ο πράκτορας προγραμματισμού. Και μια και λέμε γι’ αυτό….

Πρέπει συνεχώς να παίρνεις αποφάσεις σχετικά με το περιεχόμενο και τη σχεδίαση

Αυτό το άρθρο θα ήταν πολύ πιο σύντομο αν είχα τη δυνατότητα να δώσω ολόκληρο το υπολογιστικό φύλλο στον coding agent και να τον αφήσω να κάνει τα μαγικά του, αλλά στην πραγματικότητα δεν έγινε έτσι. Φυσικά, η εκπαίδευσή μου ως δημοσιογράφος απαιτούσε να ελέγχω αν είχε εισαγάγει τα δεδομένα με ακρίβεια κάθε φορά που δημιουργούσα έναν χάρτη ή ένα γράφημα. 

Όμως, η φύση του συνόλου δεδομένων απαιτούσε, επίσης, τη λήψη αποφάσεων που επηρέαζαν τόσο τον συντακτικό όσο και τον σχεδιαστικό προσανατολισμό του έργου. Για παράδειγμα, τα δεδομένα σχετικά με την αντισύλληψη που προτιμούν οι γυναίκες περιλαμβάνουν 16 διαφορετικές διαστάσεις. Αν τις είχα απλά μεταφέρει στον dashboard, τότε η περιήγηση θα ήταν μια τραγική εμπειρία για τον χρήστη. Έτσι, αποφάσισα να χωρίσω τον συγκεκριμένο πίνακα σε τρεις διαφορετικές ενότητες: μία σελίδα για τη χρήση αντισύλληψης (που δείχνει την κατανομή μεταξύ εκείνων που χρησιμοποιούν οποιαδήποτε μέθοδο, οποιαδήποτε σύγχρονη μέθοδο, οποιαδήποτε παραδοσιακή μέθοδο και εκείνων που δεν χρησιμοποιούν), μία για τη σύγχρονη αντισύλληψη (αναλύοντας τις διάφορες μεθόδους που χρησιμοποιούνται) και μία για την παραδοσιακή αντισύλληψη

Η πρώτη προσπάθεια του coding agent για την παραγωγή ενός waffle chart με βάση τα δεδομένα της NDHS. 
Το σωστό waffle chart που απεικονίζει τις προτιμήσεις των Φιλιππινέζων γυναικών όσον αφορά τις σύγχρονες μεθόδους αντισύλληψης, σύμφωνα με τα στοιχεία της NDHS. 

Επίσης, έπρεπε να βρω έναν κομψό τρόπο να απεικονίσω αυτά τα δεδομένα σε ένα γράφημα – ένα ομαδοποιημένο lollipop chart απλά δεν θα ήταν κατάλληλο για ένα σύνολο δεδομένων με τόσες πολλές διαστάσεις. Αποφάσισα να πειραματιστώ με τη χρήση ενός waffle chart, το οποίο αποδείχθηκε πολύ αποτελεσματικό στην παρουσίαση της κατανομής των δεδομένων σε όλες αυτές τις διαστάσεις, αλλά χρειάστηκε να κάνω αρκετές δοκιμές για να καταφέρω τον coding agent να καταλάβει ακριβώς τι ήθελα.

Χρειάστηκε να λάβω παρόμοιες αποφάσεις σχετικά με την παρουσίαση των δεδομένων για τον εμβολιασμό, τα οποία στο αρχικό σύνολο ήταν όλα συγκεντρωμένα σε ένα φύλλο, αλλά τελικά καταλήξανε σε πέντε διαφορετικές σελίδες στον dashboard.

Αυτές οι σχεδιαστικές επιλογές, καθώς και αυτές που αφορούν το περιεχόμενο, επηρεάζουν τον coding agent και με άλλους τρόπους. Για παράδειγμα, όταν ανέβασα ένα ολόκληρο φύλλο, απλώς πήρε την περιγραφή απευθείας από αυτό το φύλλο. Ωστόσο, όταν χώρισα αυτό το φύλλο σε διαφορετικές σελίδες, ο πράκτορας προγραμματισμού διατύπωσε την καλύτερη δυνατή εικασία του για την περιγραφή των δεδομένων της συγκεκριμένης σελίδας. Εκτός από την αναγκαιότητα ελέγχου της ακρίβειάς του, έπρεπε επίσης να ελέγξω το ύφος και την έκταση, ώστε οι διάφορες περιγραφές των σελίδων να είναι κάπως ομοιόμορφες.

Κατά κύριο λόγο, οι περισσότερες άλλες εργασίες περιλάμβαναν τη διασφάλιση της σωστής λειτουργίας για διάφορα μικροπράγματα. Ως επί το πλείστον, ο πράκτορας προγραμματισμού εισήγαγε τα δεδομένα με ακρίβεια, αλλά μερικές φορές του ξέφευγαν πράγματα όπως οι σημειώσεις στον πίνακα, τις οποίες έπρεπε να εντοπίσω. Έπρεπε να ελέγξω αν τα γραφήματα εμφανίζονταν σωστά σε κινητό τηλέφωνο (στην αρχή δεν εμφανίζονταν σωστά και χρειάστηκε να ζητήσω αρκετές φορές να αυξηθεί το μέγεθός τους μέχρι να μείνω ευχαριστημένος), αν τα lollipop chart βρίσκονταν πολύ κοντά στις ετικέτες των αξόνων και αν οι ετικέτες των δεδομένων βρίσκονταν κοντά στις επικεφαλίδες των lollipop chart. Χρειάστηκε να ζητήσω να προστεθεί ο εθνικός μέσος όρος στα πλαίσια δεδομένων κάθε χάρτη και, αφού έγινε αυτό, να τοποθετηθεί πάνω από τη λίστα κατάταξης των περιφερειών.

Ως πρώην αρχισυντάκτης που στο παρελθόν είχα αναλάβει να διευθύνω μεγάλα πρότζεκτ οπτικοποίησης δεδομένων, η εμπειρία δεν διέφερε πολύ από τη συνεργασία με γραφίστες και προγραμματιστές ιστοσελίδων, στους οποίους έδινα σημειώσεις για να κάνουν ακριβώς αυτό που έπρεπε. Μόνο που αυτήν τη φορά, αφού ήμουν ο μοναδικός άνθρωπος που ασχολούνταν με το έργο, δεν υπήρχε ο κίνδυνος να εξαντλήσω τους συναδέλφους μου με ατελείωτες διορθώσεις και αναθεωρήσεις.

Το vibe coding μπορεί να βοηθήσει μέχρι ένα σημείο, αλλά τελικά πρέπει να σκεφτείς την αρχιτεκτονική

Παρόλο που ισχύει ότι οι ΑΙ coding agents δεν κουράζονται ποτέ, η πίεση εξακολουθεί να ασκείται με τη μορφή των ορίων χρήσης. Λόγω της αστείρευτης ανάγκης μου για διαρκείς αναθεωρήσεις, το όριο χρήσης μου εξαντλούνταν πολύ γρήγορα. Δεδομένου ότι έχω συνδρομή στο Claude Pro και στο ChatGPT Plus, αναρωτήθηκα αν ο ένας πράκτορας προγραμματισμού θα μπορούσε να συνεχίσει από εκεί που σταμάτησε ο άλλος. 

Και όπως αποδείχθηκε, κατά κάποιο τρόπο μπορούσε. Δεν ασχολήθηκα καν με ζητήματα μνήμης – απλά αντέγραψα το τελευταίο CLAUDE.md στο AGENTS.md (και αντίστροφα) και οι coding agents το κατάλαβαν, και εγώ μπόρεσα να συνεχίσω το vibe coding.

Φυσικά, όλα αυτά είναι διασκεδαστικά μέχρι να κοιτάξεις βαθύτερα και να διαπιστώσεις τι χάος έχουν δημιουργήσει οι coding agents. Στην περίπτωσή μου, προσπαθούσα να εντοπίσω ένα σφάλμα όταν ανακάλυψα τον λόγο που οι ενημερώσεις δεν εμφανίζονταν στο περιβάλλον χρήστη: υπήρχαν δύο αποδόσεις χαρτών σε μία από τις σελίδες. Ενώ ο coding agents ενημέρωνε τη μία απόδοση, ο διακομιστής (server) εκτελούσε την άλλη. 

Αυτό ήταν το έναυσμα για να αρχίσω να σκέφτομαι πιο σοβαρά την αρχιτεκτονική του έργου. Δεν ξεκινούσα από το μηδέν, αφού οι agents είχαν ήδη κάνει αρκετή δουλειά. Αφού κατάλαβα τι είχαν κάνει, τυποποίησα τα πάντα σε μια απλή αρχιτεκτονική: 

Επίπεδο παρουσίασης. Ζήτησα από τον Codex να δημιουργήσει κενά, τυποποιημένα πρότυπα για Χάρτες, Γραφήματα (τόσο lollipop όσο και waffle charts) και Πίνακες Δεδομένων, τα οποία θα έπρεπε να είχα δημιουργήσει από την αρχή, καθώς αυτά μου επιτρέπουν να ελέγχω γρήγορα την ακρίβεια της εξαγωγής δεδομένων και δίνουν στους χρήστες έναν πιο ξεκάθαρο τρόπο για να ελέγχουν την προέλευση των δεδομένων. Αργότερα, πρόσθεσα ένα άλλο πεδίο για τις αναλύσεις που παράγονται από την τεχνητή νοημοσύνη. Κάθε φορά που δημιουργείται μια νέα σελίδα δεδομένων, ο πράκτορας προγραμματισμού απλώς αντιγράφει ένα πρότυπο και το προσαρμόζει στα διαθέσιμα δεδομένα. Αφού το έκανα αυτό, ζήτησα από τον coding agent να τυποποιήσει όλες τις σελίδες σύμφωνα με τα πρότυπα. 

Επίπεδο εξαγωγής δεδομένων. Για κάθε σελίδα του dashboard, ο coding agent γράφει μια δέσμη ενεργειών για την εξαγωγή των δεδομένων από το αρχικό φύλλο εργασίας και την αποθήκευσή τους σε ένα αρχείο JSON. Αυτό σημαίνει ότι εάν εντοπιστεί σφάλμα κατά την εξαγωγή των δεδομένων, ο coding agent απλώς θα διορθώσει τον κώδικα (script) εξαγωγής δεδομένων, θα τον εκτελέσει ξανά και θα ενημερώσει τα δεδομένα στον dashboard. Όταν εφάρμοσα αυτήν την αρχιτεκτονική, οι περισσότερες αλλά όχι όλες οι υφιστάμενες σελίδες είχαν ήδη αυτά τα χαρακτηριστικά.

Επίπεδο δεδομένων. Κάθε σελίδα έχει ένα αρχείο data.json που λειτουργεί ως το σημείο μεταβίβασης μεταξύ της εξαγωγής και της παρουσίασης. Αποθηκεύει το δομημένο περιεχόμενο για τη συγκεκριμένη σελίδα (τιμές χαρτών, πακέτα γραφημάτων, πακέτα πινάκων, σημειώσεις και αναλύσεις), έτσι ώστε το περιβάλλον εργασίας χρήστη να παραμένει επαναχρησιμοποιήσιμο, ενώ τα δεδομένα παραμένουν εξειδικευμένα για κάθε σελίδα. Πριν εφαρμόσω αυτό το σύστημα, ορισμένες σελίδες εξακολουθούσαν να γράφουν δεδομένα απευθείας σε αρχεία HTML. 

Η ύπαρξη αυτής της δομής καθιστά τους coding agents πιο αποτελεσματικούς με διάφορους τρόπους. Καθώς επιδιορθώνουν ως επί το πλείστον υπάρχοντα script και αρχεία, δεν χρειάζεται να δημιουργήσουν μεγάλα τμήματα κώδικα από το μηδέν, μειώνοντας έτσι την κατανάλωση token. Τα τυποποιημένα πρότυπα διευκολύνουν επίσης την εκτέλεση των ενημερώσεων, καθώς τα ίδια πρότυπα επαναχρησιμοποιούνται σε όλες τις σελίδες. Το ξεχωριστό επίπεδο δεδομένων βοηθάει στην αποσφαλμάτωση, και έτσι είναι πιο εύκολο να διαπιστώσει κανείς αν ένα πρόβλημα εντοπίζεται στον κώδικα απόδοσης ή στα εξαγόμενα δεδομένα. Παρόλα αυτά, πολλές ασυνέπειες εξακολουθούν να υπάρχουν σε όλες τις σελίδες και πιθανώς κάποια στιγμή να χρειαστεί αναδιαμόρφωση ώστε το έργο να γίνει καλύτερα συντηρήσιμο και επεκτάσιμο.

Μιλώντας για πιο αποτελεσματικούς agents, διαπίστωσα ότι η χρήση ενός παλαιότερου μοντέλου – στην προκειμένη περίπτωση του GPT-5.3-codex medium στον Codex – ήταν λιγότερο δαπανηρή από άποψη χρήσης, ενώ ήταν αρκετά καλή ώστε να φέρει το πρότζεκτ μέχρι τη γραμμή του τερματισμού. Κατέληξα να χρησιμοποιήσω τον Codex για το μεγαλύτερο μέρος του υπόλοιπου έργου, και χρησιμοποίησα τον Claude Code μόνο για να διορθώσω κάποια πράγματα στο υπόλοιπο της διαδικασίας.

Οι αναλύσεις που παράγονται από την τεχνητή νοημοσύνη μπορούν να προσθέσουν μεγάλη αξία σε ένα πρότζεκτ δεδομένων 

Θέλησα να πειραματιστώ με τη χρήση τεχνητής νοημοσύνης για τη δημιουργία αναλύσεων από τα δεδομένα. Για να το κάνω αυτό, ακολούθησα μια διαδικασία με δύο βήματα. Ζήτησα από τον coding agent να δημιουργήσει ένα prompt και να την αποθηκεύσει σε μια βιβλιοθήκη προτροπών. Στη συνέχεια έλεγξα το prompt πριν την εκτελέσει ο πράκτορας. Κατόπιν τα αποτελέσματα αποθηκεύτηκαν πριν εισαχθούν στη σελίδα δεδομένων. 

Υπάρχουν διάφοροι λόγοι γι’ αυτό. Ήθελα να μπορώ να αναθεωρώ και να επεξεργάζομαι τo prompt χειροκίνητα πριν την εκτέλεση, και να ελέγχω τα αποτελέσματα ξεχωριστά, για να βλέπω αν το prompt λειτουργεί. Κάποια στιγμή, όταν η τεχνητή νοημοσύνη παρήγαγε αναλύσεις για την εφηβική εγκυμοσύνη, ανακοίνωσε τη μεγάλη της ανακάλυψη: οι 19χρονες είχαν πολύ περισσότερες πιθανότητες να μείνουν έγκυες από τις 15χρονες. Ήταν μια ακριβής ανακάλυψη, φυσικά, αλλά σε καμία περίπτωση η πρωτοποριακή διαπίστωση που ο πράκτορας πίστευε ότι είχε κάνει. To prompt χρειαζόταν περαιτέρω αναθεώρηση. 

Η δημιουργία των προτροπών πρώτα για αναθεώρηση αποτρέπει επίσης την υπερβολική προσαρμογή, όπου ο πράκτορας γράφει την οδηγία που περιέχει ήδη την ανάλυσή του για τα δεδομένα, με αποτέλεσμα να μην μπορεί να εντοπίσει πιο διορατικά μοτίβα. Μου επιτρέπει, επίσης, να χρησιμοποιώ προτροπές με καλές επιδόσεις ως πρότυπα, γεγονός που μου επιτρέπει με τη σειρά του να κάνω εξοικονόμηση στην χρήση των token. 

Οι ίδιες οι αναλύσεις ήταν αρκετά χρήσιμες, όσον αφορά την παρουσίαση πληροφοριών που θα ήταν δύσκολο να αντληθούν από χάρτες, γραφήματα και πίνακες δεδομένων. Για παράδειγμα, δείτε αυτήν την παράγραφο από τις αναλύσεις της τεχνητής νοημοσύνης σχετικά με την Ενδοοικογενειακή Βία: «Οι περιοχές με υψηλό συνολικό πληθωρισμό δεν είναι πανομοιότυπες ως προς τη σύνθεσή τους. H περιοχή Καράγκα συνδυάζει πολύ υψηλή συναισθηματική κακοποίηση (21,8) με αυξημένη σωματική (6,8) και σεξουαλική (3,7) κακοποίηση. Η περιοχή Μπικόλ βρίσκεται σε υψηλά επίπεδα και στις τρεις κύριες συνιστώσες, συμπεριλαμβανομένης της σωματικής κακοποίησης με δείκτη 9,1. Ο συγκεντρωτικός δείκτης 20,5 του Κεντρικού Λουσόν οφείλεται σε μεγάλο βαθμό στη συναισθηματική κακοποίησης (18,9) σε σχέση με τη σεξουαλική κακοποίηση (2,1) που εμφανίζεται σε χαμηλότερα επίπεδα».

Οι διαδικασίες του fact-checking μπορούν να βοηθήσουν τη διαδικασία ελέγχου, αλλά απαιτούνται ισχυρές ασφαλιστικές δικλείδες 

Μια έκθεση από τον υποπράκτορα που διενεργεί τον έλεγχο γεγονότων (fact-checking), όπου επισημαίνονται ορισμένα ζητήματα, ενώ παράλληλα παρουσιάζονται τα δεδομένα που υποστηρίζουν τις τιμές.

Φυσικά, το πρώτο ερώτημα που γεννιέται στο μυαλό οποιουδήποτε δημοσιογράφου, όταν του παρουσιάζεται κάτι που έχει παραχθεί από τεχνητή νοημοσύνη, είναι το εξής: είναι αξιόπιστο; 

Για να αντιμετωπίσω αυτό το πρόβλημα, δημιούργησα μια ροή εργασιών (workflow) fact-checking μέσα στον coding agent για να ελέγξω τις αναλύσεις σε σχέση με τα δεδομένα. Αρχικά, ο fact-checking agent ανέσυρε μεμονωμένους ισχυρισμούς, τους επαλήθευσε και πρότεινε επαναδιατυπώσεις. Ωστόσο, ο μεμονωμένος έλεγχος των ισχυρισμών συχνά καταργούσε το πλαίσιο που υπήρχε ήδη στο ίδιο πακέτο ανάλυσης, οπότε οι επαναδιατυπώσεις (rewrites) γίνονταν επαναλαμβανόμενες. 

Στη συνέχεια πέρασα στον έλεγχο γεγονότων σε επίπεδο συνόλου δεομένων, όπου κάθε σύνολο ανάλυσης ελέγχεται συνολικά με βάση τα δεδομένα. Κάθε σύνολο βαθμολογείται ως υποστηριζόμενο, κυρίως υποστηριζόμενο, μερικώς υποστηριζόμενο ή μη υποστηριζόμενο. Επαναδιατυπώσεις απαιτούνται μόνο για πακέτα που δεν υποστηρίζονται πλήρως· τα υποστηριζόμενα πακέτα παραμένουν αμετάβλητα. 

Στην πράξη, αυτό δεν ήταν αρκετό. Όταν οι εκτελέσεις του κώδικα (runs) τραβούσαν σε μάκρος, οι πράκτορες έτειναν να κόβουν δρόμο: επαναχρησιμοποιούσαν γνωστά μοτίβα αποδεικτικών στοιχείων, ανέφεραν παρόμοιες αλλά λανθασμένες τιμές ή έδειχναν πεδία που έμοιαζαν σωστά αλλά δεν ταίριαζαν ακριβώς με το κελί της πηγής. Το αποτέλεσμα θα μπορούσε να ακούγεται πειστικό, ενώ θα εξακολουθούσε να είναι λάθος.

Έτσι πρόσθεσα ισχυρότερες προστατευτικές δικλείδες. Κάθε γραμμή αποδεικτικών στοιχείων πρέπει να παραπέμπει σε έναν ακριβή δείκτη δεδομένων (data pointer) και σε μια ακριβή τιμή, και οι κώδικες (scripts) επικύρωσης να ελέγχουν τόσο τη δομική εγκυρότητα όσο και την ποιότητα των αποδεικτικών στοιχείων πριν γίνει αποδεκτό ένα αποτέλεσμα. Οι αποτυχημένες εξαγωγές δεδομένων απορρίπτονται και εκτελούνται εκ νέου. Αυτό μετέτρεψε τη διαδικασία σε έναν αυστηρότερο μηχανισμό ελέγχου και όχι σε έναν εφάπαξ έλεγχο της τεχνητής νοημοσύνης. 

Για κάθε σελίδα ανάλυσης, ο fact-checker agent δημιούργησε μια βαθμολογική έκθεση (scorecard report), η οποία έδειχνε όχι μόνο τις αξιολογήσεις του, αλλά και τα σημεία των δεδομένων στα οποία βασίστηκε η κρίση του. Παρείχε επίσης εξηγήσεις για τα σημεία με χαρακτηρισμούς «κυρίως υποστηριζόμενα», «μερικώς υποστηριζόμενα» και «μη υποστηριζόμενα». Τελικά, η ροή εργασίας ελέγχου γεγονότων έλεγξε 273 πακέτα και διαπίστωσε ότι τα 258 ήταν υποστηριζόμενα, 12 ήταν κυρίως υποστηριζόμενα, δύο ήταν μερικώς υποστηριζόμενα και ένα ήταν μη υποστηριζόμενο. 

Παρόλο που δεν είχε φτάσει ακόμα στο επίπεδο ενός τελειοποιημένου εργαλείου ειδησεογραφίας, αυτό διευκόλυνε τη διαδικασία χειροκίνητου ελέγχου, επειδή η έκθεση καθιστά γρήγορα εμφανές ποιοι ισχυρισμοί υποστηρίζονται άμεσα από τα δεδομένα, ποιοι χρειάζονται πιο προσεκτική ανάγνωση και ποιοι πρέπει να ξαναγραφούν ή να αφαιρεθούν. Αν έπρεπε να τα ξανακάνω όλα από την αρχή, θα εκτελούσα τον fact-checker αμέσως μόλις δημιουργούνταν οι πληροφορίες, έτσι ώστε να ελέγξω ευκολότερα ανά σελίδα και όχι σε μια μεγάλη παρτίδα 273 πακέτων. 

Οι fact-checking agents θα μπορούσαν να καταστήσουν τον έλεγχο των κειμένων που παράγονται από τεχνητή νοημοσύνη πιο αξιόπιστο, αλλά θα πρέπει να υπάρχουν ισχυρές προστατευτικές δικλείδες για να διασφαλιστεί ότι τα πάντα είναι δομημένα, επαναλαμβανόμενα και ανιχνεύσιμα στα δεδομένα προέλευσης. 

Οι πρώτοι χρήστες διαπίστωσαν αμέσως τις εφαρμογές στον πραγματικό κόσμο 

Οι ενδιαφερόμενοι που δοκίμασαν τον dashboard διαπίστωσαν αμέσως την πιθανή αξία του για την εργασία τους. 

Η Ρομελέι Καμίλινγκ-Αλφόνσο (Romelei Camiling-Alfonso), ιατρός και ειδική σε θέματα καινοτομίας στον τομέα της υγείας, δήλωσε ότι ο dashboard θα φανεί χρήσιμος για τους υγειονομικούς υπαλλήλους των επαρχιών, τους δημοτικούς υγειονομικούς υπαλλήλους και τα μέλη του προγράμματος «γιατροί στα χωριά», οι οποίοι είναι ιατροί που αποσπώνται σε όλη τη χώρα για να παρέχουν υπηρεσίες πρωτοβάθμιας υγειονομικής περίθαλψης σε υποβαθμισμένες και απομακρυσμένες κοινότητες.

Η Αθίνα Πρέστο (Athena Presto), κοινωνιολόγος που μελετά το φύλο και τις πολιτικές στο Εθνικό Πανεπιστήμιο της Αυστραλίας, δήλωσε ότι το έργο αυτό καθιστά τα δεδομένα της έρευνας άμεσα κατανοητά χωρίς να χρειάζεται να εξετάσουμε τους αριθμούς. «Νομίζω ότι ένας δικτυακός τόπος με χαμηλό αισθητηριακό επίπεδο είναι επίσης πολύ καλός για εκείνους που απλά ρίχνουν μια γρήγορη ματιά και χρειάζονται πληροφορίες αμέσως» είπε.

Η συνιδρύτρια του Pumapodcast και επικεφαλής περιεχομένου Τρίσια Ακίνο (Tricia Aquino), η οποία έχει κάνει ρεπορτάζ για την NDHS στο παρελθόν, ενθουσιάστηκε από τις δυνατότητες συνεργασίας ανάμεσα στις αίθουσες σύνταξης με βάση τα δεδομένα και τις πληροφορίες από τον dashboard. «Αυτό το έργο διευκολύνει πολύ την προβολή των δεδομένων, την αλληλεπίδραση με αυτά και την ανάλυσή τους. Είναι επίσης πιο εύκολο να βρεις μοτίβα και συνδέσεις» είπε. «Υπάρχει πληθώρα αναλύσεων που παράγονται με τεχνητή νοημοσύνη και μπορούν να αποτελέσουν την αφετηρία για εκθέσεις σε ολόκληρη τη χώρα, και μπορώ να φανταστώ τις αίθουσες σύνταξης να συνεργάζονται σε διάφορες περιοχές για να παρουσιάσουν τοπικά ευρήματα που μπορούν να επηρεάσουν την πολιτική».

Οι δυνατότητες μόλις τώρα αρχίζουν 

Ένα φυσικό επόμενο βήμα θα ήταν η δημιουργία περιφερειακών συγχρονικών εκθέσεων, οι οποίες θα παρουσιάζουν μια σύνοψη όλων των δεδομένων της NDHS για κάθε περιοχή. Αυτό θα ήταν ιδιαίτερα χρήσιμο για τους υπεύθυνους χάραξης πολιτικής, τους δημοσιογράφους και τους φορείς υποστήριξης που ενδιαφέρονται λιγότερο για τα εθνικά μοτίβα και επικεντρώνονται περισσότερο στο τι σημαίνουν οι αριθμοί για την περιοχή τους συγκεκριμένα. 

Μια άλλη δυνατότητα είναι η τοποθέτηση ενός chatbot στην κορυφή του dashboard. Αντί να περιηγείται σε χάρτες και γραφήματα για να βρει μια απάντηση, ο χρήστης θα μπορούσε απλώς να ρωτήσει: «Ποια περιοχή έχει το υψηλότερο ποσοστό ανεκπλήρωτων αναγκών για οικογενειακό προγραμματισμό;» και να λάβει μια απάντηση που θα βασίζεται απευθείας στα δεδομένα. Η υποδομή γι’ αυτό υπάρχει ήδη στον τρόπο με τον οποίο είναι δομημένα τα δεδομένα· το θέμα είναι κυρίως να δημιουργηθεί η κατάλληλη διεπαφή πάνω σε αυτήν. Φυσικά, αυτό θα απαιτούσε επίσης ένα ενσωματωμένο επίπεδο ελέγχου γεγονότων.

Ο dashboard θα μπορούσε επίσης να εμπλουτιστεί με την προσθήκη άλλων συνόλων δεδομένων από την PSA και άλλες πηγές. Τα δεδομένα της NDHS είναι αποκαλυπτικά από μόνα τους, αλλά γίνονται ακόμη πιο ισχυρά σε συνδυασμό με άλλους δείκτες όπως η έκταση της φτώχειας, το περιφερειακό ΑΕΠ ή η πρόσβαση σε υγειονομικές εγκαταστάσεις. Η διασταύρωση των στοιχείων αυτών θα μπορούσε να φέρει στην επιφάνεια συνδέσεις που κανένα μεμονωμένο σύνολο δεδομένων δεν μπορεί να δείξει από μόνο του. 

Και ίσως η πιο συναρπαστική δυνατότητα από όλες είναι ότι ολόκληρος αυτός ο dashboard – οι χάρτες, τα γραφήματα, οι αναλύσεις που δημιουργούνται από τεχνητή νοημοσύνη, το σύστημα ελέγχου γεγονότων – κατασκευάστηκε μέσα σε μία εβδομάδα από ένα άτομο. 

Το vibe coding το κατέστησε δυνατό. Αλλά όπως έδειξε και αυτό το πρότζεκτ, το vibe coding από μόνο του δεν αρκεί. Η βιομηχανία πρέπει τώρα να βρει τρόπο να εκπαιδεύσει τους δημοσιογράφους και τους εργαζόμενους στις αίθουσες σύνταξης να κατασκευάζουν ουσιαστικά πράγματα, να τους δώσει αρκετή κατανόηση της αρχιτεκτονικής και των δεδομένων για να φτάσουν εκεί, διατηρώντας τους παράλληλα σταθερά προσγειωμένους στη συντακτική τους κρίση.