Diagnozowanie i naprawianie złych promptów
Systematyczna lista kontrolna debugowania służąca do ulepszania nieskutecznych promptów.
Diagnozowanie i naprawianie złych promptów to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Podejście do debugowania
Gdy prompt generuje nieprawidłowy wynik, pierwszym odruchem większości osób jest obwinianie modelu. Jednak w większości przypadków problem tkwi w prompcie — model zachowuje się dokładnie tak, jak powinien, biorąc pod uwagę otrzymane instrukcje.
Traktowanie niepowodzeń promptów jako problemów z debugowaniem jest bardziej produktywne. Podobnie jak podczas debugowania kodu, należy systematycznie zidentyfikować przyczynę źródłową, postawić hipotezę dotyczącą poprawki, przetestować ją i zweryfikować wynik. Takie podejście prowadzi do szybszych postępów niż sfrustrowane próby metodą prób i błędów.
Lista kontrolna debugowania promptów
Gdy prompt nie działa prawidłowo, należy systematycznie przejść przez tę listę kontrolną obejmującą pięć obszarów:
- Precyzja — Czy prompt jest zbyt ogólny? Czy zadanie wymaga dokładniejszego zdefiniowania?
- Kontekst — Czy brakuje informacji wprowadzających, których potrzebuje model?
- Format — Czy określono oczekiwany format i długość wyniku?
- Ograniczenia — Czy ograniczenia zostały jasno określone? Czy któreś z nich nie są ze sobą sprzeczne?
- Przykłady — Czy przykład dobrego wyniku wyeliminowałby niejednoznaczność?
Każdy obszar odpowiada określonemu typowi poprawki. Należy zidentyfikować obszar, który zawiódł, i zastosować odpowiednią poprawkę.
Obszar 1: sprawdzanie precyzji
Problemy z precyzją powodują: niewłaściwy temat, niewłaściwą perspektywę, nieodpowiedni poziom odbiorców oraz pominięcie kluczowych aspektów zadania.
Pytania diagnostyczne:
- Czy inteligentna, postronna osoba mogłaby zinterpretować ten prompt inaczej, niż zamierzono?
- Czy występują nieprecyzyjne słowa (dobry, lepszy, odpowiedni, profesjonalny), które należy zastąpić?
- Czy określono typ zadania (artykuł? e-mail? podsumowanie? analiza?)?
- Czy odbiorcy zostali zdefiniowani wystarczająco precyzyjnie?
Poprawka: Należy zastąpić nieprecyzyjne słowa konkretnymi określeniami. Należy nazwać typ zadania, określić poziom wiedzy odbiorców i dodać jednozdaniowy przykład oczekiwanego wyniku.
Obszar 2: sprawdzanie kontekstu
Problemy z kontekstem powodują: ogólne porady, które pomijają konkretną sytuację, błędne założenia dotyczące stosu technologicznego, firmy lub odbiorców oraz odpowiedzi, które sprawdziłyby się w innym kontekście, ale nie w danej sytuacji.
Pytania diagnostyczne:
- Co model musi wiedzieć o konkretnej sytuacji, czego nie może wiedzieć na podstawie ogólnej wiedzy zdobytej podczas treningu?
- Czy udostępniono odpowiedni kod, dokument lub dane, których dotyczy zadanie?
- Czy opisano ograniczenia danego środowiska?
Poprawka: Należy dodać przed instrukcją zadania sekcję zawierającą informacje wprowadzające. Odpowiedni kod lub treść należy wkleić bezpośrednio do promptu.
Obszar 3: sprawdzanie formatu
Problemy z formatem powodują: właściwą treść w niewłaściwej strukturze — tekst ciągły zamiast punktów, esej zamiast instrukcji krok po kroku albo brak nagłówków, gdy potrzebna jest nawigacja.
Pytania diagnostyczne:
- Czy określono format wyniku (punkty, lista numerowana, tekst ciągły, tabela, blok kodu)?
- Czy określono długość?
- Czy określono wymagane sekcje lub strukturę?
Poprawka: Należy dodać wyraźne instrukcje dotyczące formatu. Można użyć wzorca: „Format: [struktura]. Długość: [docelowa]. Sekcje: [lista].” W przypadku złożonych formatów należy podać szablon z tekstem zastępczym, który model powinien uzupełnić.
Obszar 4: sprawdzanie ograniczeń
Problemy z ograniczeniami powodują: treści zawierające elementy, które miały zostać wykluczone, albo wyniki brzmiące sztucznie, ponieważ ograniczenia są ze sobą sprzeczne.
Pytania diagnostyczne:
- Czy ograniczenia zostały jasno określone, czy tylko wynikają z kontekstu?
- Czy któreś z ograniczeń są ze sobą sprzeczne?
- Czy ograniczenia nie kolidują z zakresem lub długością treści?
- Czy w przypadku niemal sprzecznych ograniczeń określono instrukcję dotyczącą priorytetów?
Poprawka: Należy jasno określić ograniczenia, które wcześniej wynikały tylko z kontekstu. Należy dodać instrukcję dotyczącą priorytetów. Sprzeczności należy rozwiązać, wybierając ograniczenie, które ma pierwszeństwo. Należy sprawdzić, czy zakres i długość są ze sobą zgodne.
Obszar 5: sprawdzanie przykładów
Gdy pierwsze cztery obszary wyglądają poprawnie, ale wynik nadal odbiega od oczekiwań, często brakuje przykładów. Przekazują one informacje, których nie da się wyrazić samymi słowami.
Pytania diagnostyczne:
- Czy pokazanie przykładu dobrego wyniku wyjaśniłoby oczekiwany styl, ton lub format?
- Czy pomocny byłby negatywny przykład (czego NIE należy generować)?
- Czy istnieją wyniki tego typu zadania, których można użyć jako punktu odniesienia?
Poprawka: Należy dodać do promptu jeden lub dwa przykłady idealnego wyniku. Można użyć wzorca: „Oto przykład tego, czego oczekuję: [przykład]. Teraz wykonaj to samo dla [rzeczywiste zadanie].”
Proces debugowania promptu
Oto kompletny proces diagnostyczny, który można zastosować do każdego promptu działającego nieprawidłowo:
def diagnose_prompt(original_prompt, failed_output, problem_description):
'''
Use a second LLM call to diagnose why a prompt produced a bad output.
Returns a diagnosis and an improved prompt.
'''
import openai
client = openai.OpenAI(api_key='sk-...')
diagnosis_prompt = f'''You are a prompt engineering expert.
A user ran this prompt:
---PROMPT---
{original_prompt}
---END PROMPT---
It produced this output (which was unsatisfactory):
---OUTPUT---
{failed_output[:500]}...
---END OUTPUT---
The problem the user identified: {problem_description}
Diagnose the prompt failure using this framework:
1. Specificity: Is anything too vague?
2. Context: What background information is missing?
3. Format: Is the desired format/length unclear?
4. Constraints: Are there missing or conflicting constraints?
5. Examples: Would an example help?
Then write an improved version of the prompt that addresses the root cause.
Format: Diagnosis: [analysis] || Improved prompt: [new prompt]'''
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': diagnosis_prompt}]
)
return response.choices[0].message.contentPrzyczyna źródłowa a objaw
Częstym błędem podczas debugowania jest zajmowanie się objawem zamiast przyczyną źródłową.
Objaw: Wynik jest zbyt ogólny.
Poprawka objawu: Dodanie do promptu sformułowania „bądź bardziej precyzyjny”.
Przyczyna źródłowa: Nie zdefiniowano odbiorców, więc model przyjął domyślnie ogólną grupę odbiorców.
Poprawka przyczyny źródłowej: Dodanie precyzyjnej specyfikacji odbiorców.
Zajmowanie się objawami przynosi niewielką poprawę. Usuwanie przyczyn źródłowych zapewnia niezawodną poprawę. Przed napisaniem poprawki należy zadać sobie pytanie „dlaczego występuje ten objaw?” i sięgnąć o jeden poziom głębiej.
Prowadzenie rejestru nieudanych promptów
W przypadku powtarzających się typów zadań prowadzenie rejestru nieudanych promptów przyspiesza poprawę z czasem. Każdy wpis zawiera:
- Oryginalny prompt
- Nieprawidłowy wynik (lub opis tego, co było nie tak)
- Zdiagnozowaną przyczynę źródłową (precyzja / kontekst / format / ograniczenia / przykłady)
- Zastosowaną poprawkę
- Wynik
Po zebraniu 10–20 wpisów zaczynają ujawniać się wzorce. Może się okazać, że ta sama przyczyna źródłowa (np. brak kontekstu dotyczącego odbiorców) odpowiada za 60% niepowodzeń w danej kategorii. Wystarczy poprawić ją w szablonie, aby wzorzec zniknął.
Ulepszony szablon promptu
Większość dobrze skonstruowanych promptów ma spójny szablon, który z wyprzedzeniem uwzględnia wszystkie pięć obszarów debugowania:
ROBUST_PROMPT_TEMPLATE = '''
## Role
[Who the model should act as — establishes expertise level and perspective]
## Context
[Background the model needs: company, audience, product, prior decisions, constraints]
## Task
[Specific, precise description of what to produce]
## Format
[Output structure: bullet points / prose / numbered list / table]
[Length: word count or sentence count]
[Required sections: list them if the output needs specific sections]
## Constraints
[What to include: required elements]
[What to exclude: off-limits content or approaches]
[Priority: if constraints conflict, X takes priority over Y]
## Example
[One example of good output for this task type — optional but powerful]
'''
print(ROBUST_PROMPT_TEMPLATE)Sprawdzenie wiedzy: debugowanie promptów
Prompt generuje dobrze napisany wynik, który koncentruje się jednak na ogólnych najlepszych praktykach dotyczących danego tematu, a nie na konkretnej sytuacji opisanej w zadaniu. Format i długość są prawidłowe. Ograniczenia nie zostały naruszone. Który obszar jest przyczyną źródłową?
Podsumowanie: diagnozowanie i naprawianie nieudanych promptów
Debugowanie promptów jest procesem systematycznym, a nie działaniem metodą prób i błędów. Lista kontrolna obejmująca pięć obszarów — precyzję, kontekst, format, ograniczenia i przykłady — przyporządkowuje każdemu typowi typowych problemów konkretną poprawkę.
Solidny szablon promptu z wyprzedzeniem uwzględnia wszystkie pięć obszarów, zapobiegając większości problemów, zanim wystąpią. Proces debugowania (zidentyfikowanie objawu → znalezienie przyczyny źródłowej → zastosowanie poprawki → weryfikacja) zapewnia niezawodną poprawę. Rejestr nieudanych promptów przyspiesza naukę między kolejnymi sesjami.
Dzięki tym narzędziom można metodycznie i konsekwentnie diagnozować oraz naprawiać każdy problem z promptem.
Często zadawane pytania
Czy lekcja „Diagnozowanie i naprawianie złych promptów” jest bezpłatna?
Tak — pełny tekst „Diagnozowanie i naprawianie złych promptów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Co nauczysz się w „Diagnozowanie i naprawianie złych promptów”?
Systematyczna lista kontrolna debugowania służąca do ulepszania nieskutecznych promptów. Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?
Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Diagnozowanie i naprawianie złych promptów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?
Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Nadmiernie nieprecyzyjne instrukcje
- Sprzeczne wymagania
- Błędy wynikające z braku kontekstu
- Diagnozowanie i naprawianie złych promptów