
O MiniPrompt é uma sintaxe de entrada mínima para gerar saídas abrangentes a partir de LLMS (por exemplo, GPT-4). Com uma sintaxe simples e eficiente, o MiniPrompt pode fornecer informações ou respostas detalhadas em vários formatos de saída, como JSON, JAVASRCIPT ou outros idiomas.
Compatível com? Iqu? Langchain
Para começar a usar o MiniPrompt, você precisa definir o formato de tarefa, modelo e saída desejado. A sintaxe de entrada foi projetada para ser fácil de usar e entender, permitindo que os usuários gerem saídas adaptadas às suas necessidades. Exemplo de entrada
Defina o formato de tarefa, modelo e saída da seguinte forma:
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
Essa entrada gerará uma saída JSON com os requisitos especificados.
Com base na entrada fornecida, a seguinte saída JSON é gerada:
{
"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 prompt foi projetado para gerar uma saída JSON de histórias de usuários, cada uma com seus critérios de aceitação, para um sprint scrum focado em uma "página de login". Vamos quebrar cada parte do rápido passo a passo:
TASK : isso define a tarefa a ser executada. Nesse caso, a tarefa está gerando informações para um sprint scrum.
ScrumSprint : o tipo de tarefa a ser executado (um sprint scrum).<=3 userStories : a saída deve ter no máximo 3 histórias de usuários.<=3 acceptanceCriteria : Cada história do usuário deve ter no máximo 3 critérios de aceitação.complexity(1-5) : A complexidade de cada história do usuário deve ser classificada entre 1 (menos complexo) e 5 (mais complexo).Scope: "Login page" : o escopo do scrum sprint é o desenvolvimento de uma página de login. TEMPLATE : isso define o modelo para gerar a saída. O modelo está estruturado da seguinte forma:
complexity : inclua a complexidade da história do usuário na saída.stories : inclua as histórias de usuários na saída. Cada história do usuário deve ter as seguintes informações:complexity : a classificação da complexidade da história do usuário.story"As a User, I want …, so that …" : a própria história do usuário, escrita no formato "como usuário, eu quero [goal] , para que [reason] ".criteria[When, Then] : os critérios de aceitação para a história do usuário, escritos no formato "quando [condition] , depois [expected outcome] ". OUTPUT : isso define o formato desejado da saída. Nesse caso, a saída deve estar no formato JSON.
Com base nesse prompt, a IA gerará um objeto JSON contendo até 3 histórias de usuários, cada uma com até 3 critérios de aceitação e suas classificações de complexidade. O escopo dessas histórias de usuário é limitado ao desenvolvimento de uma página de login.
entrada
O prompt de entrada consiste em uma tarefa, modelo e formato de saída:
TASK: add a red box
TEMPLATE: const c=document.getElementById('c')
OUTPUT: JavaScript
TASK : a tarefa é adicionar uma caixa vermelha usando JavaScript.TEMPLATE : O modelo fornecido inclui uma parte do código JavaScript necessário para desenhar a caixa vermelha:OUTPUT : o formato de saída desejado é JavaScript.Saída
const c = document . getElementById ( 'c' ) ;
const ctx = c . getContext ( '2d' ) ;
ctx . fillStyle = 'red' ;
ctx . fillRect ( 20 , 20 , 100 , 100 ) ; Em determinadas situações, a saída gerada pela IA pode conter blocos de código incorporados no texto de marcação. Para manipular e interpretar corretamente a saída, é aconselhável usar um analisador projetado especificamente para extrair blocos de código do conteúdo do Markdown.
Considere usar um analisador como o mostrado abaixo para extrair blocos de código da saída gerada pela IA:
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 função JavaScript, ExtraCtCode, utiliza uma expressão regular para corresponder e extrair o conteúdo dos blocos de código da string de entrada. Se um bloco de código for encontrado, a função retornará o conteúdo do bloco de código. Se nenhum bloco de código for detectado, a sequência de entrada original será retornada.
Embora não seja obrigatório, o uso de uma mensagem do sistema pode melhorar a consistência e a precisão das respostas geradas pela IA, garantindo que elas aderem às diretrizes especificadas.
A mensagem do sistema serve como um conjunto de instruções para o modelo de idioma da IA, orientando -o a gerar respostas alinhadas com as diretrizes fornecidas e o formato de saída desejado.
You are an Entity that strictly answers with the OUTPUT format. You strictly follows the TASK, TEMPLATE and OUTPUT guidelines.
A mensagem do sistema tem três componentes principais que a IA deve seguir estritamente:
TASK : a IA deve entender e concluir a tarefa, conforme especificado no prompt.TEMPLATE : A IA deve usar o modelo fornecido para estruturar sua resposta, garantindo que atenda ao formato e organização necessários.OUTPUT : a IA deve fornecer a resposta gerada no formato de saída especificado (por exemplo, json, texto simples, etc.).Para usar a mensagem do sistema em seus avisos, basta incluir a seguinte mensagem no início do seu prompt:
You are an Entity that strictly answers with the OUTPUT format. You strictly follow the TASK, TEMPLATE and OUTPUT guidelines.
Em seguida, forneça as instruções de tarefa, modelo e saída, conforme necessário. O modelo de idioma da IA seguirá estas instruções para gerar uma resposta que atenda às diretrizes e formatos especificados. Exemplo
Usando a mensagem do sistema na API OpenAI:
[
{
"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 a mensagem do sistema em um prompt no 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
Com esse prompt, o modelo de idioma da IA gerará uma saída JSON contendo até 3 histórias de usuários, cada uma com até 3 critérios de aceitação e suas classificações de complexidade. O escopo dessas histórias de usuário é limitado ao desenvolvimento de uma página de login.