Šajā rokasgrāmatā uzzināsiet, kā ar OpenAI API palīdzību atiestatīt tērzēšanu, restartējot serveri. Bieži ir situācijas, kad jūs vienkārši vēlaties aizmirst iepriekšējo tērzēšanas vēsturi un sākt visu no jauna. Šajā gadījumā galvenā loma ir tērzēšanas ID , jo tas ļauj atjaunot vēsturi serverī. Šajā pamācībā tiks parādīts, kā īstenot šo funkciju.
Svarīgākie secinājumi
- Lai atjaunotu tērzēšanas vēsturi, varat izveidot jaunu tērzēšanas ID.
- Tērzēšanas ID tiek izveidots, kad lapa tiek ielādēta no jauna un pārsūtīta uz serveri.
- Serveris salīdzina jauno tērzēšanas ID ar pašreizējo un atiestata tērzēšanas vēsturi, ja tie atšķiras.
Soli pa solim
Pirmkārt, jums jau ir palaista tērzēšanas lietojumprogramma, taču ir neliela problēma: vēl nevarat atiestatīt tērzēšanas vēsturi. Lai tas būtu iespējams, ir jāievieš ID, kas tiek ģenerēts katru reizi, kad tiek pārlādēta lapa.
Pēc tam šis jaunais tērzēšanas ID ir jānodod serverim. Kad serveris saņem jauno ID, tas var atiestatīt tērzēšanas vēsturi. Tas tiek darīts, izmantojot vienkāršu salīdzināšanu: ja jaunais tērzēšanas ID nesakrīt ar pašreizējo tērzēšanas ID, ziņojumu saraksts tiek atiestatīts.
Lai to īstenotu, ir jāpārliecinās, ka klients spēj ģenerēt nejaušu ID. Šo ID nodosiet kopā ar meklēšanas parametru ID. Aplūkosim jūsu React komponenta index.jsx failu.
Šajā failā jūs jau esat nodevis nepieciešamo ziņojumu (MSG). Tagad jūs varat nodot arī ID. To var efektīvi izdarīt, izmantojot šablona virkni, lai atvieglotu mainīgo ievietošanu.
Tātad pārveidojiet kodu par šablona virkni un attiecīgi ievietojiet mainīgos. Tas varētu izskatīties šādi: MSG, tas ir jūsu ievades lauks, un ID ir tāds pats kā jūsu jaunais ID.
Tagad ir jādomā, kā ģenerēt ID. Vienkārša metode ir izmantot datumu. Varat vienkārši definēt konstanti, kas izmanto pašreizējo laiku milisekundēs no 1970. gada. Var izmantot Date.now() un pēc tam pārvērst šo laiku virknē.
Tagad, pārlādējot lapu, mēs vienmēr nosūtīsim jaunu ID. Tam vajadzētu darboties, kā paredzēts. Izmēģināsim to un nosūtīsim ziņojumu, lai redzētu, vai dati uz serveri tiek nosūtīti pareizi.
Ja nosūtīsiet ziņu "Kā tu esi", serverī redzēsiet, ka ir divas ziņas: viena no lietotāja un otra no palīga.
Tomēr, ja nosūtīsiet citu jautājumu, piemēram, "kāpēc tam nav jūtu", vēsturei būtu jābūt attiecīgi atiestatītai. Tajā jābūt tikai pašreizējam jautājumam un atbildei uz to.
Tas nozīmē, ka, pārbaudot ID - nedrīkst būt konfliktu, piemēram, ka jaunais tērzēšanas ID ir tāds pats kā pašreizējais tērzēšanas ID -, loģika ir jāvienkāršo, lai tas notiktu tīri.
Lai pārliecinātos, ka tas darbojas, palaidiet testu vēlreiz. Atkārtoti ielādējiet lapu un vēlreiz nosūtiet ziņojumu. Tagad masīvā jāuzglabā četri ziņojumi.
Masīvā ir redzams kopējais nosūtīto ziņojumu skaits, kas nozīmē, ka vēsture ir atiestatīta pareizi. Tomēr tas notiek tikai pēc lapas pārlādēšanas. Kā alternatīvu var ieviest arī pogu, kas izraisa tērzēšanas atiestatīšanu, taču mūsu vajadzībām pagaidām pietiek ar lapas pārlādēšanu.
Tomēr ņemiet vērā, ka pēc ziņojuma nosūtīšanas ievades lauks netiek automātiski izdzēsts. Pagaidām nav redzama arī pilna tērzēšanas vēsture, kas nozīmē, ka vienmēr redzams tikai pēdējais jautājums un atbilde. Mēs pievērsīsimies arī šim jautājumam turpmākajās pamācībās.
Kopsavilkums
Šajā rokasgrāmatā jūs uzzinājāt, kā tērzēšanas vēstures atiestatīšanas funkciju ieviest savā tērzēšanas lietojumprogrammā. Ieviešot jaunu tērzēšanas ID, pārlādējot lapu, vēsturi var veiksmīgi atiestatīt. Vēl ir daži uzlabojumi, kurus mēs īstenosim nākamajos soļos, piemēram, ievades lauka dzēšana un tērzēšanas vēstures parādīšana pilnā apjomā.
Biežāk uzdotie jautājumi
Kā es varu atiestatīt tērzēšanasvēsturi? Pārlādējot lapu, tērzēšanas vēsture tiks atiestatīta.
Kā tiek ģenerēts jaunais ID?Jaunais ID tiek ģenerēts no pašreizējā laika milisekundēs.
Vai es varu atiestatīt tērzēšanas vēsturi, nepārlādējot lapu?Jā, jūs varat arī ieviest pogu, kas atiestatīs tērzēšanas vēsturi.
Kas notiek, ja ID ir vienādi?Ja jaunais ID ir vienāds ar pašreizējo ID, vēsture netiks atiestatīta.
Vai ievades lauks ir jāiztīra manuāli?Jā, pašlaik ievades lauks netiek automātiski izdzēsts pēc ziņojuma nosūtīšanas.