'O que é Engenharia de Prompt?', 'content' => 'A engenharia de prompt é o processo de projetar, refinar e otimizar entradas (prompts) para obter respostas melhores e mais úteis de modelos de linguagem. Um prompt bem construído pode transformar um modelo genérico em um assistente especializado. Dominar essa habilidade é essencial para extrair o máximo potencial de IAs como GPT, Claude, Gemini e outras.', 'example_bad' => 'Escreva sobre marketing.', 'example_good' => 'Crie um guia de 500 palavras sobre estratégias de marketing digital para pequenas empresas de tecnologia, focando em SEO e redes sociais.', 'order' => 1, ], [ 'title' => 'Defina um Objetivo Claro', 'content' => 'Comece sempre declarando o que deseja alcançar. Quanto mais específico, melhor. Evite comandos vagos. Um objetivo claro ajuda o modelo a entender exatamente o que você precisa.', 'example_bad' => 'Escreva sobre marketing.', 'example_good' => 'Crie um guia de 500 palavras sobre estratégias de marketing digital para pequenas empresas de tecnologia, focando em SEO e redes sociais.', 'order' => 2, ], [ 'title' => 'Forneça Contexto', 'content' => 'Informe ao modelo o cenário, o público-alvo e as restrições. O contexto melhora drasticamente a qualidade da resposta. Quanto mais contexto relevante você fornecer, mais precisa será a resposta.', 'example_bad' => 'Explique como funciona uma API REST.', 'example_good' => 'Explique como funciona uma API REST para um grupo de estudantes de desenvolvimento web de 18 a 25 anos, que estão aprendendo backend com Node.js pela primeira vez. Use analogias simples e evite jargões excessivos.', 'order' => 3, ], [ 'title' => 'Estabeleça a Persona', 'content' => 'Peça para o modelo assumir um papel específico: "Você é um professor de matemática", "Você é um revisor de código sênior". Isso direciona o estilo e a profundidade da resposta.', 'example_bad' => 'Corrija este código.', 'example_good' => 'Você é um revisor de código sênior especializado em PHP e Laravel. Analise o seguinte código, identifique problemas de performance, segurança e legibilidade, e sugira melhorias seguindo as melhores práticas do PSR-12.', 'order' => 4, ], [ 'title' => 'Defina o Tom e Estilo', 'content' => 'Especifique se a resposta deve ser formal, informal, técnica, simples, persuasiva, etc. O tom adequado garante que a comunicação seja eficaz para o público-alvo.', 'example_bad' => 'Escreva um e-mail para um cliente.', 'example_good' => 'Escreva um e-mail profissional e cordial para um cliente que solicitou um reembolso. O tom deve ser empático, mas mantendo a formalidade. Explique o processo de reembolso em até 3 parágrafos e ofereça um cupom de 10% de desconto como compensação.', 'order' => 5, ], [ 'title' => 'Liste Restrições', 'content' => 'Limite o modelo com regras: "Não use jargões", "Responda em até 3 parágrafos", "Não inclua opiniões pessoais". Restrições claras evitam respostas fora do esperado.', 'example_bad' => 'Faça um resumo deste artigo.', 'example_good' => 'Faça um resumo do artigo abaixo seguindo estas regras: - Máximo de 150 palavras - Apenas fatos presentes no texto - Não inclua opiniões pessoais - Use bullet points - Não use jargões técnicos', 'order' => 6, ], [ 'title' => 'Especifique o Formato de Saída', 'content' => 'Peça a estrutura desejada: lista, tabela, JSON, markdown, código, etc. O formato correto facilita o uso da resposta em outros sistemas ou documentos.', 'example_bad' => 'Liste os benefícios do exercício físico.', 'example_good' => 'Liste os 5 principais benefícios do exercício físico no formato de tabela Markdown com duas colunas: "Benefício" e "Descrição".', 'order' => 7, ], [ 'title' => 'Use Exemplos (Few-Shot)', 'content' => 'Mostre ao modelo exemplos do que espera. Isso reduz alucinações e aumenta a precisão. O aprendizado few-shot é uma das técnicas mais poderosas da engenharia de prompt.', 'example_bad' => 'Classifique estas frases como positivas ou negativas.', 'example_good' => 'Classifique as frases abaixo como "positiva" ou "negativa": Exemplo 1: "Adorei o produto, chegou rápido e bem embalado." -> Positiva Exemplo 2: "Péssimo atendimento, demoraram 2 horas para me atender." -> Negativa Exemplo 3: "O produto é ok, nada de especial." -> Neutra Agora classifique: "A entrega foi super rápida e o produto veio perfeito."', 'order' => 8, ], [ 'title' => 'Utilize Variáveis', 'content' => 'Use placeholders como {{variavel}} para criar prompts reutilizáveis. Variáveis permitem criar templates que podem ser usados em diferentes situações sem reescrever todo o prompt.', 'example_bad' => null, 'example_good' => 'Você é um especialista em {{area}}. Crie um artigo de {{quantidade_palavras}} palavras sobre {{topico}}. Público-alvo: {{publico}}. Tom: {{tom}}. Formato: {{formato}}', 'order' => 9, ], [ 'title' => 'Ajuste a Temperatura', 'content' => 'Temperatura baixa (0.0 - 0.3): respostas mais determinísticas e precisas. Temperatura alta (0.7 - 1.0): mais criativa e diversificada. A escolha da temperatura depende do tipo de tarefa.', 'example_bad' => null, 'example_good' => null, 'order' => 10, ], [ 'title' => 'Controle os Max Tokens', 'content' => 'Defina o tamanho máximo da resposta. Evite respostas muito longas ou truncadas. O controle de tokens ajuda a gerenciar custos e garantir respostas no tamanho adequado.', 'example_bad' => null, 'example_good' => null, 'order' => 11, ], [ 'title' => 'Técnica Chain-of-Thought', 'content' => 'Peça para o modelo pensar passo a passo antes de responder. Adicione frases como "Vamos pensar passo a passo" ou "Primeiro, identifique os elementos principais". Isso melhora significativamente respostas complexas.', 'example_bad' => 'Resolva este problema de matemática: Se João tem 3 maçãs e dá 1 para Maria, quantas maçãs ele tem?', 'example_good' => 'Resolva este problema de matemática passo a passo: Se João tem 3 maçãs e dá 1 para Maria, quantas maçãs ele tem? Mostre seu raciocínio antes de dar a resposta final.', 'order' => 12, ], [ 'title' => 'Técnica Zero-Shot', 'content' => 'Peça diretamente sem exemplos. Funciona bem para tarefas simples e diretas. O zero-shot é a forma mais básica de interação com um modelo de linguagem.', 'example_bad' => null, 'example_good' => null, 'order' => 13, ], [ 'title' => 'Técnica Few-Shot', 'content' => 'Forneça exemplos de entrada e saída. Ideal para tarefas de classificação, extração e formatação. Quanto mais exemplos relevantes, melhor o desempenho.', 'example_bad' => null, 'example_good' => null, 'order' => 14, ], [ 'title' => 'Técnica One-Shot', 'content' => 'Forneça apenas um exemplo. Útil quando você tem um exemplo representativo mas não consegue fornecer múltiplos exemplos.', 'example_bad' => null, 'example_good' => null, 'order' => 15, ], [ 'title' => 'Prompt de Sistema (System Prompt)', 'content' => 'Defina regras globais que se aplicam a toda a conversa. O prompt de sistema estabelece o comportamento base do modelo e deve ser usado para definir persona, regras e restrições permanentes.', 'example_bad' => null, 'example_good' => 'Você é um assistente especializado em atendimento ao cliente da empresa TechCorp. Sempre responda de forma profissional, empática e objetiva. Nunca forneça informações sobre concorrentes. Se não souber a resposta, diga "Vou verificar essa informação com nossa equipe especializada".', 'order' => 16, ], [ 'title' => 'Prompt de Usuário (User Prompt)', 'content' => 'A entrada específica do usuário em cada interação. Deve ser clara, objetiva e conter todo o contexto necessário para a resposta.', 'example_bad' => 'Me ajude com meu problema.', 'example_good' => 'Estou tendo dificuldades para configurar o pagamento no meu aplicativo. O erro que aparece é "Transação não autorizada". Já verifiquei meus dados bancários e estão corretos. O que devo fazer?', 'order' => 17, ], [ 'title' => 'Iteração e Refinamento', 'content' => 'A primeira resposta raramente é perfeita. Ajuste o prompt com base no resultado. Adicione detalhes, remova ambiguidades e teste variações até obter o resultado desejado.', 'example_bad' => null, 'example_good' => null, 'order' => 18, ], [ 'title' => 'Evite Alucinações', 'content' => 'Peça para o modelo citar fontes, admitir incertezas e separar fatos de opiniões. Alucinações são respostas inventadas que parecem corretas mas não são.', 'example_bad' => 'Quem inventou a internet?', 'example_good' => 'Quem inventou a internet? Responda apenas com base em fatos históricos documentados. Se não tiver certeza, indique a incerteza e cite as fontes consultadas.', 'order' => 19, ], [ 'title' => 'Melhores Práticas e Conclusão', 'content' => 'Resumo das melhores práticas: seja específico, forneça contexto, use exemplos, defina formato, ajuste parâmetros e sempre itere. A engenharia de prompt é uma habilidade que se desenvolve com prática contínua.', 'example_bad' => null, 'example_good' => null, 'order' => 20, ], ]; foreach ($lessons as $lessonData) { TutorialLesson::create($lessonData); } $questions = [ [ 'question' => 'O que é engenharia de prompt?', 'options' => [ 'Um tipo de modelo de linguagem', 'O processo de projetar e refinar entradas para obter melhores respostas de IAs', 'Uma linguagem de programação', 'Um framework de desenvolvimento', ], 'correct_answer' => 'O processo de projetar e refinar entradas para obter melhores respostas de IAs', 'explanation' => 'Engenharia de prompt é a arte de criar instruções eficazes para modelos de linguagem.', 'order' => 1, ], [ 'question' => 'Qual elemento NÃO faz parte de um prompt eficaz?', 'options' => [ 'Objetivo claro', 'Contexto', 'Informações aleatórias sem relação com a tarefa', 'Formato de saída definido', ], 'correct_answer' => 'Informações aleatórias sem relação com a tarefa', 'explanation' => 'Toda informação no prompt deve ser relevante para a tarefa desejada.', 'order' => 2, ], [ 'question' => 'Qual técnica consiste em fornecer exemplos de entrada e saída?', 'options' => [ 'Zero-shot', 'One-shot', 'Few-shot', 'Chain-of-thought', ], 'correct_answer' => 'Few-shot', 'explanation' => 'Few-shot é a técnica de fornecer múltiplos exemplos para guiar o modelo.', 'order' => 3, ], [ 'question' => 'Para que serve a temperatura em um modelo de linguagem?', 'options' => [ 'Controlar o tamanho da resposta', 'Controlar a criatividade/determinismo da resposta', 'Definir o idioma da resposta', 'Aumentar a velocidade de processamento', ], 'correct_answer' => 'Controlar a criatividade/determinismo da resposta', 'explanation' => 'Temperatura baixa = mais determinístico, temperatura alta = mais criativo.', 'order' => 4, ], [ 'question' => 'Qual temperatura é recomendada para tarefas factuais e extração de dados?', 'options' => [ '0.0 - 0.3', '0.4 - 0.6', '0.7 - 1.0', 'Qualquer valor funciona igual', ], 'correct_answer' => '0.0 - 0.3', 'explanation' => 'Tarefas factuais precisam de respostas determinísticas e precisas.', 'order' => 5, ], [ 'question' => 'O que é um prompt de sistema (system prompt)?', 'options' => [ 'Um comando para reiniciar o sistema', 'Um prompt que define regras globais e comportamento do modelo', 'Um erro do sistema', 'Uma configuração de hardware', ], 'correct_answer' => 'Um prompt que define regras globais e comportamento do modelo', 'explanation' => 'O system prompt estabelece o comportamento base do modelo em toda a conversa.', 'order' => 6, ], [ 'question' => 'Qual a função das variáveis em prompts?', 'options' => [ 'Aumentar o tamanho do prompt', 'Tornar o prompt reutilizável e dinâmico', 'Diminuir a qualidade da resposta', 'Apenas decorar o texto', ], 'correct_answer' => 'Tornar o prompt reutilizável e dinâmico', 'explanation' => 'Variáveis permitem criar templates reutilizáveis para diferentes cenários.', 'order' => 7, ], [ 'question' => 'O que é a técnica Chain-of-Thought?', 'options' => [ 'Uma técnica de encadeamento de prompts', 'Pedir para o modelo pensar passo a passo antes de responder', 'Conectar vários modelos de IA', 'Uma forma de programação em cadeia', ], 'correct_answer' => 'Pedir para o modelo pensar passo a passo antes de responder', 'explanation' => 'Chain-of-Thought melhora respostas complexas solicitando raciocínio passo a passo.', 'order' => 8, ], [ 'question' => 'Por que é importante iterar e refinar prompts?', 'options' => [ 'Porque a primeira resposta sempre é perfeita', 'Porque ajustes baseados no resultado melhoram a qualidade', 'Porque é uma regra da linguagem Python', 'Porque modelos não entendem prompts longos', ], 'correct_answer' => 'Porque ajustes baseados no resultado melhoram a qualidade', 'explanation' => 'A engenharia de prompt é um processo iterativo de melhoria contínua.', 'order' => 9, ], [ 'question' => 'O que são alucinações em modelos de linguagem?', 'options' => [ 'Respostas corretas e precisas', 'Respostas inventadas que parecem corretas mas não são', 'Um tipo de erro de sistema', 'Respostas muito curtas', ], 'correct_answer' => 'Respostas inventadas que parecem corretas mas não são', 'explanation' => 'Alucinações são informações falsas geradas pelo modelo que parecem plausíveis.', 'order' => 10, ], ]; foreach ($questions as $questionData) { TutorialQuestion::create($questionData); } } }