
Miniprompt es una sintaxis de entrada mínima para generar salidas integrales de LLMS (por ejemplo, GPT-4). Con una sintaxis simple y eficiente, Miniprompt puede proporcionar información o respuestas detalladas en varios formatos de salida, como JSON, Javasrcipt u otros idiomas.
Compatible con? ️? Langchain
Para comenzar a usar Miniprompt, debe definir la tarea, la plantilla y el formato de salida deseado. La sintaxis de entrada está diseñada para ser fácil de usar y comprender, lo que permite a los usuarios generar salidas adaptadas a sus necesidades. Entrada de ejemplo
Defina la tarea, la plantilla y el formato de salida de la siguiente manera:
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
Esta entrada generará una salida JSON con los requisitos especificados.
Según la entrada dada, se genera la siguiente salida JSON:
{
"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"
}
]
} ,
{
// …
} ,
{
// …
}
]
}Este aviso está diseñado para generar una salida JSON de historias de usuarios, cada una con sus criterios de aceptación, para un scrum sprint centrado en una "página de inicio de sesión". Desglosemos cada parte del mensaje paso a paso:
TASK : esto define la tarea a realizar. En este caso, la tarea está generando información para un sprum sprint.
ScrumSprint : el tipo de tarea que se realizará (un scrum sprint).<=3 userStories : la salida debe tener un máximo de 3 historias de usuarios.<=3 acceptanceCriteria : cada historia del usuario debe tener un máximo de 3 criterios de aceptación.complexity(1-5) : la complejidad de cada historia del usuario debe clasificarse entre 1 (menos complejo) y 5 (más complejo).Scope: "Login page" : El alcance del scrum sprint es el desarrollo de una página de inicio de sesión. TEMPLATE : esto define la plantilla para generar la salida. La plantilla está estructurada de la siguiente manera:
complexity : incluya la complejidad de la historia del usuario en la salida.stories : incluya las historias de los usuarios en la salida. Cada historia de usuario debe tener la siguiente información:complexity : la calificación de complejidad de la historia del usuario.story"As a User, I want …, so that …" : la historia del usuario en sí, escrita en el formato "Como usuario, quiero [goal] , para que [reason] ".criteria[When, Then] : los criterios de aceptación para la historia del usuario, escritos en el formato "cuando [condition] , luego [expected outcome] ". OUTPUT : esto define el formato deseado de la salida. En este caso, la salida debe estar en formato JSON.
Según este aviso, la IA generará un objeto JSON que contenga hasta 3 historias de usuarios, cada una con hasta 3 criterios de aceptación y sus calificaciones de complejidad. El alcance de estas historias de usuarios se limita al desarrollo de una página de inicio de sesión.
aporte
El mensaje de entrada consiste en una tarea, plantilla y formato de salida:
TASK: add a red box
TEMPLATE: const c=document.getElementById('c')
OUTPUT: JavaScript
TASK : la tarea es agregar un cuadro rojo usando JavaScript.TEMPLATE : la plantilla proporcionada incluye una parte del código JavaScript necesario para dibujar el cuadro rojo:OUTPUT : El formato de salida deseado es JavaScript.Producción
const c = document . getElementById ( 'c' ) ;
const ctx = c . getContext ( '2d' ) ;
ctx . fillStyle = 'red' ;
ctx . fillRect ( 20 , 20 , 100 , 100 ) ; En ciertas situaciones, la salida generada por IA puede contener bloques de código integrados dentro del texto de Markdown. Para manejar e interpretar correctamente la salida, es aconsejable usar un analizador específicamente diseñado para extraer bloques de código del contenido de Markdown.
Considere usar un analizador como el que se muestra a continuación para extraer bloques de código de la salida generada por AI:
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 ;
}Esta función JavaScript, ExtractCode, utiliza una expresión regular para que coincida y extraiga el contenido de bloques de código de la cadena de entrada. Si se encuentra un bloque de código, la función devuelve el contenido del bloque de código. Si no se detecta ningún bloque de código, se devuelve la cadena de entrada original.
Si bien no es obligatorio, el uso de un mensaje del sistema puede mejorar la consistencia y la precisión de las respuestas generadas por IA asegurando que se adhieran a las pautas especificadas.
El mensaje del sistema sirve como un conjunto de instrucciones para el modelo de lenguaje AI, guiándolo para generar respuestas que se alineen con las pautas proporcionadas y el formato de salida deseado.
You are an Entity that strictly answers with the OUTPUT format. You strictly follows the TASK, TEMPLATE and OUTPUT guidelines.
El mensaje del sistema tiene tres componentes principales que la IA debería seguir estrictamente:
TASK : la IA debe comprender y completar la tarea como se especifica en el aviso.TEMPLATE : la IA debe usar la plantilla dada para estructurar su respuesta, asegurando que cumpla con el formato y la organización requeridos.OUTPUT : la IA debe proporcionar la respuesta generada en el formato de salida especificado (por ejemplo, JSON, texto plano, etc.).Para usar el mensaje del sistema en sus indicaciones, simplemente incluya el siguiente mensaje al comienzo de su solicitud:
You are an Entity that strictly answers with the OUTPUT format. You strictly follow the TASK, TEMPLATE and OUTPUT guidelines.
Luego, proporcione las instrucciones de tarea, plantilla y salida según sea necesario. El modelo de idioma AI seguirá estas instrucciones para generar una respuesta que cumpla con las pautas y formatos especificados. Ejemplo
Uso del mensaje del sistema en 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."
}
]
Usando el mensaje del sistema en un mensaje en 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
Con este aviso, el modelo de idioma AI generará una salida JSON que contenga hasta 3 historias de usuarios, cada una con hasta 3 criterios de aceptación y sus calificaciones de complejidad. El alcance de estas historias de usuarios se limita al desarrollo de una página de inicio de sesión.