W tym samouczku dowiesz się, jak zresetować czat za pomocą API OpenAI bez konieczności ponownego uruchamiania serwera. Często zdarzają się sytuacje, w których chcesz po prostu zapomnieć o dotychczasowej historii rozmowy i zacząć od nowa. Kluczową rolę odgrywa tutaj identyfikator czatu (Chat-ID), ponieważ umożliwia zresetowanie historii na serwerze. Następny poradnik pokaże, jak zaimplementować tę funkcję.
Najważniejsze wnioski
- Aby zresetować czat, możesz wygenerować nowy identyfikator czatu.
- Identyfikator czatu jest tworzony po ponownym załadowaniu strony i przekazywany do serwera.
- Serwer porównuje nowy identyfikator czatu z aktualnym i zresetuje historię czatu, jeśli różnią się od siebie.
Instrukcja krok po kroku
Masz już działającą aplikację czatu, ale jest jeden mały problem: nie możesz jeszcze zresetować historii rozmowy. Aby to umożliwić, musimy wprowadzić identyfikator, który będzie generowany przy każdym ponownym załadowaniu strony.
Następnie musisz przekazywać ten nowy identyfikator czatu do serwera. Gdy serwer otrzyma nowy identyfikator, może zresetować historię rozmowy. Dokonuje tego poprzez prostą porównanie: jeśli nowy identyfikator czatu nie jest taki sam jak aktualny identyfikator czatu, lista wiadomości zostanie zresetowana.
Aby to zaimplementować, musisz upewnić się, że klient jest w stanie generować losowy identyfikator. Przekazujesz identyfikator za pomocą parametru wyszukiwania ID. Spójrzmy teraz na plik index.jsx twojego komponentu React.
W tym pliku już przekazałeś niezbędną wiadomość (MSG). Teraz możesz również przekazać identyfikator. Możesz to zrobić efektywnie za pomocą ciągu szablonowego, co ułatwi wstawianie zmiennych.
Zmień więc kod na ciąg szablonowy i wstaw odpowiednie zmienne. Mogłoby to wyglądać tak: MSG, to jest Twoje pole wejściowe, a ID jest równe Twojemu nowemu ID.
Teraz musisz pomyśleć o generowaniu identyfikatora. Prostą metodą jest używanie daty. Po prostu zdefiniujesz stałą, która będzie używać bieżącego czasu w milisekundach od 1970 roku. Możesz użyć Date.now(), aby uzyskać ten czas i przekształcić go w ciąg znaków.
Teraz zawsze wysyłamy nowy identyfikator przy ponownym ładowaniu strony. Powinno to działać zgodnie z oczekiwaniami. Sprawdźmy to i wyślijmy wiadomość, aby sprawdzić, czy dane są prawidłowo przekazywane do serwera.
Jeśli wysyłasz wiadomość „jak się masz”, zobaczysz na serwerze, że są dwie wiadomości: jedna od użytkownika i jedna od asystenta.
Jeśli jednak wysyłasz kolejne pytanie, na przykład „dlaczego nie ma uczuć”, historia powinna zostać zresetowana odpowiednio. Na ekranie powinno widnieć tylko aktualne pytanie i odpowiedź na nie.
Oznacza to, że gdy sprawdzamy identyfikatory - nie powinno być konfliktu, na przykład nowy identyfikator czatu musi różnić się od aktualnego identyfikatora czatu - logika powinna być dostatecznie uproszczona, aby działała poprawnie.
Aby upewnić się, że działa poprawnie, ponów test. Odśwież stronę i wyślij wiadomość raz jeszcze. Powinno być teraz cztery wiadomości zapisane w tablicy.
Tablica pokazuje całkowitą liczbę wysłanych wiadomości, co oznacza, że historia została poprawnie zresetowana. Jednak dzieje się tak tylko przy ponownym ładowaniu strony. Alternatywnie możesz także zaimplementować przycisk, który inicjuje resetowanie czatu, ale na nasze potrzeby ponowne ładowanie strony wystarczy.
Jednak pamiętaj, że pole wprowadzania nie jest automatycznie czyszczone po wysłaniu wiadomości. Historia czatu nie jest również w pełni widoczna, co oznacza, że zawsze widzisz tylko ostatnie pytanie i odpowiedź. Te kwestie zostaną omówione w przyszłych samouczkach.
Podsumowanie
W tym samouczku nauczyłeś się, jak zaimplementować funkcję resetowania historii czatu w swojej aplikacji czatowej. Poprzez wprowadzenie nowego identyfikatora czatu podczas ponownego ładowania strony, historia została pomyślnie zresetowana. Istnieją jeszcze pewne usprawnienia, które wdrożymy w kolejnych krokach, takie jak czyszczenie pola wprowadzania i pełne wyświetlanie historii czatu.
Najczęstsze pytania
Jak zresetować czat?Przeładowanie strony zresetuje historię czatu.
Jak generowany jest nowy identyfikator?Nowy identyfikator jest generowany na podstawie aktualnego czasu w milisekundach.
Czy mogę zresetować czat bez przeładowania strony?Tak, możesz również zaimplementować przycisk, który zresetuje czat.
Co się stanie, jeśli identyfikatory są takie same?Jeśli nowy identyfikator jest taki sam jak obecny, historia nie zostanie zresetowana.
Czy muszę ręcznie wyczyścić pole wprowadzania?Tak, obecnie pole wprowadzania nie jest automatycznie czyszczone po wysłaniu wiadomości.