În acest ghid vei învăța cum să resetezi un chat cu OpenAI API fără a fi nevoie să repornești serverul. Adesea există situații în care vrei să uiți pur și simplu istoricul chat-ului anterior și să începi de la început. Aici, un ID de chat joacă un rol central, deoarece permite resetarea istoricului pe server. Următorul tutorial îți va arăta cum să implementezi această funcție.
Cele mai importante concluzii
- Pentru a reseta chat-ul, poți genera un nou ID de chat.
- ID-ul de chat este creat la reîncărcarea paginii și transmis către server.
- Serverul compară noul ID de chat cu cel curent și resetează istoricul chat-ului dacă acestea sunt diferite.
Ghid pas cu pas
Mai întâi, ai deja o aplicație de chat funcțională, dar există o mică problemă: Nu poți reseta încă istoricul chat-ului. Pentru a permite acest lucru, trebuie să introducem un ID care să fie generat la fiecare reîncărcare a paginii.
Acest nou ID de chat trebuie apoi transmis serverului tău. Atunci când serverul primește un nou ID, poate reseta istoricul chat-ului. Acest lucru se întâmplă printr-o simplă comparație: Dacă noul ID de chat nu corespunde cu ID-ul de chat curent, lista de mesaje este resetată.
Pentru a implementa acest lucru, trebuie să te asiguri că clientul este capabil să genereze un ID aleator. Vei transmite ID-ul cu parametrul de căutare ID. Deci, să aruncăm o privire în fișierul index.jsx al componente React.
Aici, în acest fișier, ai deja transmis mesajul necesar (MSG). Acum poți transmite și ID-ul. Poți face acest lucru eficient folosind șiruri de șabloane, astfel încât inserarea variabilelor să devină mai ușoară.
Deci transformă codul într-un șir de șabloane și inserează variabilele corespunzător. Astfel ar putea arăta: MSG, aceasta este câmpul tău de intrare, iar ID-ul este egal cu noul tău ID.
Acum trebuie să te gândești la generarea ID-ului. O metodă simplă este utilizarea datei. Pur și simplu poți defini o constantă care folosește ora actuală în milisecunde de la 1970. Pentru asta poți folosi Date.now(), și apoi poți converti acea dată într-un șir.
Acum trimitem întotdeauna un nou ID la reîncărcarea paginii. Acest lucru ar trebui să funcționeze așa cum ai dorit. Hai să testăm totul și să trimitem un mesaj pentru a vedea dacă datele sunt transmise corect serverului.
Dacă trimiți mesajul "how are you", vei vedea pe server că există două mesaje: unul al utilizatorului și unul al asistentului.
Dacă trimiți însă o altă întrebare, cum ar fi „de ce nu are sentimente”, istoricul ar trebui resetat corespunzător. Doar întrebarea curentă și răspunsul aferent ar trebui să fie acolo.
Aceasta înseamnă că atunci când verificăm ID-urile - nu trebuie să existe conflicte, cum ar fi noul ID de chat să fie identic cu ID-ul de chat curent - logica ar trebui simplificată pentru a funcționa corect.
Pentru a te asigura că funcționează, reia testul. Reîncarcă pagina și trimite mesajul din nou. Acum ar trebui să fie salvate patru mesaje în array.
Array-ul arată numărul total de mesaje trimise, ceea ce înseamnă că am resetat istoricul corect. Aceasta se întâmplă doar la reîncărcarea paginii. Alternativ, poți implementa și un buton care să declanșeze resetarea chat-ului, dar pentru scopurile noastre, reîncărcarea paginii este suficientă în primă fază.
Însă reține că câmpul de introducere nu se golește automat după trimiterea unui mesaj. De asemenea, istoricul complet al chat-urilor nu este încă vizibil, ceea ce înseamnă că vei vedea întotdeauna doar ultima întrebare și răspuns. Acest aspect va fi abordat în viitoarele tutoriale.
Rezumat
În acest ghid ai învățat cum să implementezi funcția de resetare a istoricului de chat în aplicația ta de chat. Prin introducerea unui nou ID de chat la reîncărcarea paginii, istoricul a fost resetat cu succes. Mai sunt câteva îmbunătățiri pe care le vom implementa în pașii următori, cum ar fi ștergerea câmpului de introducere și afișarea completă a istoricului de chat.
Întrebări frecvente
Cum pot să resetez chat-ul?Prin reîncărcarea paginii, istoricul chat-ului va fi resetat.
Cum se generează noul ID?Noul ID este generat din timpul actual în milisecunde.
Pot să resetez chat-ul fără reîncărcarea paginii?Da, poți implementa un buton care să reseteze chat-ul.
Ce se întâmplă dacă ID-urile sunt egale?Dacă noul ID este același cu ID-ul curent, istoricul nu va fi resetat.
Trebuie să șterg manual câmpul de introducere?Da, momentan câmpul de introducere nu este golit automat după trimiterea unui mesaj.