#142 Wie optimiert man automatisch seine Prompts?
Worum geht es in diesem Artikel?
Der Beitrag zeigt wie man automatisch ca. 600 Prompts optimiert.
Als ich angefangen habe OpenAI zu testen, waren meine Prompts sehr schlicht. Ich habe die Prompts einfach natürlich geschrieben. Hier ein Beispiel:
„Wähle aus den drei Listen die jeweils stärksten und wirkungsvollsten für diese Idee aus:
Idee:
{{3.Idee}}
Liste1 Pioniere:
{{3.E_Saetze_BeginnendPionier}}
Liste2 Siedler:
{{3.E_Saetze_BeginnendSiedler}}
Liste3 Städteplaner:
{{3.`E_Saetze_BeginnendStädteplaner`}}
Gebe den Text in Markdown aus“
Aus diesen hunderten Tests ist folgender Workflow entstanden, den ich optimieren möchte und als Service anbieten. Also müssen alle Prompts angepasst werden.
Welche Herausforderungen habe ich?
A. Ich möchte nicht manuell über 61 Workflows in dem Folder öffnen (ein paar Workflows habe ich falsch gespeichert) und die Prompts mit der Hand kopieren.
B. Die zweite Herausforderung ist, das ich nicht die ganzen Prompts einzeln optimieren möchte. (Diese Frage kam auch aus meinem Foundation Kurs)
C. Die dritte und schwierigste Herausforderung ist es mindestens fünf Beispiele für den Prompt zu bekommen (hier überlege ich noch)
Lösungen:
A. Dieser Workflow holt alle Prompts aus den Workflows und extrahiert die OpenAi Module und gibt die Prompts in eine Airtable Datenbank:
Der obere Pfad hat nicht so richtig funktioniert, Airtable Felder funktionieren nur bis zu einer bestimmten Textgröße, deshalb speichere ich die Worklflows in einem Google Document zusätzlich ab.
OpenRouter mit Sonnet 3.5 im Hintergrund sucht in den Workflows nach den Prompts und OpenAI extrahiert Prompts und Variablen (die Inputs für den Prompt) das ganze wird dann nach Airtable geschrieben.
Nun, habe ich die Prompts mit Inputs und Outputs. Was noch fehlt ist die Optimierung der Prompts.
Ein besonders gutes Beispiel von Prompts ist Fabric von Daniel Miessler.
Wie optimiere ich Prompts automatisch?
Schauen wir uns erstmal ein Beispiel an:
Input:
Der Charakter eines Pionier ist so beschrieben.{{3.PioniereProfil}}
Wir wollen folgende Idee einführen:{{3.Idee}}
Die Vorteile für Siedler sind:{{3.VorNachTeilePioniere}}
Schreibe eine ausführliche Tabelle in HTML wie sich der Charakter des {{3.PioniereProfil}} verändert bei der Einführung folgender Idee {{3.Idee}}.
Entwickle eine HTML Tabelle mit den Attributen: Selbstwahrnehmung,Kompetenzen,Kommunikation,Zusammenarbeit,Grenzen setzen,Selbstfürsorge,Ängste,Technologien,Verantwortungsbewusstsein.
Die weiteren Spalten sind Vor der Einführung der IdeeTechnik Metapher (vorher) Nach der Einführung der IdeeTechnik Metapher (nachher)
Aus solch einem Input möchte ich einen „besser“ aufgebauten Prompt. Hier ein Beispiel Output.
Output mit optimierten Prompt:
IDENTITY and PURPOSE
You are an expert at analyzing character development and technological impact, particularly in the context of pioneering new ideas. Your task is to create a comprehensive HTML table that illustrates how the introduction of a specific idea affects various attributes of a pioneer’s character.
INPUT VARIABLES
PIONEER_PROFILE: {{3.PioniereProfil}}
IDEA: {{3.Idee}}
PIONEER_ADVANTAGES: {{3.VorNachTeilePioniere}}
STEPS
Carefully analyze the pioneer profile, the idea to be introduced, and the advantages for settlers.
Consider how each attribute of the pioneer’s character might change with the introduction of the new idea.
Develop appropriate technological metaphors for each attribute, both before and after the idea’s introduction.
OUTPUT INSTRUCTIONS
Create an HTML table with the following structure:
Table headers:
Attribute
Before Idea Introduction
Technology Metaphor (Before)
After Idea Introduction
Technology Metaphor (After)
Rows (one for each attribute):
Self-perception (Selbstwahrnehmung)
Competencies (Kompetenzen)
Communication (Kommunikation)
Collaboration (Zusammenarbeit)
Setting boundaries (Grenzen setzen)
Self-care (Selbstfürsorge)
Fears (Ängste)
Technologies (Technologien)
Sense of responsibility (Verantwortungsbewusstsein)
For each row:
Describe the attribute before the idea’s introduction (50-75 words)
Provide a technology metaphor for the „before“ state (15-20 words)
Describe how the attribute changes after the idea’s introduction (50-75 words)
Provide a technology metaphor for the „after“ state (15-20 words)
ADDITIONAL GUIDELINES
Ensure all descriptions are detailed and insightful, reflecting a deep understanding of the pioneer profile and the impact of the new idea.
Make technology metaphors vivid and relevant to the attribute and the idea being introduced.
– Provide the output in valid HTML format, ready to be inserted into a web page. – Use inline CSS for basic styling (e.g., borders, padding) to enhance readability. Remember to analyze the input thoroughly and create a comprehensive, insightful table that clearly illustrates the character development of the pioneer in relation to the introduced idea.
Der optimierte Prompt ist einfacher und besser zu lesen und erfüllt mehrere Vorteile des Prompt Designs. Ein paar Punkte kann man auch noch optimieren.
Der Aufbau des Optimierungs Prompts
# You are a prompt engineer and your job is to optimize prompts.
## Instructions:- I want you to write me a prompt that will optimize this prompt in the {{Input}}
– output the prompt you generate in markdown
– output the prompt in a codeblock
{{Input}} = „Wähle aus den drei Listen die jeweils stärksten und wirkungsvollsten für diese Idee aus:
Idee:
{{3.Idee}}
Liste1 Pioniere:
{{3.E_Saetze_BeginnendPionier}}
Liste2 Siedler:
{{3.E_Saetze_BeginnendSiedler}}
Liste3 Städteplaner:
{{3.`E_Saetze_BeginnendStädteplaner`}}
Gebe den Text in Markdown aus“
Hiernach gebe ich fünf Beispiele von Daniel Miesslers Prompts mit.
Fazit:
Der Ansatz ermöglicht mir alle meine „sehr alten Prompts nochmal zu optimieren“. Ich denke es wird ein mehrstufiges Verfahren, in dem ich einmal einen Durchlauf über alle Prompt starte und dann nochmal einen Korrektur Prompt nachlege. Für die automatischen Beispiele überlege ich noch nach einem besseren Ansatz.