Selles õpetuses õpid, kuidas lähtestada vestlus OpenAI API iga, ilma et peaksid serverit uuesti käivitama. Sageli tekivad olukorrad, kus soovid lihtsalt senise vestlusajaloo unustada ja otsast peale alustada. Siin mängib keskset rolli vestluse ID, kuna see võimaldab serveris ajaloo lähtestada. Järgnev õpetus näitab sulle, kuidas seda funktsiooni rakendada.
Kõige olulisemad järeldused
- Vestluse lähtestamiseks saad luua uue vestluse ID.
- Vestluse ID luuakse lehe uuesti laadimisel ja saadetakse serverisse.
- Server võrdleb uut vestluse ID-d praegusega ja lähtestab vestlusajaloo, kui need on erinevad.
Juhised samm-sammult
Sul on juba toimiv vestlus rakendus, kuid on üks väike probleem: Sa ei saa vestlusajalugu veel lähtestada. Selle võimaldamiseks peame sisse viima ID, mis luuakse iga lehe uuesti laadimisel.
Seda uut vestluse ID-d pead siis serverile edastama. Kui server saab uue ID, saab ta lähtestada vestlusajaloo. See toimub lihtsa võrdluse kaudu: kui uus vestluse ID ei ühti praeguse vestluse ID-ga, lähtestatakse sõnumite loend.
Selle rakendamiseks pead tagama, et klient suudab genereerida suvalise ID. Sa saad edastada ID otsinguparameetrina. Niisiis, vaatame üle oma Reacti komponendi index.jsx faili.
Selles failis oled juba edastanud vajaliku sõnumi (MSG). Nüüd võid ka edastada ID. Sa saad seda teha tõhusalt kasutades malli-stringe, mis muudab muutujate sisestamise lihtsamaks.
Teisenda kood malli-stringiks ja sisesta muutujad vastavalt. See võiks välja näha nii: MSG, see on sinu sisestusväli, ja ID on võrdne sinu uue ID-ga.
Aga nüüd pead mõtlema ID genereerimisele. Üks lihtne meetod on kasutada kuupäeva. Sa saad lihtsalt määrata konstandi, mis kasutab praegust aega millisekundites alates 1970. aastast. Selleks saad kasutada Date.now() ja see aeg seejärel stringiks muuta.
Nüüd saad igal lehe uuesti laadimisel alati kaasa saata uue ID. See peaks töötama nagu soovitud. Proovime olukorda ja saadame sõnumi, et näha, kas andmed edastatakse serverile õigesti.
Kui sa saadad sõnumi „kuidas sul läheb“, näed serveris, et seal on kaks sõnumit: üks kasutajalt ja teine assistendilt.
Kui sa aga esitad teise küsimuse, näiteks „miks tal pole tundeid“, peaks ajalugu vastavalt lähtestama. Seal peaks olema ainult praegune küsimus ja vastus.
See tähendab, et kui me kontrollime ID-sid - ei tohiks esineda konflikte, näiteks et uus vestluste ID on sama mis praegune vestluse ID - see loogika peaks lihtsalt toimima.
Selle toimimise tagamiseks tee test uuesti. Laadi leht uuesti ja saada sõnum veel kord. Nüüd peaks olema nelja sõnumit massiivis salvestatud.
Massiiv näitab kõikide saadetud sõnumite koguarvu, mis tähendab, et oleme ajaloo korrektselt tagasi lähtestanud. See juhtub aga ainult lehe uuesti laadimisel. Alternatiivina saaksime rakendada nuppu, mis ajaloo lähtestab, kuid meie eesmärkide jaoks on lehe uuesti laadimine esialgu piisav.
Seda silmas pidades tuleb märkida, et pärast sõnumi saatmist ei tühjendata sisestusvälja automaatselt. Samuti ei ole seni nähtav kogu jututoa ajalugu, mis tähendab, et näed alati vaid viimast küsimust ja vastust. Seda asjaolu käsitleme tulevastes õpetustes.
Kokkuvõte
Selles juhendis õppisid, kuidas saad rakendada vestlusajaloo lähtestamise funktsiooni oma jututoa rakenduses. Lehe uuesti laadimisel uue vestlustuvastaja lisamisega õnnestus ajalugu edukalt nullida. Järgmiste sammude käigus viime sisse veel mõned täiustused, nagu sisestusvälja tühjendamine ja kogu jututoa ajaloo täielik kuvamine.
Sagedased küsimused
Kuidas saan vestluse nullida?Lehte uuesti laadides nullitakse vestlusajalugu.
Kuidas genereeritakse uus tuvastaja ID?Uus ID genereeritakse praeguse ajahetke millisekundites.
Kas saan vestluse nullida ka ilma lehe uuesti laadimata?Jah, võid rakendada ka nupu, mis nullib vestluse.
Mis juhtub, kui ID-d on samad?Kui uus ID on võrdne praeguse ID-ga, siis ajalugu ei nullita.
Kas pean sisestusvälja kustutama käsitsi?Jah, hetkel ei tühjendata sisestusvälja pärast sõnumi saatmist automaatselt.