I denne veiledningen vil du lære hvordan du kan tilbakestille en chat med OpenAI API uten å måtte starte serveren på nytt. Ofte oppstår situasjoner der du bare vil glemme den tidligere samtalehistorikken og begynne på nytt. En chat-ID spiller en sentral rolle her, da den gjør det mulig å tilbakestille historikken på serveren. Den følgende opplæringen vil vise deg hvordan du implementerer denne funksjonen.
Viktigste funn
- For å tilbakestille chatten kan du generere en ny chat-ID.
- Chat-ID-en opprettes ved sidenlastingen og sendes til serveren.
- Serveren sammenligner den nye chat-ID-en med den nåværende, og tilbakestiller samtalehistorikken hvis de er forskjellige.
Trinn-for-trinn-veiledning
Du har allerede en fungerende chat-applikasjon, men det er et lite problem: Du kan ikke tilbakestille samtalehistorikken ennå. For å muliggjøre dette, må vi introdusere en ID som genereres hver gang siden lastes på nytt.
Du må deretter sende denne nye chat-ID-en til serveren din. Når serveren mottar en ny ID, kan den tilbakestille chattehistorikken. Dette skjer gjennom en enkel sammenligning: Hvis den nye chat-ID-en ikke samsvarer med den nåværende chat-ID-en, tilbakestilles meldingslisten.
For å implementere dette, må du sørge for at klienten er i stand til å generere en tilfeldig ID. Du vil sende ID-en sammen med søkeparametervariabelen ID. Så la oss se på filen index.jsx i React-komponenten din.
I denne filen har du allerede sendt den nødvendige meldingen (MSG). Nå kan du også sende med ID-en. Dette kan effektivt gjøres ved hjelp av en template-streng, slik at innsettingen av variabler blir enklere.
Omvandle koden til en template-streng og sett inn variablene deretter. Det kan se slik ut: MSG, dette er inntastingsfeltet ditt, og ID-en er lik din nye ID.
Nå må du tenke på genereringen av ID-en. En enkel metode er å bruke datoen. Du kan enkelt definere en konstant som bruker nåværende tid i millisekunder siden 1970. Du kan bruke Date.now() og deretter konvertere denne tiden til en streng.
Nå sender vi alltid med en ny ID når siden lastes på nytt. Dette bør fungere som ønsket. La oss teste det og sende en melding for å se om dataene blir riktig overført til serveren.
Hvis du sender meldingen "how are you", vil du se at serveren har to meldinger: brukerens og assistentens melding.
Men hvis du sender et annet spørsmål, for eksempel "why does it not have feelings", bør historikken tilbakestilles deretter. Bare gjeldende spørsmål og svar skal vises der.
Dette betyr at når vi sjekker ID-ene - det bør ikke være noen konflikt, for eksempel at den nye chat-ID-en er lik den nåværende chat-ID-en - bør logikken for enkelhetens skyld gå jevnt.
For å forsikre deg om at alt fungerer, gjennomfør testen på nytt. Last siden på nytt og send meldingen en gang til. Nå skal fire meldinger lagres i matrisen.
Matrisen viser totalt antall meldinger som er sendt, noe som betyr at vi har tilbakestilt historikken riktig. Dette skjer imidlertid bare når du laster siden på nytt. Alternativt kan du også implementere en knapp som tilbakestiller chatten, men for våre formål er det å laste siden på nytt tilstrekkelig.
Imidlertid må du være klar over at inntastingsfeltet ikke tømmes automatisk etter at du har sendt en melding. Den komplette chatteloggen er heller ikke synlig ennå, noe som betyr at du alltid bare ser den siste spørsmålet og svaret. Dette vil også bli adressert i fremtidige veiledninger.
Oppsummering
I denne veiledningen har du lært hvordan du kan implementere chatloggen tilbakestillingsfunksjonen i chatapplikasjonen din. Ved å introdusere en ny chat-ID når du laster siden på nytt, kunne loggen tilbakestilles vellykket. Det er fortsatt noen forbedringer som vi vil implementere i de neste stegene, som å tømme inntastingsfeltet og vise den komplette chatteloggen.
Ofte stilte spørsmål
Hvordan kan jeg tilbakestille chatten?Ved å laste siden på nytt vil chatteloggen tilbakestilles.
Hvordan genereres den nye ID-en?Den nye ID-en genereres fra nåværende tid i millisekunder.
Kan jeg også tilbakestille chatten uten å laste siden på nytt?Ja, du kan også implementere en knapp som nullstiller chatten.
Hva skjer hvis ID-ene er like?Hvis den nye ID-en er lik den nåværende ID-en, vil loggen ikke bli tilbakestilt.
Må jeg manuelt slette inntastingsfeltet?Ja, for øyeblikket vil ikke inntastingsfeltet automatisk tømmes etter at en melding er sendt.