V této příručce se dozvíš, jak resetovat chat s OpenAI API, aniž by bylo nutné restartovat server. Často se stane, že chceš zapomenout na dosavadní chatovou historii a začít znovu. Zde hraje klíčovou roli identifikátor chatu (Chat-ID), který umožňuje resetovat historii na serveru. Následující návod ti ukáže, jak tuto funkci implementovat.
Nejdůležitější zjištění
- Pro resetování chatu můžeš vygenerovat nový identifikátor chatu.
- Chat-ID se vytvoří při obnovení stránky a odešle se na server.
- Server porovná novou Chat-ID s aktuální a resetuje historii chatu, pokud se liší.
Krok za krokem návod
Máš již funkční chatovou aplikaci, ale stále máš malý problém: Nemůžeš resetovat historii chatu. Abychom to umožnili, musíme zavést ID, které se generuje při každém obnovení stránky.
Toto nové Chat-ID pak musíš poslat na svůj server. Pokud server obdrží nové ID, může resetovat historii chatu. Tento proces probíhá jednoduchým porovnáním: Pokud nové Chat-ID nesouhlasí s aktuálním Chat-ID, jsou zprávy smazány.
Pro implementaci tohoto postupu se musíš ujistit, že klient je schopen generovat náhodné ID. ID předáš s ID parametrem do vyhledávání. Podívejme se tedy na soubor index.jsx tvé React komponenty.
V tomto souboru již máš předanou potřebnou zprávu (MSG). Nyní můžeš předat i ID. Můžeš tak efektivně použít šablonové řetězce, které usnadňují vložení proměnných.
Převeď tedy kód do šablonového řetězce a vlož proměnné. Může to vypadat například takto: MSG je tvé pole vstupu a ID je tvoje nové ID.
Nyní se musíš zamyslet nad generováním ID. Jednoduchou metodou je využití data. Stačí definovat konstantu, která použije aktuální čas v milisekundách od roku 1970. Pro tento účel můžeš použít Date.now() a tento čas převést na řetězec.
Nyní při každém obnovení stránky odešleme nové ID. To by mělo pracovat podle očekávání. Vyzkoušejme si to a odešleme zprávu, abychom zjistili, zda jsou data správně odeslána na server.
Pokud odešleš zprávu „how are you“, na serveru uvidíš, že jsou tam dvě zprávy: jedna od uživatele a druhá od asistenta.
Pokud však odešleš další otázku, například „proč nemá city“, historie by měla být správně resetována. Zůstane tam pouze aktuální otázka a její odpověď.
To znamená, že pokud zkontrolujeme ID - nesmí dojít ke konfliktu, např. že nové Chat-ID je stejné jako aktuální Chat-ID - logika by měla být zjednodušena tak, aby to správně fungovalo.
Abychom se ujistili, že to funguje, proveďme test znovu. Obnov stránku a odešli zprávu ještě jednou. Nyní by měly být uloženy čtyři zprávy v poli.
Pole zobrazuje celkový počet odeslaných zpráv, což znamená, že historie byla správně resetována. Děje se tak však pouze v případě obnovení stránky. Můžeš také implementovat tlačítko, které spouští resetování chatu, ale pro naše účely je prozatím dostačující obnovení stránky.
Je však třeba poznamenat, že pole pro vstup se automaticky nevyprázdní po odeslání zprávy. Dosud není úplně viditelná celá historie chatu, což znamená, že vidíte vždy jen poslední otázku a odpověď. To také budeme řešit v budoucích tutoriálech.
Shrnutí
V této příručce jste se naučili, jak implementovat funkci resetování historie chatu ve vaší chatovací aplikaci. Úspěšně jsme resetovali historii vkladem nové chatovací ID při načtení stránky. Existuje několik dalších vylepšení, která provedeme v nadcházejících krocích, jako je vymazání pole pro vstup a zobrazení celé historie chatu.
Často kladené otázky
Jak resetovat chat?Resetujete chatovací historii obnovením stránky.
Jak je generováno nové ID?Nové ID je generováno z aktuálního času v milisekundách.
Mohu resetovat chat i bez obnovení stránky?Ano, můžete implementovat tlačítko, které resetuje chat.
Co se stane, když jsou ID stejná?Pokud je nové ID stejné jako aktuální ID, historie není resetována.
Musím ručně vymazat pole pro vstup?Ano, v současné době se pole pro vstup nevyprázdní automaticky po odeslání zprávy.