Prompting het 'n reputasie om "vibes-gebaseerde" te wees. jy typ iets, die model reageer, jy tweak 'n frase, dit kry beter, en jy hou op om te duik totdat dit werk - as dit werk. Miskien Dit is 'n nagmerrie vir enigiets ernstig: ooreenstemmingstekst, data-pipelines, kode-generasie, of "please moenie my in die voorkant van die span skaam nie" -uitvoer. Hier is die opgradering: . Prompt Reverse Engineering Dit is presies wat dit klink: , dan toepas gerichte regstellings - soos debugging, nie raaiwerk nie. use the model’s wrong answer to backtrack into what your prompt failed to define Dink aan die slegte output as jou model se manier om te sê: “Jy het my nie vertel wat belangrik was nie.” “Jy het my nie vertel wat belangrik was nie.” Kom ons verander dit in 'n herhalende werkstroom. Hoekom omgekeerde ingenieurswese beats willekeurige prompt tweaking Selfs wanneer jy 'n "goed lyk" oproep (duidelik vra, beleefde toon, redelike beperkings) skryf, mis modelle nog steeds: die venster van die tyd wat jy belangstel, die volheid wat jy verwag, die formaat wat u downstream kode benodig, die rol waarin die model wil bly, Die definitie van “reg” Omgekeerde ingenieurswese gee jou 'n metode om die ontbrekende spesifikasie te vind - sonder om jou spoed in 'n roman op te blaas. fast Die vier mislukkingsmodi (en wat hulle jou regtig vertel) Die meeste prompt mislukkings val in een van hierdie buckets. As jy die bucket kan noem, kan jy gewoonlik die prompt in een pas regmaak. 1) Feitelike mislukkings Die antwoord verklaar met vertroue die verkeerde feite, meng jare of vind getalle uit. Symptom: Kennis-dichte take: markverslae, akademiese skryf, beleidsversameling. Typical trigger: What your prompt likely missed: uitdruklike tydsbestek (“kalenderjaar 2023” versus “laaste 12 maande”), bronvereistes (citasies, genoemde datasette), Fallback gedrag wanneer die model nie weet nie. Jy vra: Die model reageer met 2022-cijfers en sê nooit waar dit hulle gekry het nie. Example (UK-flavoured): “Analiseer die top 3 EV handelsmerke deur globale verkoop in 2023.” Prompt patch pattern: Voeg 'n "fakte grens": jaar, geografie, eenheid. Verlang citasies of 'n transparante "Ek is nie seker nie" fallback. Vra dit om die data af te sluit as presiese getalle nie beskikbaar is nie. 2) Gebreke logika / ontbrekende stappe Die output lyk plausibel, maar dit skip stappe, spring gevolgtrekkings, of lewer 'n "outline" om te doen alsof dit 'n proses is. Symptom: Procedures, debugging, multi-stap redenasie, argitektuur planne. Typical trigger: What your prompt likely missed: “Dekker al die kern stappe” “Verduidelik afhanklikheid / bestelling” “Gebruik 'n vaste raamwerk (checklist / pipeline / resep)” Jy vra: Dit lys slegs "verwerk ontbrekende waardes" en "verwyder outliers" en noem dit 'n dag. Example: "Verduidelik 'n volledige Python data skoonmaak werkstroom." Prompt patch pattern: Moedig 'n volgorde (A → B → C → D) aan. Dit vereis 'n rede vir die bestelling. Verlang 'n besluitstest ("Hoe weet ek dat hierdie stap nodig is?") 3) Die vorm van die drift Jy vra vir Markdown tabel / JSON / YAML / kode blok ... en dit gee 'n vriendelike paragraaf terug soos dit 'n blogpos skryf. Symptom: Alles wat vir masjiene bedoel is: gestruktureerde outputs, konfig lêers, payloads, tafels. Typical trigger: What your prompt likely missed: strengheid (“Uitvoer slegs geldig JSON”), skema beperkings (sleutels, tipes, vereiste velde), 'n Korte voorbeeld (paar foto's) kan die model imiteer. Jy vra: Dit reageer in prose en meng verkoper + vrylatingsdatum in een frase. Example: "Gee my 'n Markdown tabel van drie gewilde LLMs." Prompt patch pattern: Voeg 'n skema by, plus "geen ekstra sleutels nie." Voeg “geen prose buite die blok.” Inskryf 'n klein voorbeeld rooi. 4) Role / Tone Drift Jy vra vir 'n pediater verduideliking en kry 'n mediese tydskrif abstrak. Symptom: rolplay, kliënt ondersteuning, coaching, stakeholder comms. Typical trigger: What your prompt likely missed: hoe die rol praat (leesvlak, warmte, taboe jargon), die primêre doel van die rol (verzekering, oortuig, afskakel), verbode inhoud (“vermy mediese jargon; definieer terme as onvermydelik”). Prompt patch pattern: Spesifiseer die publiek (“’n bekommerde ouer”, “’n junior ingenieur”, “’n CTO”). Spesifiseer toon reëls (“vriendelike, nie-oordeel, UK Engels”). Spesifiseer die do/don’t woordeskat. Die 5 stappe omgekeerde ingenieurswerkstroom Dit is die "stop raai" loop. Hou dit lig. Maak een verandering op 'n tyd. Stap 1: Bepaal die afwyking (merk die presiese mis) Skryf die verwagte output op as 'n tjeklys, en beklemtoon waar die output verskil het. Voorbeeld van die checklist: jaar = 2023 / Dit sluit in die mark / Verwys na die bronne Vergelyk die top 3 handelsmerke / As jy nie die miss presies kan beskryf nie, kan jy dit nie presies regmaak nie. Stap 2: Infer die ontbrekende spesifikasie (die prompt defekt) Vir elke afwyking vra: Watter instruksies sou dit verhinderd het? Watter ambiguïteite het die model “opgelos” in die verkeerde rigting? Die tipiese tekortkominge: die ontbrekende grens (tyd, streek, eenheid) die gebrek aan volledige beperking, die ontbrekende output skema, gebrek aan toneel / rolbeperkings. Stap 3: Toets die hipotese met 'n minimale prompt bewerking Moenie jou hele oproep herskryf nie. Patch een defek en weer hardloop. As die output op die verwagte manier verbeter, was jou hipotese reg. As nie, het jy verkeerd gediagnoseer - gaan terug na Stap 2. Stap 4: Gebruik 'n gerichte optimalisering patroon Sodra bevestig, gebruik die kleinste volhoubare fiksie: Grensklausule: "Gebruik 2023 (jan-des) data; as dit onduidelik is, sê dit." Skema-klausule: “Verdra geldig JSON wat ooreenstem met hierdie skema...” Dekkingsklausule: “Inskryf hierdie 6 stappe...” Tone-klausule: “Verduidelik asof ek nuut is; vermy jargon.” Stap 5: Registreer die verandering (bou jou prompt changelog) Dit is die deel wat die meeste mense oortree - en die deel wat veroorsaak dat dit 'n ingenieurspraktyk word. Hou 'n klein dagboek: Oorspronklike spoed Modelle wat misluk het Hy is 'n defekte hipotese Patch toegepas Die resultate Met verloop van tyd sal jy 'n persoonlike biblioteek van "gewone mislukking → standaard patch" bou. 'N Volledige werk voorbeeld: 'n "data skoonmaak werkstroom" oproep Kom ons doen die ding reg. Eerste spoed "Met Python, skryf die volledige data skoonmaak proses met stappe en kode." "Met Python, skryf die volledige data skoonmaak proses met stappe en kode." Die (slegte) uitkoms Dit gee slegs twee items terug: Vul die ontbrekende waardes Verwyder outliers En dit dump kode met geen konteks, geen orde en geen besluitskoers nie. Omgekeerde ingenieursdiagnose Deviation points Ontbrekende kernstappe (duplikate, tipe casting, standaardisering) Geen regverdiging vir bevel Kode ontbreek kommentaar en toepasbaarheid notas Prompt defects Geen "kern stappe lys" → model kies 'n gedeeltelike subset Geen bestelling beperking → model outputs in willekeurige volgorde Geen “verduidelik wanneer om te gebruik” → kode word kopieer/pas bytes Die gepatched prompt (minimale maar spesifieke) Met behulp van panda's, beskryf 'n volledige data skoonmaak werkstroom in hierdie volgorde: duplicates → 2) data types → 3) missing values → 4) outliers. For each step include: purpose, when it applies, and commented code. Also state how to detect whether the step is needed.” Met behulp van panda's, beskryf 'n volledige data skoonmaak werkstroom in hierdie volgorde: duplikate → 2) datatype → 3) ontbrekende waardes → 4) outliers. Vir elke stap sluit dit in: doel, wanneer dit toegepas word, en gekommenteerde kode. Die resultaat (wat goed lyk) Hieronder is 'n Voorbeeld wat jy kan hergebruik. Let op dat ons nie harde kode Ons is blind; ons is deur dtype. slightly tweaked fillna(0) import pandas as pd def clean_frame(df: pd.DataFrame) -> pd.DataFrame: # 1) Duplicates: reduce noise before anything else dup_count = df.duplicated().sum() if dup_count: df = df.drop_duplicates().copy() # 2) Types: make sure comparisons and maths behave # Example: parse dates if you expect time-series logic later if "created_at" in df.columns: df["created_at"] = pd.to_datetime(df["created_at"], errors="coerce") # 3) Missing values: strategy depends on data type and meaning for col in df.columns: if df[col].isna().any(): if pd.api.types.is_numeric_dtype(df[col]): # Use median for robustness (less sensitive than mean) df[col] = df[col].fillna(df[col].median()) else: # For categorical/text, choose a clear placeholder df[col] = df[col].fillna("Unknown") # 4) Outliers: apply only to numeric columns where it makes sense num_cols = df.select_dtypes(include="number").columns for col in num_cols: q1 = df[col].quantile(0.25) q3 = df[col].quantile(0.75) iqr = q3 - q1 if iqr == 0: continue # no spread, no meaningful outliers lower = q1 - 1.5 * iqr upper = q3 + 1.5 * iqr df = df[(df[col] >= lower) & (df[col] <= upper)] return df Dit is nie “perfekte data skoonmaak” (wat afhang van die domein), maar dit is 'n Koherente, verdedigbare pijpleiding met besluitcontrole - presies wat jou oorspronklike oproep nie geëis het nie. is Die verborge val: modelbeperkings Soms is die model verkeerd omdat dit nie die data het nie – veral vir die “laaste” getalle. As jy dieselfde feitelike mislukking sien nadat jy grense verstik en bronne gevra het, stop loop. Voeg 'n gesonde fallback toe: “As jy nie weet nie, sê jy weet nie.” “Vertel die laaste jaar waarvoor jy vertroue het.” “Suggereer watter bron ek moet raadpleeg.” Dit verander 'n hallusinasie in 'n nuttige antwoord. Algemene foute (en hoe om hulle te vermy) Fout 1: “Moet asseblief korrek wees” as 'n oplossing Dit is nie 'n beperking nie, dit is 'n begeerte. In plaas daarvan: definieer korrekteheid deur grense + verifikasie + fallback. Fout 2: Alles te beperk As jy 'n tekort regstel deur tien ongerelateerde reëls by te voeg, sal jy vinnig opblaas en erger voldoening kry. Patch die defek, nie jou angs nie. Fout 3: Moenie jou hipotese gevalideer nie Jy kan nie beweer dat 'n regstelling gewerk het nie, tensy jy dit weer met die minimale patch hardloop en die verwagte verbetering sien. Behandel dit soos 'n eenheid toets. Praktiese gewoontes wat hierdie stok maak Hou 'n mislukking taxonomie (fakte / logika / formaat / rol). Gebruik one-patch-per-run tydens die debugging. Maak 'n prompt changelog (serieus, dit is die cheat kode). Wanneer jy struktuur nodig het, gebruik skema's + klein voorbeelde. Wanneer jy betroubaarheid nodig het, vereis onsekerheid openbaarmaking. Foute antwoorde is nie net vervelend nie - hulle is As jy leer om hulle te lees, stop jy met "vermaan" en begin . Informasie engineering