Szablon promptu to prompt z polami do uzupełnienia. Stały tekst zawiera wszystko, czego udało ci się nauczyć o uzyskiwaniu dobrej odpowiedzi w jednym rodzaju zadania: rolę, format, ograniczenia. Pola zawierają to, co zmienia się za każdym razem: temat, język, tekst do przetworzenia. Uzupełnienie trzech pól jest szybsze niż napisanie promptu i daje odpowiedzi o stałej jakości i kształcie.
Poniższy szablon wyjaśnia dowolne pojęcie programistyczne na twoim poziomie. Wpisz w pola własne wartości, wyłącz jakąś część, żeby zobaczyć, co wnosi, a potem skopiuj szablon albo otwórz go w aplikacji czatowej.
Idea: domknięcie to funkcja, która pamięta zmienne z miejsca, w którym została utworzona, nawet gdy funkcja zewnętrzna już skończyła działać.
Przykład:
function makeCounter() {
let count = 0;
return function () {
count += 1; // still sees count from makeCounter
return count;
};
}
const next = makeCounter();
console.log(next()); // 1
console.log(next()); // 2
Częsty błąd: oczekiwanie, że dwa liczniki będą miały wspólną sumę. Każde wywołanie makeCounter() tworzy nowe count, więc każdy licznik ma własne.
Co sprawia, że szablon jest dobry
Szablon jest tak dobry jak prompt, z którego powstał, więc stały tekst powinien być promptem, który już uruchomiono i który dał dobry wynik. Trzy wybory odróżniają użyteczny szablon od formularza, który po prostu szybciej produkuje przeciętne odpowiedzi.
Rób pola tylko z tego, co się zmienia. Jeśli zawsze chcesz odpowiedzi poniżej 150 słów, wpisz 150 do stałego tekstu. Każde pole to decyzja, którą trzeba podjąć od nowa przy każdym użyciu, a szablon z dziesięcioma polami wypełnia się wolniej, niż pisze się prompt od zera.
Daj każdemu polu jasną nazwę i rozsądną wartość domyślną. {{znane}} mówi, co wpisać; {{x}} nie mówi nic. Wartość domyślna pokazuje, jakiego rodzaju wartość jest oczekiwana, i pozwala raz uruchomić szablon bez wpisywania czegokolwiek.
Jeden szablon na jedno zadanie. Szablon, który w zależności od pola wyjaśnia pojęcia, przegląda kod albo pisze pytania do quizu, robi wszystkie trzy rzeczy gorzej niż trzy osobne szablony. Im bardziej konkretny stały tekst, tym więcej może powiedzieć o formacie i poziomie.
Sześć elementów z poradnika jak napisać prompt to dobra lista kontrolna dla stałego tekstu: rola, zadanie, kontekst, wejście, format, ograniczenia. Pola zwykle przypadają na zadanie, kontekst i wejście.
Przykłady szablonów promptów
Te trzy obejmują częste codzienne zadania. Każdy ma nazwane pola do uzupełnienia. Większy zbiór gotowych promptów znajdziesz w przykładach promptów.
def median(numbers: list[float]) -> float:
if not numbers:
raise ValueError("median() needs at least one number")
ordered = sorted(numbers)
middle = len(ordered) // 2
if len(ordered) % 2 == 1:
return ordered[middle]
return (ordered[middle - 1] + ordered[middle]) / 2
# median([3, 1, 2]) returns 2
# median([4, 1, 3, 2]) returns 2.5
# median([]) raises ValueError
Cześć, dziękuję za zaproszenie, bardzo mi miło! Niestety 14. nie dam rady. Czy pasowałby wam termin w przyszłym miesiącu? Wtedy chętnie opowiem o projekcie.
Pozdrawiam, [Twoje imię]
Tagi wokół wklejonego tekstu nie są przypadkowe. Uzupełniony tekst może zawierać zdania wyglądające jak instrukcje, a delimitery chronią model przed pomyleniem instrukcji z twojego szablonu z materiałem, na którym ma pracować.
Jak zbudować własny szablon
- Zacznij od promptu, który zadziałał. Weź rozmowę, w której odpowiedź wyszła dobrze, i zbierz ostateczną wersję promptu razem z poprawkami, które trzeba było dodać w kolejnych wiadomościach. Te poprawki to najcenniejsza część, bo naprawiają to, co pierwsza wersja zrobiła źle.
- Zaznacz, co zmieni się następnym razem. Przeczytaj prompt i podkreśl każde słowo, które edytujesz przy następnym użyciu. Zwykle to od dwóch do czterech rzeczy: temat, odbiorca, długość, wklejone wejście.
- Zastąp każde z nich nazwanym polem. Zapisz pole tak, jak oczekuje tego twoje narzędzie, na przykład
[audience]w prompcie wklejanym ręcznie albo{audience}w kodzie. - Przetestuj z trzema różnymi wypełnieniami. Użyj jednego typowego przypadku, jednego bardzo krótkiego albo bardzo długiego wejścia i jednego nietypowego przypadku. Jeśli któryś zawiedzie, stały tekst nadal coś zakłada o pierwszym użyciu. Zmieniaj po jednym zdaniu naraz, jak opisuje iteracja promptów.
- Zapisz go tam, gdzie go znajdziesz. Sprawdzi się plik z notatkami, program do rozwijania skrótów albo menedżer snippetów. Szablon, którego trzeba szukać, to szablon, którego przestaje się używać.
Szablony w kodzie
W programie szablon to string z nazwanymi polami. Pythonowe str.format() je wypełnia:
SUMMARY_TEMPLATE = """Summarize the text inside the <text> tags for {audience}.
Use at most {bullets} bullet points and lead with any action the reader must take.
<text>
{text}
</text>"""
with open("notes.txt", encoding="utf-8") as f:
meeting_notes = f.read()
prompt = SUMMARY_TEMPLATE.format(
audience="a manager who has two minutes",
bullets=3,
text=meeting_notes,
)
Przy str.format() każdy dosłowny nawias klamrowy w szablonie trzeba zapisać podwójnie ({{ i }}), co ma znaczenie, gdy szablon zawiera przykład JSON. Nawiasy w przekazywanych wartościach, na przykład w kodzie w meeting_notes, nie wymagają escapowania. Niektóre biblioteki do budowania aplikacji AI mają własne klasy szablonów, ale robią to samo co string formatujący, tylko z dodatkowymi funkcjami.
Gdy wartości pochodzą od użytkowników, pamiętaj, że szablon wysyła ich tekst do modelu. Trzymaj go w delimiterach i nie dawaj modelowi narzędzi ani danych, które złośliwe wejście mogłoby wykorzystać.
Szablon czy prompt systemowy
Szablon i prompt systemowy rozwiązują różne problemy. Prompt systemowy zawiera zasady obowiązujące przy każdej wiadomości w rozmowie albo aplikacji: personę, ton, to, czego asystent nigdy nie może robić. Szablon zawiera jedno zadanie z polami. W aplikacji często używa się obu: stałego promptu systemowego, który ustala podstawowe zasady, i szablonu, który buduje każdą wiadomość użytkownika.
Najczęściej zadawane pytania
Czym jest szablon promptu?
Szablon promptu to prompt wielokrotnego użytku z polami, takimi jak [topic] albo {language}, na części, które zmieniają się między użyciami. Stały tekst zawiera instrukcje, które już przetestowano; za każdym razem uzupełniasz pola, zamiast pisać prompt od zera.
Jak zrobić własny szablon promptu?
Zacznij od promptu, który już dał dobrą odpowiedź. Zaznacz słowa, które zmieniasz przy następnym użyciu, zastąp każde nazwanym polem i przetestuj szablon z trzema różnymi wypełnieniami, w tym jednym nietypowym. Instrukcje, dzięki którym pierwsza odpowiedź była dobra, zostaw dokładnie takie, jakie były.
Gdzie przechowywać szablony promptów?
Tam, skąd da się je szybko skopiować: w pliku z notatkami, w programie do rozwijania skrótów tekstowych albo w menedżerze snippetów. Aplikacje czatowe też mają miejsca na tekst używany wielokrotnie, na przykład instrukcje niestandardowe i instrukcje projektu, które lepiej pasują do zasad obowiązujących przy każdej wiadomości niż do jednorazowych zadań z polami.
Jak użyć szablonu promptu w Pythonie?
Przechowuj szablon jako string z nazwanymi polami i wypełniaj go za pomocą str.format() albo f-stringa. Przy str.format() każdy dosłowny nawias klamrowy w szablonie zapisz podwójnie ({{ i }}), na przykład gdy szablon zawiera przykład JSON. Tekst dostarczany przez użytkowników umieszczaj w delimiterach, żeby był oddzielony od instrukcji.