Role prompting polega na tym, że najpierw mówisz modelowi, kim ma być, a dopiero potem, co ma zrobić: "Jesteś cierpliwym korepetytorem z matematyki", "Wciel się w osobę, która rekrutuje na stanowisko junior developera". Rola zmienia, dla kogo pisana jest odpowiedź, jakich słów używa, jak głęboko wchodzi w temat i na co zwraca uwagę. Nie daje modelowi wiedzy, której jeszcze nie ma: rola to sposób na ukierunkowanie odpowiedzi, a nie na dodanie faktów.
Co zmienia rola
Rola to zwięzły sposób na ustawienie kilku rzeczy naraz:
- Odbiorca i słownictwo. Nauczyciel dla początkujących definiuje pojęcia i używa analogii; senior inżynier piszący dla kolegów pomija jedno i drugie.
- Standard. Surowy redaktor wytknie zdanie, które życzliwy czytelnik by przepuścił. Rola decyduje, co jest problemem.
- Punkt ciężkości. Recenzent bezpieczeństwa i recenzent wydajności czytają tę samą funkcję i zauważają różne rzeczy.
- Zachowanie. Rekruter zadaje pytania i czeka; nauczycielowi można kazać dawać wskazówki zamiast odpowiedzi.
Przełączaj się między trzema zakładkami poniżej. Zadanie jest w każdej takie samo; zmienia się tylko rola.
API (Application Programming Interface, interfejs programowania aplikacji) to zestaw reguł, który pozwala jednemu programowi komunikować się z innym. Określa, jakie żądania można wysyłać, jak je wysyłać i co dostaje się w odpowiedzi. Na przykład aplikacja pogodowa korzysta z API serwisu pogodowego, żeby pobrać prognozę. Dzięki API programiści mogą używać funkcji i danych innych systemów, nie wiedząc, jak te systemy działają w środku.
"Jesteś ekspertem" prawie nie zmieniło odpowiedzi: została ta sama ogólnikowa forma, doszedł żargon, bo "ekspert" nic nie mówi o tym, kto czyta. Konkretna rola zmieniła słownictwo, przykład i punkt odniesienia, bo nazwała odbiorcę i coś, co ten odbiorca już zna.
Czego rola nie zmienia
Rola nie doda wiedzy. "Jesteś wybitnym prawnikiem podatkowym" nie da modelowi tegorocznych przepisów podatkowych, jeśli nigdy się ich nie nauczył, a pewna siebie persona może sprawić, że błędna odpowiedź zabrzmi bardziej wiarygodnie, a nie mniej. Nie licz na to, że etykieta eksperta poprawi trafność. Jeśli liczy się poprawność, daj modelowi potrzebne fakty albo dokumenty i poproś, żeby mówił, kiedy nie ma pewności; halucynacje AI opisują prompty, które w tym pomagają.
To samo dotyczy prawdziwych ludzi. "Odpowiedz tak, jak odpowiedziałby słynny programista" daje imitację publicznego stylu tej osoby. Model nie zna jej prywatnych opinii, więc wszystko, co powie jej głosem na nowe pytanie, jest zmyślone.
Pisz konkretne role
Przydatna rola zwykle nazywa cztery rzeczy: zawód, odbiorcę, cel i standard. Porównaj:
- "Jesteś pisarzem" zmienia się w "Jesteś redaktorem bloga technicznego i wycinasz każde zdanie, które nie pomaga początkującemu przejść przez kolejne kroki".
- "Jesteś programistą" zmienia się w "Jesteś senior Python developerem i robisz review pull requesta młodszego kolegi. Najpierw wskaż błędy, potem czytelność, i wyjaśnij każdy punkt tak, żeby mógł się z niego czegoś nauczyć". Pełne prompty do review znajdziesz w promptach do code review.
- "Wciel się w nauczyciela" zmienia się w "Wciel się w nauczyciela chemii, który przygotowuje 15-latka do sprawdzianu. Zadawaj mi pytania zamiast podawać odpowiedzi i daj wskazówkę, gdy na któreś odpowiem źle".
Rola to jedna część promptu, a nie cały prompt. Działa razem z jasnym zadaniem, kontekstem, którego model nie zgadnie, i kształtem odpowiedzi, jakiego oczekujesz; pozostałe części opisuje poradnik pisania promptów. Jeśli rola i zadanie ciągną w różne strony, na przykład "surowy recenzent" ma "uspokoić autora", odpowiedź próbuje zrobić jedno i drugie i często żadnego nie robi dobrze.
Prompty "wciel się w" do ćwiczeń
Forma "wciel się w" (ang. "act as") zyskała popularność dzięki udostępnianym kolekcjom promptów, w których model gra rekrutera, partnera do nauki języka, a nawet terminal Linuksa. Odgrywanie ról przydaje się do wszystkiego, co chcesz przećwiczyć: rozmów kwalifikacyjnych, trudnej rozmowy, prezentacji, nowego języka.
O tym, czy odgrywanie ról działa, czy się rozsypuje, decydują zasady. Powiedz roli, co ma robić w każdej turze, kiedy czekać na ciebie i kiedy skończyć. Bez nich model może przeprowadzić całą sesję w jednej odpowiedzi: pięć pytań naraz albo pytanie z przykładową odpowiedzią.
Świetnie, zaczynajmy. Na początek pytanie z podstaw.
Pytanie 1: Czym w JavaScripcie różnią się let, const i var?
Nie spiesz się i odpowiedz tak jak na prawdziwej rozmowie.
Zmień stanowisko i temat, żeby przećwiczyć własną rozmowę. Zdanie "czekaj na moją odpowiedź" sprawia, że model trzyma się jednego pytania na turę, a "po pięciu pytaniach zakończ" daje sesji koniec i podsumowanie.
Gdzie umieścić rolę
Rola, którą chcesz mieć w każdej odpowiedzi, należy do promptu systemowego: pola system w API albo instrukcji niestandardowych i instrukcji projektu w aplikacjach czatowych. Tam obowiązuje przez całą rozmowę bez powtarzania. Przy jednorazowej prośbie umieść rolę w pierwszym zdaniu wiadomości, przed zadaniem.
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
system="You are a patient programming tutor for adults in their first month of coding. Give hints before full solutions.",
messages=[{"role": "user", "content": "Why does my loop print the last item twice?"}],
)
print(message.content[0].text)
Role działają też w trakcie rozmowy. Gdy model przygotuje szkic, prośba "teraz wciel się w sceptycznego recenzenta powyższego szkicu i wypisz jego trzy najsłabsze punkty" często wydobywa problemy, które pierwsze podejście przeoczyło, bo nowa rola zmienia to, czego model szuka.
Najczęściej zadawane pytania
Czym jest role prompting?
Role prompting polega na tym, że najpierw mówisz modelowi, kim ma być, a dopiero potem, co ma zrobić, na przykład "Jesteś cierpliwym korepetytorem z matematyki dla 12-latków" albo "Wciel się w rekrutera na stanowisko junior developera". Rola kształtuje odbiorcę, słownictwo, głębię i punkt ciężkości odpowiedzi, a w rozmowie może zmienić zachowanie modelu, na przykład sprawić, że zadaje pytania, zamiast na nie odpowiadać.
Czy powiedzenie AI, że jest ekspertem, zwiększa jej trafność?
Nie licz na to. Etykieta w stylu "Jesteś ekspertem światowej klasy" nie daje modelowi wiedzy, której nie ma, a błędna odpowiedź może przez nią brzmieć pewniej. Żeby poprawić trafność, daj modelowi potrzebne fakty albo źródła, poproś, żeby mówił, kiedy nie ma pewności, i sprawdź wynik.
Gdzie umieścić rolę?
Rolę, która ma obowiązywać przez całą rozmowę, umieść w prompcie systemowym: w polu system w API albo w instrukcjach niestandardowych i instrukcjach projektu w aplikacjach czatowych. Przy jednorazowej prośbie umieść ją w pierwszym zdaniu wiadomości, przed zadaniem.
Czym są prompty "wciel się w"?
To prompty, które zaczynają się od "Wciel się w" (ang. "Act as") i dają modelowi rolę do odegrania: rekrutera, partnera do nauki języka, terminal Linuksa, przewodnika turystycznego. Ten wzorzec spopularyzowały udostępniane kolekcje promptów. Działają najlepiej, gdy mówią też, co rola ma robić w każdej turze i kiedy skończyć.
Co sprawia, że prompt z rolą jest dobry?
Konkret. Nazwij zawód, odbiorcę, cel i standard: "senior Python developer, który robi review pull requesta młodszego kolegi, najpierw błędy, potem czytelność" daje modelowi znacznie więcej do pracy niż "ekspert". Resztę promptu napisz jak zwykle: zadanie, kontekst i format.