Tässä oppaassa opit, miten voit palauttaa keskustelun OpenAI API:n ilman että sinun tarvitsee käynnistää palvelinta uudelleen. Usein tilanteita, joissa haluat yksinkertaisesti unohtaa aiemman keskusteluhistorian ja aloittaa alusta. Tässä keskeisessä roolissa on keskustelu-ID, joka mahdollistaa palvelimen historian nollaamisen. Seuraava opetusohjelma näyttää sinulle, miten tämä toiminto toteutetaan.
Tärkeimmät oivallukset
- Keskustelun nollaamiseksi voit generoida uuden keskustelu-ID:n.
- Keskustelu-ID luodaan sivun uudelleenlatauksessa ja välitetään palvelimelle.
- Palvelin vertailee uutta keskustelu-ID:tä nykyiseen ja nollaa keskusteluhistorian, jos ne poikkeavat toisistaan.
Askel-askeleelta ohje
Sinulla on jo toimiva keskustelu-sovellus, mutta pieni ongelma: Et vielä voi nollata keskusteluhistoriaa. Jotta tämä olisi mahdollista, meidän täytyy ottaa käyttöön ID, joka generoidaan joka kerta sivun uudelleenlatauksessa.
Tämä uusi keskustelu-ID täytyy välittää palvelimellesi. Kun palvelin saa uuden ID:n, se voi nollata keskusteluhistorian. Tämä tapahtuu yksinkertaisen vertailun avulla: Jos uusi keskustelu-ID ei vastaa nykyistä keskustelu-ID:tä, viestilista nollataan.
Tämän toteuttamiseksi sinun täytyy varmistaa, että asiakas pystyy generoimaan satunnaisen ID:n. Lähetät ID:n etsintä-parametrinä. Katsotaan siis React-komponenttisi index.jsx-tiedostoon.
Tässä tiedostossa sinulla on jo tarvittava viesti (MSG) lähetetty. Nyt voit lähettää ID:n samanaikaisesti. Voit tehdä tämän tehokkaasti käyttämällä template-merkkijonoja, jotta muuttujien lisääminen olisi helpompaa.
Siis muunna koodi template-jonoksi ja aseta muuttujat vastaavasti. Tämä voisi näyttää tältä: MSG, joka on syötekenttäsi, ja ID on sama tähän uuteen ID:si.
Nyt sinun täytyy miettiä ID:n generoimisen toteuttamista. Yksinkertainen tapa on käyttää päivämäärää. Voit yksinkertaisesti määrittää vakion, joka käyttää nykyistä aikaa millisekunneissa vuodesta 1970 alkaen. Voit käyttää tähän Date.now() ja sitten muuntaa tämän ajan merkkijonoksi.
Nyt aina kun sivu ladataan uudelleen, lähetämme uuden ID:n. Tämän pitäisi toimia halutulla tavalla. Testataan ja lähetetään viesti nähdäksemme, siirtyvätkö tiedot oikein palvelimelle.
Kun lähetät viestin "how are you", näet palvelimella kaksi viestiä: käyttäjän ja avustajan.
Kuitenkin jos lähetät toisen kysymyksen, kuten esimerkiksi "why does it not have feelings", historiasi pitäisi nollautua sen mukaisesti. Vain nykyinen kysymys ja sen vastaus tulisi näkyä.
Toisin sanoen, kun tarkistamme ID:t – ei saa olla ristiriitaa, kuten uuden keskustelu-ID:n ja nykyisen keskustelu-ID:n olemassaolo – logiikkaa tulisi yksinkertaistaa, jotta kaikki sujuisi moitteettomasti.
Varmistaaksesi, että kaikki toimii, suorita testi uudelleen. Lataa sivu uudelleen ja lähetä viesti uudelleen. Nyt tulisi tallentua neljä viestiä taulukkoon.
Taulukko näyttää kaikkien lähetettyjen viestien kokonaismäärän, mikä tarkoittaa, että olemme nollanneet historian oikein. Tämä tapahtuu kuitenkin vain sivun uudelleenlataamisen yhteydessä. Toisaalta voit myös toteuttaa napin, joka laukaisee keskustelun nollaamisen, mutta tarkoituksiimme sivun uudelleenlataaminen riittää aluksi.
Kuitenkin huomaa, että viestin lähettämisen jälkeen syöttökenttä ei tyhjene automaattisesti. Chatin täydellistä historiikkia ei myöskään vielä näytetä, mikä tarkoittaa, että näet aina vain viimeisimmän kysymyksen ja vastauksen. Käsittelemme näitä aiheita tulevissa oppaissa.
Yhteenveto
Tässä oppaassa opit toteuttamaan chatin historia-sivun palautustoiminnon chat-sovelluksessasi. Uuden chat-ID:n käyttöönotto sivua uudelleen ladattaessa mahdollisti historian onnistuneen palauttamisen. Seuraavissa vaiheissa toteutamme vielä joitain parannuksia, kuten syöttökentän tyhjentämisen ja chat-historian täydellisen näytön.
Usein kysytyt kysymykset
Miten voin palauttaa chatin?Lataamalla sivun uudelleen chatin historia palautetaan.
Miten uusi ID generoidaan?Uusi ID generoidaan nykyisestä ajasta millisekunteina.
Voinko palauttaa chatin myös ilman sivun uudelleenlataamista?Kyllä, voit myös toteuttaa napin, joka palauttaa chatin.
Mitä tapahtuu, jos ID:t ovat samat?Jos uusi ID on sama kuin nykyinen ID, historiaa ei palauteta.
Onko minun tyhjennettävä syöttökenttä manuaalisesti?Kyllä, tällä hetkellä syöttökenttä ei tyhjene automaattisesti viestin lähettämisen jälkeen.