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.

Kuidas saate vestluse OpenAI API-ga lähtestada

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.

Kuidas saad vestluse OpenAI API-ga nulli seada

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.

Kuidas saad vestluse OpenAI API-ga taastada

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.

Kuidas saad vestluse OpenAI API-ga lähtestada

Kui sa saadad sõnumi „kuidas sul läheb“, näed serveris, et seal on kaks sõnumit: üks kasutajalt ja teine assistendilt.

Kuidas saad vestluse OpenAI API-ga nullida

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.

Kuidas saad vestluse OpenAI API-ga nullida

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.

Kuidas saad vestluse OpenAI API-ga lähtestada

Selle toimimise tagamiseks tee test uuesti. Laadi leht uuesti ja saada sõnum veel kord. Nüüd peaks olema nelja sõnumit massiivis salvestatud.

Kuidas saad vestluse OpenAI API-ga lähtestada

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.

Kuidas saad vestluse OpenAI API-ga lähtestada

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.

Kuidas saad vestlust OpenAI API-ga lähtestada

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.