Σε αυτόν τον οδηγό, θα μάθετε πώς να επαναφέρετε μια συνομιλία με το API του OpenAI χωρίς να χρειάζεται να επανεκκινήσετε τον διακομιστή. Υπάρχουν συχνά καταστάσεις στις οποίες θέλετε απλώς να ξεχάσετε το προηγούμενο ιστορικό συνομιλίας και να ξεκινήσετε από την αρχή. Ένα αναγνωριστικό συνομιλίας παίζει κεντρικό ρόλο εδώ, καθώς σας επιτρέπει να επαναφέρετε το ιστορικό στον διακομιστή. Το ακόλουθο σεμινάριο θα σας δείξει πώς να υλοποιήσετε αυτή τη λειτουργία.
Τα πιο σημαντικά ευρήματα
- Για να επαναφέρετε τη συνομιλία, μπορείτε να δημιουργήσετε ένα νέο αναγνωριστικό συνομιλίας.
- Το αναγνωριστικό συνομιλίας δημιουργείται κατά την επαναφόρτωση της σελίδας και τη μεταφορά της στο διακομιστή.
- Ο διακομιστής συγκρίνει το νέο αναγνωριστικό συνομιλίας με το τρέχον και μηδενίζει το ιστορικό συνομιλίας εάν είναι διαφορετικό.
Οδηγίες βήμα προς βήμα
Κατ' αρχάς, έχετε ήδη μια εφαρμογή συνομιλίας σε λειτουργία, αλλά υπάρχει ένα μικρό πρόβλημα: δεν μπορείτε ακόμη να μηδενίσετε το ιστορικό συνομιλίας. Για να γίνει αυτό εφικτό, πρέπει να εισαγάγουμε ένα αναγνωριστικό που δημιουργείται κάθε φορά που επαναφορτώνεται η σελίδα.
Στη συνέχεια, πρέπει να περάσετε αυτό το νέο αναγνωριστικό συνομιλίας στον διακομιστή σας. Όταν ο διακομιστής λάβει ένα νέο αναγνωριστικό, μπορεί να μηδενίσει το ιστορικό συνομιλίας. Αυτό γίνεται μέσω μιας απλής σύγκρισης: αν το νέο αναγνωριστικό συνομιλίας δεν ταιριάζει με το τρέχον αναγνωριστικό συνομιλίας, η λίστα μηνυμάτων μηδενίζεται.
Για να το υλοποιήσετε αυτό, πρέπει να βεβαιωθείτε ότι ο πελάτης είναι σε θέση να παράγει ένα τυχαίο αναγνωριστικό. Θα περάσετε το ID με την παράμετρο αναζήτησης ID. Ας ρίξουμε λοιπόν μια ματιά στο αρχείο index.jsx του React component σας.
Εδώ σε αυτό το αρχείο έχετε ήδη περάσει το απαραίτητο μήνυμα (MSG). Τώρα μπορείτε επίσης να περάσετε το ID. Μπορείτε να το κάνετε αυτό αποτελεσματικά χρησιμοποιώντας ένα πρότυπο συμβολοσειρά για να διευκολύνετε την εισαγωγή μεταβλητών.
Μετατρέψτε λοιπόν τον κώδικα σε ένα template string και εισάγετε τις μεταβλητές αναλόγως. Θα μπορούσε να μοιάζει ως εξής: MSG, αυτό είναι το πεδίο εισόδου σας και το ID είναι το ίδιο με το νέο σας ID.
Τώρα πρέπει να σκεφτείτε πώς θα δημιουργήσετε το ID. Μια απλή μέθοδος είναι να χρησιμοποιήσετε την ημερομηνία. Μπορείτε απλά να ορίσετε μια σταθερά που χρησιμοποιεί την τρέχουσα ώρα σε χιλιοστά του δευτερολέπτου από το 1970. Μπορείτε να χρησιμοποιήσετε την Date.now() και στη συνέχεια να μετατρέψετε αυτόν τον χρόνο σε συμβολοσειρά.
Τώρα στέλνουμε πάντα ένα νέο αναγνωριστικό όταν επαναφορτώνεται η σελίδα. Αυτό θα πρέπει να λειτουργεί όπως επιθυμείτε. Ας το δοκιμάσουμε και ας στείλουμε ένα μήνυμα για να δούμε αν τα δεδομένα αποστέλλονται σωστά στο διακομιστή.
Αν στείλετε το μήνυμα "πώς είσαι", θα δείτε στον διακομιστή ότι υπάρχουν δύο μηνύματα: ένα από τον χρήστη και ένα από τον βοηθό.
Ωστόσο, αν στείλετε μια άλλη ερώτηση, όπως "γιατί δεν έχει συναισθήματα", το ιστορικό θα πρέπει να μηδενιστεί ανάλογα. Θα πρέπει να υπάρχει μόνο η τρέχουσα ερώτηση και η απάντησή της.
Αυτό σημαίνει ότι όταν ελέγχουμε τα αναγνωριστικά - δεν πρέπει να υπάρχει σύγκρουση, π.χ. ότι το νέο αναγνωριστικό συνομιλίας είναι το ίδιο με το τρέχον αναγνωριστικό συνομιλίας - η λογική θα πρέπει να απλοποιηθεί ώστε αυτό να εκτελείται καθαρά.
Για να βεβαιωθείτε ότι λειτουργεί, εκτελέστε ξανά τη δοκιμή. Επαναφορτώστε τη σελίδα και στείλτε το μήνυμα για άλλη μια φορά. Τώρα θα πρέπει να αποθηκευτούν τέσσερα μηνύματα στον πίνακα.
Ο πίνακας δείχνει το συνολικό αριθμό των μηνυμάτων που έχουν σταλεί, πράγμα που σημαίνει ότι έχουμε επαναφέρει σωστά το ιστορικό. Ωστόσο, αυτό συμβαίνει μόνο όταν επαναφορτώνετε τη σελίδα. Εναλλακτικά, μπορείτε επίσης να υλοποιήσετε ένα κουμπί που ενεργοποιεί την επαναφορά της συνομιλίας, αλλά για τους σκοπούς μας, η επαναφόρτωση της σελίδας είναι αρκετή προς το παρόν.
Σημειώστε, ωστόσο, ότι το πεδίο εισαγωγής δεν διαγράφεται αυτόματα μετά την αποστολή ενός μηνύματος. Το πλήρες ιστορικό των συνομιλιών δεν είναι επίσης ακόμη ορατό, πράγμα που σημαίνει ότι βλέπετε πάντα μόνο την τελευταία ερώτηση και απάντηση. Θα ασχοληθούμε και με αυτό σε μελλοντικά σεμινάρια.
Περίληψη
Σε αυτόν τον οδηγό, μάθατε πώς να υλοποιείτε τη λειτουργία επαναφοράς του ιστορικού συνομιλιών στην εφαρμογή συνομιλίας σας. Με την εισαγωγή ενός νέου αναγνωριστικού συνομιλίας κατά την επαναφόρτωση της σελίδας, το ιστορικό θα μπορούσε να μηδενιστεί με επιτυχία. Υπάρχουν ακόμα κάποιες βελτιώσεις που θα υλοποιήσουμε στα επόμενα βήματα, όπως η εκκαθάριση του πεδίου εισαγωγής και η πλήρης εμφάνιση του ιστορικού συνομιλίας.