Ebben az útmutatóban megtudhatod, hogyan állíthatod vissza a csevegést az OpenAI API-val anélkül, hogy újra kellene indítanod a kiszolgálót. Gyakran vannak olyan helyzetek, amikor egyszerűen el akarod felejteni az előző csevegési előzményeket, és mindent elölről kezdeni. A csevegési azonosító itt központi szerepet játszik, mivel lehetővé teszi az előzmények visszaállítását a kiszolgálón. A következő bemutatóban bemutatjuk, hogyan lehet ezt a funkciót megvalósítani.
A legfontosabb megállapítások
- A csevegés visszaállításához új csevegési azonosítót generálhat.
- A csevegési azonosító az oldal újratöltésekor jön létre és kerül át a szerverre.
- A szerver összehasonlítja az új csevegési azonosítót az aktuális azonosítóval, és visszaállítja a csevegési előzményeket, ha azok különböznek.
Lépésről-lépésre történő útmutatás
Először is, már van egy futó csevegőalkalmazása, de van egy kis probléma: még nem tudja visszaállítani a csevegési előzményeket. Ahhoz, hogy ezt lehetővé tegyük, be kell vezetnünk egy azonosítót, amely minden egyes alkalommal generálódik, amikor az oldal újratöltődik.
Ezt az új csevegési azonosítót kell aztán átadnod a szerverednek. Amikor a szerver megkapja az új azonosítót, vissza tudja állítani a csevegési előzményeket. Ez egy egyszerű összehasonlítással történik: ha az új csevegési azonosító nem egyezik az aktuális csevegési azonosítóval, akkor az üzenetlista visszaáll.
Ennek megvalósításához meg kell győződnie arról, hogy az ügyfél képes véletlenszerű azonosítót generálni. Az azonosítót a keresési paraméter ID-vel adja át. Vessünk tehát egy pillantást a React komponensünk index.jsx fájljára.
Itt ebben a fájlban már átadtad a szükséges üzenetet (MSG). Most már az ID-t is átadhatod. Ezt hatékonyan megteheti egy sablonsztring segítségével, hogy megkönnyítse a változók beillesztését.
Tehát alakítsa át a kódot egy sablonsztringgé, és ennek megfelelően illessze be a változókat. Ez így nézhet ki: MSG, ez a beviteli meződ, az ID pedig megegyezik az új azonosítóddal.
Most azon kell gondolkodnia, hogyan generálja az azonosítót. Egy egyszerű módszer a dátum használata. Egyszerűen definiálhatsz egy állandót, amely az aktuális időt használja 1970 óta milliszekundumban. Használhatja a Date.now() függvényt, majd ezt az időt egy karakterlánccá alakíthatja.
Most már mindig új azonosítót küldünk az oldal újratöltésekor. Ennek a kívánt módon kell működnie. Teszteljük le, és küldjünk egy üzenetet, hogy lássuk, helyesen küldi-e az adatokat a szerverre.
Ha elküldjük a "hogy vagy" üzenetet, akkor a szerveren látni fogjuk, hogy két üzenet van: egy a felhasználótól és egy az asszisztenstől.
Ha azonban egy másik kérdést küld, például "miért nincsenek érzései", akkor az előzményeket ennek megfelelően vissza kell állítani. Csak az aktuális kérdésnek és az arra adott válasznak kell ott lennie.
Ez azt jelenti, hogy az azonosítók ellenőrzésekor - nem szabad, hogy konfliktus legyen, pl. hogy az új chat azonosító megegyezik az aktuális chat azonosítóval - a logikát úgy kell egyszerűsíteni, hogy ez tisztán fusson.
Hogy megbizonyosodjunk róla, hogy működik, futtassuk le újra a tesztet. Töltse újra az oldalt, és küldje el az üzenetet még egyszer. Most négy üzenetet kell tárolni a tömbben.
A tömb mutatja az elküldött üzenetek teljes számát, ami azt jelenti, hogy helyesen állítottuk vissza az előzményeket. Ez azonban csak akkor történik meg, ha újra betöltjük az oldalt. Alternatívaként implementálhatunk egy gombot is, amely kiváltja a csevegés visszaállítását, de a mi céljainkhoz egyelőre elegendő az oldal újratöltése.
Vegyük azonban figyelembe, hogy a beviteli mező nem törlődik automatikusan egy üzenet elküldése után. A csevegések teljes előzménye szintén nem látható még, ami azt jelenti, hogy mindig csak az utolsó kérdést és választ látjuk. Ezzel is foglalkozni fogunk a jövőbeni oktatóanyagokban.
Összefoglaló
Ebben az útmutatóban megtanulta, hogyan valósíthatja meg a csevegési előzmények visszaállítása funkciót a csevegőalkalmazásban. Az oldal újbóli betöltésekor egy új csevegési azonosító bevezetésével sikeresen visszaállítható az előzmények. Van még néhány fejlesztés, amelyet a következő lépésekben fogunk megvalósítani, például a beviteli mező törlése és a csevegési előzmények teljes körű megjelenítése.
Gyakran ismételt kérdések
Hogyan tudom visszaállítani a csevegésielőzményeket? Az oldal újratöltésével a csevegési előzmények visszaállnak.
Hogyan generálódik az új azonosító?Az új azonosító az aktuális időből generálódik milliszekundumban kifejezve.
Visszaállíthatom a csevegést az oldal újratöltése nélkül?Igen, egy olyan gombot is implementálhat, amely visszaállítja a csevegést.
Mi történik, ha az azonosítók megegyeznek?Ha az új azonosító megegyezik az aktuális azonosítóval, az előzmények nem kerülnek visszaállításra.
A beviteli mezőt manuálisan kell törölni?Igen, jelenleg a beviteli mező nem törlődik automatikusan az üzenet elküldése után.