
Miniprompt ist eine minimale Eingangssyntax, um umfassende Ausgänge von LLMs (z. B. GPT-4) zu erzeugen. Mit einer einfachen und effizienten Syntax kann MiniPrompt detaillierte Informationen oder Antworten in verschiedenen Ausgabedformaten wie JSON, Javasrcipt oder anderen Sprachen liefern.
Kompatibel mit? Euen? Langchain
Um Miniprompt zu verwenden, müssen Sie die Aufgabe, die Vorlage und das gewünschte Ausgangsformat definieren. Die Eingangssyntax ist so konzipiert, dass sie einfach zu verwenden und zu verstehen sind, sodass Benutzer Ausgänge generieren können, die auf ihre Anforderungen zugeschnitten sind. Beispieleingabe
Definieren Sie die Aufgabe, die Vorlage und das Ausgangsformat wie folgt:
TASK: ScrumSprint,<=3 userStories,<=3 acceptanceCriteria,complexity(1-5),Scope: "Login page"
TEMPLATE: complexity,stories[complexity,story"As a User,I want …,so that …",criteria[When,Then]]
OUTPUT: JSON
Diese Eingabe erzeugt eine JSON -Ausgabe mit den angegebenen Anforderungen.
Basierend auf der angegebenen Eingabe wird die folgende JSON -Ausgabe erzeugt:
{
"complexity" : 3 ,
"stories" : [
{
"complexity" : 3 ,
"story" : "As a User, I want to create an account, so that I can access the login page." ,
"criteria" : [
{
"When" : "I enter a valid email address and password" ,
"Then" : "I should be redirected to the login page"
} ,
{
"When" : "I enter an invalid email address or password" ,
"Then" : "I should see an error message"
} ,
{
"When" : "I try to create an account with an existing email address" ,
"Then" : "I should see an error message"
}
]
} ,
{
// …
} ,
{
// …
}
]
}Diese Eingabeaufforderung soll eine JSON -Ausgabe von Benutzergeschichten mit ihren Akzeptanzkriterien für einen Scrum -Sprint generieren, der sich auf eine "Anmeldeseite" konzentriert. Lassen Sie uns jeden Teil des schnellen Teils von Schritt für Schritt aufschlüsseln:
TASK : Dies definiert die zu ausgeführte Aufgabe. In diesem Fall wird die Aufgabe darin bestehen, Informationen für einen Scrum Sprint zu generieren.
ScrumSprint : Die Art der Ausführung von Aufgaben (ein Scrum -Sprint).<=3 userStories : Die Ausgabe sollte maximal 3 Benutzergeschichten haben.<=3 acceptanceCriteria : Jede Benutzergeschichte sollte maximal 3 Akzeptanzkriterien haben.complexity(1-5) : Die Komplexität jeder Benutzergeschichte sollte zwischen 1 (am wenigsten komplex) und 5 (am komplexesten) bewertet werden.Scope: "Login page" : Der Umfang des Scrum Sprint ist die Entwicklung einer Anmeldeseite. TEMPLATE : Dadurch definiert die Vorlage zum Generieren der Ausgabe. Die Vorlage ist wie folgt strukturiert:
complexity : Geben Sie die Komplexität der Benutzergeschichte in die Ausgabe ein.stories : Fügen Sie die Benutzergeschichten in die Ausgabe ein. Jede Benutzergeschichte sollte die folgenden Informationen enthalten:complexity : Die Komplexitätsbewertung der Benutzergeschichte.story"As a User, I want …, so that …" : Die Benutzergeschichte selbst, geschrieben im Format "als Benutzer, ich möchte [goal] , so dass [reason] ".criteria[When, Then] : Die Akzeptanzkriterien für die Benutzergeschichte, geschrieben im Format "wenn [condition] , dann [expected outcome] ". OUTPUT : Dies definiert das gewünschte Format der Ausgabe. In diesem Fall sollte die Ausgabe im JSON -Format sein.
Basierend auf dieser Eingabeaufforderung generiert die KI ein JSON -Objekt, das bis zu 3 Benutzergeschichten mit bis zu 3 Akzeptanzkriterien und deren Komplexitätsbewertungen enthält. Der Umfang dieser Benutzergeschichten beschränkt sich auf die Entwicklung einer Anmeldeseite.
Eingang
Die Eingabeaufforderung besteht aus einer Aufgabe, Vorlage und Ausgabeformat:
TASK: add a red box
TEMPLATE: const c=document.getElementById('c')
OUTPUT: JavaScript
TASK : Die Aufgabe besteht darin, ein rotes Feld mit JavaScript hinzuzufügen.TEMPLATE : Die bereitgestellte Vorlage enthält einen Teil des JavaScript -Codes, der zum Zeichnen des roten Feldes erforderlich ist:OUTPUT : Das gewünschte Ausgangsformat ist JavaScript.Ausgabe
const c = document . getElementById ( 'c' ) ;
const ctx = c . getContext ( '2d' ) ;
ctx . fillStyle = 'red' ;
ctx . fillRect ( 20 , 20 , 100 , 100 ) ; In bestimmten Situationen kann die AI-generierte Ausgabe Codeblöcke enthalten, die in den Markdown-Text eingebettet sind. Um die Ausgabe ordnungsgemäß zu verarbeiten und zu interpretieren, ist es ratsam, einen Parser zu verwenden, der speziell aus dem Markdown -Inhalt Codeblöcke extrahiert hat.
Erwägen Sie, einen Parser wie unten gezeigt zu verwenden, um Codeblöcke aus der AI-generierten Ausgabe zu extrahieren:
function extractCode ( string : string ) {
// The regular expression pattern to match the code block
const codeBlockPattern = / (`{3,})(w*)n([sS]*?)1 / g ;
// Find the matches using the regular expression
const matches = codeBlockPattern . exec ( string ) ;
if ( matches && matches . length >= 4 ) {
// Return content of the code block
return matches [ 3 ] ;
}
// No code block found, return original string
return string ;
}Diese JavaScript -Funktion ExtractCode verwendet einen regulären Ausdruck, der den Inhalt von Codeblöcken aus der Eingabezeichenfolge übereinstimmt und extrahiert. Wenn ein Codeblock gefunden wird, gibt die Funktion den Inhalt des Codeblocks zurück. Wenn kein Codeblock erkannt wird, wird die ursprüngliche Eingangszeichenfolge zurückgegeben.
Obwohl sie nicht obligatorisch ist, kann die Verwendung einer Systemnachricht die Konsistenz und Genauigkeit der Antworten der AI-generierten AI-generierten Verbesserung verbessern, indem sie sicherstellen, dass sie sich an die angegebenen Richtlinien halten.
Die Systemmeldung dient als Anweisungen für das KI -Sprachmodell und führt dazu, dass Antworten mit den bereitgestellten Richtlinien und dem gewünschten Ausgangsformat übereinstimmen.
You are an Entity that strictly answers with the OUTPUT format. You strictly follows the TASK, TEMPLATE and OUTPUT guidelines.
Die Systemnachricht verfügt über drei Hauptkomponenten, denen die KI strikt folgen sollte:
TASK : Die KI muss die in der Eingabeaufforderung angegebene Aufgabe verstehen und ausfüllen.TEMPLATE : Die KI sollte die angegebene Vorlage verwenden, um ihre Antwort zu strukturieren, um sicherzustellen, dass sie dem erforderlichen Format und der erforderlichen Organisation entspricht.OUTPUT : Die KI sollte die generierte Antwort im angegebenen Ausgangsformat (z. B. JSON, einfacher Text usw.) bereitstellen.Um die Systemnachricht in Ihren Eingabeaufforderungen zu verwenden, geben Sie einfach die folgende Nachricht zu Beginn Ihrer Eingabeaufforderung an:
You are an Entity that strictly answers with the OUTPUT format. You strictly follow the TASK, TEMPLATE and OUTPUT guidelines.
Geben Sie dann die Anweisungen für Aufgabe, Vorlage und Ausgabe nach Bedarf an. Das KI -Sprachmodell folgt diesen Anweisungen, um eine Antwort zu generieren, die den angegebenen Richtlinien und dem angegebenen Format entspricht. Beispiel
Verwenden der Systemnachricht in OpenAI -API:
[
{
"role": "system",
"content": "You are an Entity that strictly answers with the OUTPUT format. You strictly follow the TASK, TEMPLATE and OUTPUT guidelines."
},
{
"role": "user",
"content": "TASK: ScrumSprint,<=3 userStories,<=3 acceptanceCriteria,complexity(1-5),Scope: "Login page"nTEMPLATE: complexity,stories[complexity,story"As a User,I want …,so that …",criteria[When,Then]]nOUTPUT: JSON."
}
]
Verwenden der Systemnachricht in einer Eingabeaufforderung in Chatgpt:
You are an Entity that strictly answers with the OUTPUT format. You strictly follow the TASK, TEMPLATE and OUTPUT guidelines.
TASK: ScrumSprint,<=3 userStories,<=3 acceptanceCriteria,complexity(1-5),Scope: "Login page"
TEMPLATE: complexity,stories[complexity,story"As a User,I want …,so that …",criteria[When,Then]]
OUTPUT: JSON
Mit dieser Eingabeaufforderung generiert das KI -Sprachmodell eine JSON -Ausgabe mit bis zu 3 Benutzergeschichten mit jeweils bis zu 3 Akzeptanzkriterien und deren Komplexitätsbewertungen. Der Umfang dieser Benutzergeschichten beschränkt sich auf die Entwicklung einer Anmeldeseite.