Blog Metlivi

Jak sprawić, by czat z postacią pamiętał korektę użytkownika między sesjami

Gdy użytkownik koryguje szczegóły fikcyjnej postaci, czat powinien zapisać poprawioną wersję wraz z jej zakresem, zastąpić każdą sprzeczną starszą wersję oraz udostępnić zapisaną notatkę do wglądu i edycji. Powinien też odróżniać trwałe preferencje użytkownika od faktów dotyczących tylko jednej sceny opowieści. Zanim system użyje później zapamiętanego szczegółu, powinien sprawdzić, czy jest on aktualny i istotny; jeśli nie ma jasnych przesłanek, powinien zapytać, zamiast wymyślać wspólną przeszłość. Ten poradnik dotyczy zapamiętywania informacji i rozwiązywania konfliktów, a nie tego, jak zareagować na nieporozumienie w danej chwili.

27 września 20268 min czytaniaAutor: Metlivi Editorial Team
Sekcja 1

Co czat z postacią powinien pamiętać?

Rozważmy przykładową sytuację: użytkownik mówi: „Mira ma zielone oczy, nie niebieskie”. Korekta może dotyczyć stałej cechy postaci, tymczasowej wersji Miry w konkretnej grze fabularnej albo po prostu preferencji użytkownika co do sposobu opisywania Miry. Pamięć, która zapisuje tylko „oczy: zielone”, gubi kontekst, dzięki któremu ta informacja jest użyteczna.

Praktyczny zapis w pamięci powinien uwzględniać co najmniej podmiot, poprawiony szczegół, zakres oraz informację, czy użytkownik chciał, aby został on zapamiętany na stałe. Na przykład:

Ta struktura to zalecenie dotyczące projektowania produktu, a nie format określony w badaniach. Ma zapobiec temu, by szczegół dotyczący jednej sceny po cichu stał się faktem ogólnym. Korekta dotycząca konkretnej sceny mogłaby zostać zapisana na przykład jako „W scenie na zimowym balu Mira ma na sobie zielony płaszcz”. Taka notatka nie powinna zastępować informacji o jej zwykłym stroju ani wyglądzie.

Podmiot: Mira, fikcyjna postać

Szczegół: Zielone oczy

Zakres: Ogólny opis postaci Miry

Status: Aktualne; zastępuje wcześniejszą notatkę „niebieskie oczy”

Źródło: Korekta użytkownika

Sekcja 2

Jak korekta powinna zastąpić starszą zapisaną informację?

Traktuj wyraźną korektę jako aktualizację dotyczącego jej faktu, a nie jako dodatkowy fakt, który pozostawia aktywne obie wersje. Jeśli system zachowa informację „Mira ma niebieskie oczy” i doda „Mira ma zielone oczy”, późniejsze wyszukiwanie może przywołać dowolną z nich. Zaktualizowany zapis powinien oznaczać starą wartość jako nieaktualną albo usuwać ją z aktywnego użycia, zachowując przy tym wystarczającą historię, by wyjaśnić zmianę, jeśli produkt udostępnia dziennik pamięci.

To rozróżnienie ma znaczenie, ponieważ informacje mogą się zmieniać. W pracy Keep Me Updated! Memory Management in Long-term Conversations Bae i współautorzy przedstawiają zadanie i zbiór danych do śledzenia aktualizacji informacji o użytkownikach w wielu sesjach rozmów. Reprezentują wspomnienia jako opisy tekstowe i proponują selektywne usuwanie informacji, które stały się nieaktualne lub zbędne. W eksperymentach porównują to podejście z metodami bazowymi, które pozostawiają zapisane wspomnienia bez zmian. Badanie dotyczy pamięci konwersacyjnej długoterminowej; nie testuje konkretnie czatów z fikcyjnymi postaciami ani nie ustanawia jednego uniwersalnego projektu pamięci.

W czacie z postacią stosuj tę samą ogólną logikę aktualizacji z należytą ostrożnością: bezpośrednia korekta „nie niebieskie — zielone” stanowi mocny dowód, że w podanym zakresie poprzednia wartość jest błędna. Nowy szczegół sceny nie świadczy automatycznie o zmianie trwałej cechy postaci. Jeśli zakres nie został określony, a różnica będzie miała znaczenie później, zadaj krótkie pytanie uzupełniające, na przykład: „Czy mam zapamiętać, że Mira ma zielone oczy we wszystkich historiach, czy tylko w tej wersji?”

Sekcja 3

Jak system może odróżniać preferencje użytkownika od faktów dotyczących opowieści?

Zapisuj preferencje i fakty dotyczące fikcyjnego świata w osobnych kategoriach. Preferencją może być „Użytkownik woli, by dialogi Miry były zwięzłe”. Faktem z opowieści może być „W tej scenie Mira właśnie dotarła na stację”. Odpowiadają na różne pytania: preferencja wpływa na sposób, w jaki czat odpowiada, a fakt z opowieści pomaga zachować ciągłość narracji.

Określ zakres obu rodzajów informacji. Preferencja może dotyczyć wszystkich czatów, jednej postaci albo tylko aktualnej gry fabularnej. Fakt z opowieści może dotyczyć jednej sceny, jednego wątku fabularnego albo ogólnego profilu postaci. Nie wyciągaj wniosków o szerokiej preferencji na podstawie pojedynczej korekty. Jeśli użytkownik mówi „Mira ma zielone oczy”, nie oznacza to samo w sobie, że chce, aby każda postać miała zielone oczy albo że szczegół ten dotyczy każdej alternatywnej wersji Miry.

Pomocna może być prosta sekwencja decyzji:

Te kroki to proponowany sposób postępowania, wynikający z potrzeby aktualizowania informacji z rozmów. Nie oznaczają, że stosuje je jakikolwiek konkretny produkt czatowy.

Ustal, czego dotyczy korekta: preferencji użytkownika, cechy postaci czy bieżącego stanu sceny.

Zachowaj zakres określony przez użytkownika, w tym ograniczenia takie jak „w tej historii” lub „od teraz”.

Jeśli zakres nie został podany, przyjmij jedynie najwęższą rozsądną interpretację albo zapytaj, zanim zapiszesz informację do pamięci między sesjami.

Sprawdź, czy istnieje starsza zapisana informacja o tym samym podmiocie i zakresie. Zastąp ją tylko wtedy, gdy nowe stwierdzenie rzeczywiście jest z nią sprzeczne.

Pozostaw bez zmian niezwiązane informacje. Zmiana koloru oczu Miry nie powinna wpływać na jej wiek, relacje ani preferowany przez użytkownika styl pisania.

Sekcja 4

Jak system powinien obsługiwać sprzeczne wspomnienia?

Rozwiązuj konflikty, porównując podmiot, zakres i czas — nie faworyzując bezrefleksyjnie zdania, które najłatwiej znaleźć. Wyraźna, późniejsza korekta użytkownika powinna na ogół mieć pierwszeństwo przed wcześniejszą wersją tego samego faktu w tym samym zakresie. Szczegół z innej gry fabularnej nie powinien zastępować informacji z bieżącej. Jeśli system nie potrafi ustalić, czy dwa zapisy dotyczą tej samej wersji postaci, powinien je rozdzielić albo zapytać.

Załóżmy na przykład, że starsze wspomnienie brzmi „Mira ma niebieskie oczy”, a późniejsza wiadomość: „W tej historii w alternatywnym wszechświecie Mira ma zielone oczy”. Późniejsze stwierdzenie aktualizuje wygląd Miry na potrzeby tej historii, ale niekoniecznie zmienia domyślny profil postaci. Jeśli użytkownik mówi: „Właściwie od teraz niech ma zielone oczy”, zakres jest szerszy i można zaktualizować domyślny zapis. Nie łącz po cichu sprzecznych wersji w twierdzenie, że użytkownik zawsze opisywał Mirę tak samo.

Systemy pamięci potrzebują też sposobu obsługi niepewności. Jeśli daty lub zakresy dwóch zapisów są niejasne, oznacz konflikt jako nierozstrzygnięty, zamiast przedstawiać którykolwiek szczegół z pewnością. Krótkie pytanie jest lepsze niż pewne siebie, ale niepoparte wspomnienie.

Sekcja 5

Jak użytkownicy mogą zobaczyć i kontrolować zapamiętane informacje?

Po zapisaniu korekty potwierdź konkretną zmianę: „Rozumiem — zapamiętam, że Mira ma zielone oczy w ogólnym profilu postaci, zastępując wcześniejszą informację o niebieskich oczach”. Jeśli system zapisuje węższy fakt, powiedz to: „Zachowam zielony płaszcz jako szczegół tej sceny”. Takie potwierdzenie daje użytkownikowi szansę od razu wychwycić błąd w zakresie.

Widok pamięci powinien w prostym języku pokazywać zapisane brzmienie i jego zakres oraz umożliwiać edycję lub usunięcie informacji. Jeśli produkt potrafi wyświetlać zastąpione wpisy, powinien oznaczać je jako nieaktualne, zamiast przedstawiać je jako równie aktualne. Dzięki temu użytkownikom łatwiej zrozumieć, dlaczego czat z postacią przywołuje dany szczegół, i poprawić zapis bez konieczności opowiadania całej historii od nowa.

Nie sugeruj, że informacja została zapamiętana, jeśli nie została zapisana, ani nie twierdź, że postać pamięta dawną rozmowę, której system nie może zweryfikować. Postać może mówić naturalnie, a interfejs lub odpowiedź nadal mogą uczciwie informować o tym, jakie dane są przechowywane.

Sekcja 6

Jak należy testować późniejsze przypominanie?

Testuj zachowywanie informacji między sesjami, a nie tylko w tej samej rozmowie, w której wprowadzono korektę. Badanie rozumienia sytuacji przeprowadzone przez Yanga i Ettingera ocenia ChatGPT w syntetycznym środowisku zaprojektowanym do sprawdzania, czy śledzi i opisuje zmieniające się stany otoczenia. Autorzy opisują błędy w zachowywaniu informacji o stanie w czasie i omawiają nieciągłość pamięci kontekstowej oraz podatność na halucynowane aktualizacje jako czynniki występujące w ich warunkach badawczych. Było to kontrolowane badanie ChatGPT w tym środowisku, opublikowane w 2023 roku; nie stanowi dowodu dotyczącego każdego obecnego modelu, produktu ani systemu z fikcyjnymi postaciami.

Ukierunkowany test czatu z postacią może obejmować niewielki zestaw zaplanowanych rozmów:

Oceń każdy test pod kątem zgodności z zamierzonym zakresem: poprawnego przywołania informacji, zastąpienia starych danych, oddzielenia faktów dotyczących sceny od informacji ogólnych oraz uczciwego traktowania niepewności. Uwzględnij przypadki, w których prawidłową odpowiedzią jest prośba o wyjaśnienie. System, który konsekwentnie nie zgaduje, gdy zapisane notatki są niejednoznaczne, radzi sobie lepiej niż taki, który wymyśla ciągłość.

Ustaw domyślny fakt o postaci, skoryguj go, zakończ sesję i zapytaj o niego w nowej sesji.

Zapisz szczegół dotyczący wyłącznie sceny i sprawdź, czy nie stanie się trwałą cechą postaci.

Zmień preferencję i potwierdź, że w określonym zakresie starsza preferencja nie wpływa już na późniejsze odpowiedzi.

Wprowadź drugą wersję tej samej postaci i sprawdź, czy obie wersje pozostają odrębne.

Zapytaj o niezwiązany szczegół i sprawdź, czy korekta nie zmieniła innych wspomnień.

Zapytaj, co użytkownik powiedział wcześniej, i sprawdź, czy system nie zmyśla wcześniejszej rozmowy, by uzasadnić odpowiedź.

Sekcja 7

Niezawodna ścieżka od korekty do przypomnienia

Korekta powinna przejść jasną ścieżkę: ustalenie, czego dotyczy, zachowanie jej zakresu, aktualizacja każdej sprzecznej informacji, pokazanie zapisanej zmiany oraz sprawdzenie, czy późniejsze odpowiedzi przywołują ją bez rozszerzania jej o niepopartą historię. Taka sekwencja daje czatowi z postacią praktyczny sposób na zachowanie spójności między wypowiedziami i sesjami, pozostawiając użytkownikowi kontrolę nad fikcyjnym światem. Badania pokazują, że aktualizacje pamięci i śledzenie stanu należy traktować poważnie; przedstawiony tu konkretny sposób postępowania jest zaleceniem projektowym, a jego działanie należy sprawdzić w produkcie, w którym będzie używany.

Warto przeczytać

Eksploruj dalej ten temat