Jak AI powinno naturalnie reagować na nagłą zmianę tematu
Gdy użytkownik nagle pyta o coś nowego, AI powinno potraktować najnowszą prośbę jako zadanie do wykonania, krótko odnotować zmianę i uwzględnić tylko te wcześniejsze informacje, które wyraźnie się przydają. Jeśli słowa użytkownika mogą oznaczać zarówno rozpoczęcie nowego wątku, jak i kontynuację, zadaj jedno konkretne pytanie o związek między nimi. Ta prosta sekwencja pomaga asystentowi podążać za użytkownikiem, nie tracąc przydatnego kontekstu ani nie wciągając dawnych treści do niezwiązanej prośby.
Dlaczego na zmianę tematu warto odpowiedzieć wprost
W zwykłej rozmowie ludzie przechodzą między tematami, a badania nad dialogiem traktują zmiany tematu jako normalny element dłuższych wymian. Badanie 215 rozmów z korpusu Switchboard wykazało, że zmiany tematu często inicjował jeden z uczestników; w innym nurcie badań sprawdzano konkretnie, jak systemy wykrywają zmianę i generują na nią odpowiedź. Wyniki te potwierdzają praktyczną zasadę projektowania: konwersacyjna AI powinna rozpoznawać, kiedy użytkownik zmienił bieżące zadanie, zamiast zakładać, że każda wiadomość jest kontynuacją poprzedniej. (An Empirical Study of Topic Transition in Dialogue; TIAGE: A Benchmark for Topic-Shift Aware Dialog Modeling)
Pierwsza odpowiedź powinna jasno sygnalizować zmianę, a nie zmuszać użytkownika do wyjaśniania, dlaczego do niej doszło. Jeśli ktoś rozmawiał o posiłku na weekend, a potem pyta: „Pomożesz mi napisać krótkie podziękowanie?”, asystent może po prostu odpowiedzieć: „Jasne — zajmijmy się tą wiadomością”. Długie podsumowanie rozmowy o posiłku utrudnia interakcję i może sprawić, że asystent będzie wyglądał na przywiązanego do poprzedniego tematu.
Zacznij od rozpoznania nowego zadania
Odczytaj z najnowszej wiadomości, jakiego działania oczekuje użytkownik: napisania tekstu, wyjaśnienia, porównania, zaplanowania, poprawienia albo odpowiedzi. Następnie ustal, czego dotyczy to działanie, i uwzględnij wszelkie ograniczenia podane w tej samej wiadomości. Nowa prośba, na przykład „Podaj trzy pomysły na deszczowe popołudnie”, jasno określa zadanie, nawet jeśli wcześniejsze wypowiedzi dotyczyły innego tematu. Asystent może odpowiedzieć wprost, biorąc pod uwagę wcześniejsze preferencje tylko wtedy, gdy ewidentnie mają zastosowanie — na przykład wcześniej wyrażoną preferencję dotyczącą aktywności w domu.
Przydatne potwierdzenie zmiany jest krótkie i konkretne: „Przechodzimy do planów na deszczowy dzień: oto trzy pomysły na aktywności w domu”. W wielu przypadkach sama odpowiedź może sygnalizować, że asystent zauważył zmianę. Unikaj rozbudowanych interpretacji motywów użytkownika; zmiana tematu wskazuje na inne zadanie w rozmowie, ale nie wyjaśnia, dlaczego użytkownik ją wprowadził. Wskazówki Microsoftu dotyczące nawigacji w botach podobnie przestrzegają przed upieraniem się przy bieżącym toku rozmowy, gdy użytkownik kieruje ją gdzie indziej, oraz przed wtrącaniem nieistotnych informacji z przeszłości. (Design bot navigation)
Zachowuj tylko te informacje, które są przydatne
Zanim przeniesiesz szczegóły do nowego tematu, sprawdź ich przydatność: czy ta informacja konkretnie wpłynie na odpowiedź na nową prośbę? Jeśli tak, zachowaj ją. Jeśli nie, pomiń ją. Podany budżet może mieć znaczenie przy przejściu od „pomóż mi wybrać miejsce na jednodniową wycieczkę” do „co mam ze sobą spakować?”. Dokładne brzmienie niezwiązanych z tym życzeń urodzinowych raczej nie ma znaczenia, gdy użytkownik prosi o listę rzeczy do spakowania.
To ocena przydatności, a nie twierdzenie, że historię rozmowy należy wymazać. Niektóre modele dialogowe dzielą wcześniejsze wypowiedzi na części uwzględniające tematy, a interfejsy konwersacyjne mogą też zachowywać stan między kolejnymi wiadomościami. Mechanizmy te pokazują, że kontekstem można zarządzać na różnych poziomach; same nie określają, które dawne informacje są istotne dla konkretnej prośby. W praktyce asystent powinien odróżniać stałe ograniczenia od szczegółów dotyczących pojedynczego zadania i wspominać wcześniej podaną informację tylko wtedy, gdy pomaga ona wyjaśnić odpowiedź. (Topic-Aware Multi-turn Dialogue Modeling; Conversation state)
Zwięzła zasada robocza brzmi: zachowuj jasno wyrażone preferencje użytkownika i aktualne ograniczenia, pomijaj niedokończone kroki z poprzedniego zadania, chyba że użytkownik do niego wraca, i nie przywołuj dawnych szczegółów rozmowy tylko po to, by pokazać, że zostały zapamiętane. To redakcyjne podsumowanie wyników badań i wskazówek projektowych, a nie cytowana ani zweryfikowana eksperymentalnie formuła.
Ustal, czy zmiana jest wyraźna, czy niejednoznaczna
Wyraźna zmiana nie wymaga doprecyzowania. Zwroty takie jak „nowe pytanie”, „osobny temat” czy „teraz pomóż mi…” jasno wskazują, czego chce użytkownik. Podobnie jest z kompletną prośbą, która nie zależy w istotny sposób od poprzedniej wymiany. Krótko odnotuj zmianę i przejdź do odpowiedzi.
Nawiązanie jest niejednoznaczne, gdy użytkownik używa zaimka lub odniesienia, które może wskazywać na więcej niż jeden wcześniejszy element, albo gdy nie wiadomo, czy chce przerobić dotychczasową treść, czy zacząć coś nowego. Na przykład po rozmowie o dwóch możliwych prezentach pytanie „Możesz nadać temu bardziej osobisty charakter?” nie wskazuje jasno, o który chodzi. Zadaj jedno konkretne pytanie: „Masz na myśli książkę czy kurs gotowania?”. Wskazówki Microsoftu dotyczące rozpoznawania intencji zalecają zadawanie konkretnych pytań i podawanie opcji, a jednocześnie przestrzegają, że zbyt wiele pytań może zmienić rozmowę w przesłuchanie. (Disambiguate customer intent)
Jeśli prawdopodobna interpretacja jest bezpieczna i łatwo ją skorygować, asystent może ją podać i kontynuować: „Zakładam, że chodzi o podziękowanie — oto cieplejsza wersja”. Rób tak tylko wtedy, gdy błędne przypuszczenie nie zmarnuje czasu użytkownika ani nie zniekształci odpowiedzi. Jeśli możliwe interpretacje prowadzą do znacznie różnych wyników, najpierw dopytaj.
Praktyczna sekwencja odpowiedzi
Przy każdej nagłej zmianie tematu zastosuj krótką sekwencję:
Określ nowe zadanie. Ustal, o co użytkownik prosi teraz i jakie ograniczenia podał.
Sprawdź, czy zmiana jest wyraźna. Jeśli użytkownik jasno przeszedł dalej lub podał samodzielną nową prośbę, zaakceptuj zmianę.
Przefiltruj wcześniejszy kontekst. Uwzględnij tylko tę preferencję, informację lub ograniczenie, które bezpośrednio wpływa na nową odpowiedź.
Wyjaśnij rzeczywistą niejednoznaczność jednym pytaniem. Zadaj jedno zwięzłe pytanie, które pozwoli odróżnić prawdopodobne interpretacje; jeśli ułatwi to odpowiedź, podaj opcje.
Wykonaj wybrane zadanie. Nie wracaj do starego wątku, chyba że użytkownik o to poprosi.
Rozważmy przykład: użytkownik najpierw prosi o prosty jadłospis na piknik i wspomina, że jeden z gości unika orzechów. Później mówi: „Inne pytanie: zaproponuj drobny prezent dla sąsiada”. Wyraźne przejście jasno wskazuje nową intencję. Ograniczenie dotyczące orzechów nie ma wpływu na pomysły na prezent, więc powtarzanie go lub uwzględnianie byłoby zbędne. Jeśli natomiast użytkownik powie: „Możesz sprawić, żeby to było dla nich bezpieczniejsze?”, asystent powinien dopytać, do czego odnosi się „to” i kogo oznacza „nich”, jeśli we wcześniejszych wypowiedziach pojawiło się kilka możliwych rzeczy lub osób.
Typowe błędy, przez które zmiana tematu wydaje się niezręczna
Kontynuowanie porzuconego zadania. Jeśli użytkownik zadaje nowe, kompletne pytanie, nie nalegaj na dokończenie wcześniejszej listy kontrolnej ani nie pytaj, czy na pewno chce zmienić temat. Wskazówki projektowe dla Dialogflow CX opisują na przykład jawne intencje anulowania jako sposób pozwalający użytkownikom porzucić aktywny temat rozmowy. Szersza zasada projektowania jest taka, by umożliwić użytkownikowi zmianę kierunku. (Intents | Dialogflow CX)
Traktowanie każdego nowego zdania jak rozmowy od zera. Niektóre krótkie wiadomości zależą od wcześniejszego kontekstu: bezpośrednio po podaniu listy zdanie „Skróć drugą propozycję” jest niezrozumiałe. Zachowaj bezpośredni kontekst potrzebny do ustalenia, do czego odnosi się użytkownik, nawet gdy szerszy temat się zmienia.
Wymyślanie powiązania. To, że dwa tematy pojawiają się obok siebie, nie oznacza, że użytkownik chce je połączyć. Jeśli jego słowa nie wskazują na taki związek, odpowiedz na nową prośbę na jej własnych warunkach.
Zadawanie pytania, gdy intencja jest już jasna. Doprecyzowanie jest przydatne, gdy zmienia odpowiedź. W przeciwnym razie opóźnia wykonanie zadania. Pytaj o brakujące powiązanie, a nie o sam fakt zmiany tematu.
Naturalne przejście w jednym zdaniu
Przydatny schemat: „Jasne — [nowe zadanie]. Uwzględnię [istotny wcześniejszy szczegół], jeśli nadal ma zastosowanie; [jedno konkretne pytanie]?”. Zadawaj pytanie na końcu tylko wtedy, gdy rzeczywista niejednoznaczność wpływa na odpowiedź. W przypadku samodzielnej prośby pomiń je: „Jasne — oto trzy niedrogie pomysły na aktywność w domu w deszczowe popołudnie”.
Cel jest prosty: podążać za jasno wyrażoną intencją użytkownika, zachowywać kontekst tylko wtedy, gdy jest przydatny, i zadawać jedno konkretne pytanie doprecyzowujące, gdy związek rzeczywiście nie jest jasny. Dzięki temu nagła zmiana tematu staje się zwykłym elementem rozmowy, a odpowiedź skupia się na tym, czego użytkownik chce teraz.
