First Commit

This commit is contained in:
marco
2026-09-01 09:22:30 -03:00
commit a43ae23eb4
407 changed files with 36138 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
<?php
namespace Database\Seeders;
use App\Models\AiModel;
use App\Models\AiProvider;
use Illuminate\Database\Seeder;
class AiProviderSeeder extends Seeder
{
/**
* Seed the application AI providers.
*/
public function run(): void
{
$openrouter = AiProvider::withTrashed()->where('slug', 'openrouter')->first();
if (!$openrouter) {
$openrouter = AiProvider::create([
'name' => 'OpenRouter',
'slug' => 'openrouter',
'description' => 'Provedor OpenRouter com múltiplos modelos de IA',
'base_url' => env('OPENROUTER_BASE_URL', 'https://openrouter.ai/api/v1'),
'api_key' => env('OPENROUTER_API_KEY', ''),
'is_active' => true,
]);
}
$stepfun = AiProvider::withTrashed()->where('slug', 'stepfun')->first();
if (!$stepfun) {
$stepfun = AiProvider::create([
'name' => 'StepFun',
'slug' => 'stepfun',
'description' => 'Provedor StepFun com modelos avançados',
'base_url' => env('STEPFUN_BASE_URL', 'https://api.stepfun.ai/v1'),
'api_key' => env('STEPFUN_API_KEY', ''),
'is_active' => true,
]);
}
$llamacpp = AiProvider::withTrashed()->where('slug', 'llamacpp')->first();
if (!$llamacpp) {
$llamacpp = AiProvider::create([
'name' => 'Llama.cpp Local',
'slug' => 'llamacpp',
'description' => 'Servidor local Llama.cpp',
'base_url' => env('LLAMACPP_BASE_URL', 'http://localhost:8080'),
'api_key' => null,
'is_active' => true,
]);
}
$this->seedModels($openrouter, 'openrouter');
$this->seedModels($stepfun, 'stepfun');
$this->seedModels($llamacpp, 'llamacpp');
}
/**
* Seed models for a given provider.
*/
private function seedModels(AiProvider $provider, string $providerSlug): void
{
$models = [
'openrouter' => [
['name' => 'inclusionai/ling-2.6-flash', 'slug' => 'inclusionai/ling-2.6-flash', 'max_tokens' => 4096],
['name' => 'inclusionai/ling-3.0-tiny:free', 'slug' => 'inclusionai/ling-3.0-tiny:free', 'max_tokens' => 4096],
['name' => 'poolside/laguna-s-2.1:free', 'slug' => 'poolside/laguna-s-2.1:free', 'max_tokens' => 4096],
['name' => 'poolside/laguna-xs-2.1:free', 'slug' => 'poolside/laguna-xs-2.1:free', 'max_tokens' => 4096],
['name' => 'cohere/north-mini-code:free', 'slug' => 'cohere/north-mini-code:free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-3.5-content-safety:free', 'slug' => 'nvidia/nemotron-3.5-content-safety:free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-3-ultra-550b-a55b:free', 'slug' => 'nvidia/nemotron-3-ultra-550b-a55b:free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free', 'slug' => 'nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free', 'max_tokens' => 4096],
['name' => 'google/gemma-4-26b-a4b-it:free', 'slug' => 'google/gemma-4-26b-a4b-it:free', 'max_tokens' => 4096],
['name' => 'google/gemma-4-31b-it:free', 'slug' => 'google/gemma-4-31b-it:free', 'max_tokens' => 4096],
['name' => 'google/lyria-3-pro-preview', 'slug' => 'google/lyria-3-pro-preview', 'max_tokens' => 4096],
['name' => 'google/lyria-3-clip-preview', 'slug' => 'google/lyria-3-clip-preview', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-3-super-120b-a12b:free', 'slug' => 'nvidia/nemotron-3-super-120b-a12b:free', 'max_tokens' => 4096],
['name' => 'openrouter/free', 'slug' => 'openrouter/free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-3-nano-30b-a3b:free', 'slug' => 'nvidia/nemotron-3-nano-30b-a3b:free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-nano-12b-v2-vl:free', 'slug' => 'nvidia/nemotron-nano-12b-v2-vl:free', 'max_tokens' => 4096],
['name' => 'nvidia/nemotron-nano-9b-v2:free', 'slug' => 'nvidia/nemotron-nano-9b-v2:free', 'max_tokens' => 4096],
['name' => 'openai/gpt-oss-20b:free', 'slug' => 'openai/gpt-oss-20b:free', 'max_tokens' => 4096],
['name' => 'deepseek/deepseek-v4-flash', 'slug' => 'deepseek/deepseek-v4-flash', 'max_tokens' => 8192],
],
'stepfun' => [
['name' => 'step-3.5-flash', 'slug' => 'step-3.5-flash', 'max_tokens' => 8192],
['name' => 'step-3.7-flash', 'slug' => 'step-3.7-flash', 'max_tokens' => 8192],
],
'llamacpp' => [
['name' => 'Qwen3-8B-Q4_K_M.gguf', 'slug' => 'Qwen3-8B-Q4_K_M.gguf', 'max_tokens' => 4096],
['name' => 'Llama-3.2-3B-Instruct-uncensored-Q4_K_M.gguf', 'slug' => 'Llama-3.2-3B-Instruct-uncensored-Q4_K_M.gguf', 'max_tokens' => 2048],
['name' => 'ibm-granite_granite-4.1-3b-Q4_K_M.gguf', 'slug' => 'ibm-granite_granite-4.1-3b-Q4_K_M.gguf', 'max_tokens' => 2048],
['name' => 'qwen2.5-coder-3b-instruct-q4_k_m.gguf', 'slug' => 'qwen2.5-coder-3b-instruct-q4_k_m.gguf', 'max_tokens' => 2048],
['name' => 'LiquidAI_LFM2.5-1.2B-Instruct-Q4_0.gguf', 'slug' => 'LiquidAI_LFM2.5-1.2B-Instruct-Q4_0.gguf', 'max_tokens' => 2048],
],
];
foreach ($models[$providerSlug] as $modelData) {
AiModel::firstOrCreate(
[
'provider_id' => $provider->id,
'slug' => $modelData['slug'],
],
$modelData
);
}
}
}
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
$this->call([
UserSeeder::class,
AiProviderSeeder::class,
PromptTemplateSeeder::class,
TutorialSeeder::class,
]);
}
}
+107
View File
@@ -0,0 +1,107 @@
<?php
declare(strict_types=1);
namespace Database\Seeders;
use App\Models\LegalDocument;
use App\Models\User;
use Illuminate\Database\Seeder;
class LegalDocumentSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$superadmin = User::where('role', 'superadmin')->first();
$termsContent = <<<EOT
TERMOS DE USO
1. Aceitação dos Termos
Ao acessar e utilizar o sistema GPrompt, você concorda em cumprir estes Termos de Uso.
2. Descrição do Serviço
O GPrompt é um sistema de geração de prompts para inteligência artificial.
3. Conta de Usuário
Você é responsável por manter a confidencialidade de sua conta e senha.
4. Conduta do Usuário
Você concorda em utilizar o sistema de acordo com as leis aplicáveis.
5. Propriedade Intelectual
Todo o conteúdo e funcionalidades são de propriedade da Syspanel.
6. Limitação de Responsabilidade
O sistema é fornecido "como está", sem garantias.
7. Modificações
Estes termos podem ser alterados a qualquer momento.
8. Lei Aplicável
Estes termos são regidos pelas leis brasileiras.
EOT;
$privacyContent = <<<EOT
POLÍTICA DE PRIVACIDADE
1. Informações Gerais
Esta Política de Privacidade descreve como o GPrompt coleta e utiliza dados pessoais.
2. Dados Coletados
- Nome e e-mail
- Senha (armazenada de forma segura)
- Dados de uso do sistema
- Endereço IP
3. Finalidade da Coleta
- Autenticação e acesso ao sistema
- Geração de prompts com IA
- Comunicações sobre o serviço
- Segurança e prevenção de fraudes
4. Base Legal
- Consentimento do usuário
- Execução de contrato
- Cumprimento de obrigação legal
- Legítimo interesse
5. Compartilhamento
Seus dados não são compartilhados com terceiros, exceto quando exigido por lei.
6. Armazenamento
Os dados são armazenados em servidores seguros durante o tempo necessário.
7. Direitos do Titular
- Acesso aos dados
- Correção de informações
- Exclusão da conta
- Portabilidade
- Revogação do consentimento
8. Contato
Para exercer seus direitos, entre em contato: contato@syspanel.com.br
EOT;
LegalDocument::create([
'type' => 'terms-of-service',
'title' => 'Termos de Uso',
'content' => $termsContent,
'version' => '1.0',
'published_by' => $superadmin?->id,
'published_at' => now(),
]);
LegalDocument::create([
'type' => 'privacy-policy',
'title' => 'Política de Privacidade',
'content' => $privacyContent,
'version' => '1.0',
'published_by' => $superadmin?->id,
'published_at' => now(),
]);
}
}
+711
View File
@@ -0,0 +1,711 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class PromptTemplateSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
$templates = [
[
'name' => 'Landing Page Corporativa',
'description' => 'Landing page moderna e profissional para empresa de tecnologia B2B.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Corporativa',
'objective' => 'Gerar uma landing page moderna e profissional para uma empresa de tecnologia B2B, focada em soluções empresariais, com design clean,CTA forte e conteúdo persuasivo.',
'context' => 'A empresa atende pequenas e médias empresas com soluções de tecnologia. A landing page deve transmitir confiança, inovação e credibilidade, com design moderno e responsivo.',
'persona' => 'Você é um especialista em UI/UX e Frontend com foco em conversão. Domina HTML5, CSS3, JavaScript, Bootstrap 5 e práticas de SEO.',
'tone' => 'Profissional, tecnológico, confiável e moderno. Linguagem acessível mas sofisticada.',
'constraints' => "- HTML5 semântico e acessível.\n- CSS responsivo mobile-first.\n- Máximo de 800 linhas.\n- SEO otimizado.\n- Sem dependências externas além de Bootstrap 5 e Bootstrap Icons.\n- Animações suaves com CSS.",
'output_format' => 'Código HTML completo em arquivo único com CSS embutido e JavaScript mínimo para interações.',
'examples' => "Hero section com headline, subtítulo, CTA.\nCards de serviços.\nDepoimentos.\nFormulário de contato.\nFooter completo.",
'variables' => 'nome_empresa, slogan, telefone, email, endereco, linkedin_url',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page SaaS',
'description' => 'Landing page de alta conversão para produto SaaS.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page SaaS',
'objective' => 'Gerar uma landing page de alta conversão para um produto SaaS, com foco em funcionalidades, planos de preço e captura de leads.',
'context' => 'SaaS B2B ou B2C com modelo de assinatura. Precisa convencer visitantes a experimentar ou assinar o produto.',
'persona' => 'Especialista em Growth-Driven Design e CRO (Conversion Rate Optimization) para SaaS.',
'tone' => 'Moderno, direto, orientado a resultados. Linguagem clara e orientada a benefícios.',
'constraints' => "- Foco em conversão e captura de leads.\n- Design moderno com animações.\n- Responsivo.\n- SEO otimizado.\n- Máximo de 900 linhas.",
'output_format' => 'HTML completo com seções: Hero, Features, Pricing, FAQ, CTA final, Footer.',
'examples' => 'Hero com trial grátis, grid de funcionalidades, tabela de preços com destaque no plano recomendado.',
'variables' => 'nome_produto, slogan, trial_dias, preco_inicial, url_signup',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Produto Digital',
'description' => 'Landing page para lançamento ou venda de produto digital.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Produto Digital',
'objective' => 'Gerar uma landing page para lançamento ou venda de um produto digital (curso, e-book, template, plugin).',
'context' => 'Produto digital voltado para criadores de conteúdo, desenvolvedores ou profissionais de marketing.',
'persona' => 'Especialista em lançamentos digitais e páginas de alta conversão.',
'tone' => 'Persuasivo, entusiasta e confiável.',
'constraints' => "- Foco em conversão.\n- Design moderno.\n- Responsivo.\n- Máximo de 800 linhas.",
'output_format' => 'HTML completo com seções: Hero, Problema/Solução, Benefícios, Prova social, Oferta, FAQ, CTA.',
'examples' => 'Hero com vídeo ou imagem, seção de benefícios com ícones, depoimentos, contador de oferta.',
'variables' => 'nome_produto, preco, desconto, url_checkout',
'temperature' => 0.8,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Evento',
'description' => 'Landing page para evento online ou presencial.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Evento',
'objective' => 'Gerar uma landing page para evento online ou presencial, com informações, programação e inscrição.',
'context' => 'Evento corporativo, conferência, workshop ou webinar. Público de 100 a 5000 participantes.',
'persona' => 'Especialista em eventos e experiência do usuário para inscrições.',
'tone' => 'Animado, profissional, informativo.',
'constraints' => "- Design impactante.\n- Informações claras.\n- Formulário de inscrição.\n- Responsivo.\n- Máximo de 700 linhas.",
'output_format' => 'HTML completo com seções: Hero, Sobre, Programação, Palestrantes, Inscrição, Local/Online, Footer.',
'examples' => 'Hero com contador regressivo, cards de palestrantes, timeline do evento, mapa ou link de transmissão.',
'variables' => 'nome_evento, data, local, url_inscricao, valor',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page E-book / Lead Magnet',
'description' => 'Landing page para captura de leads com oferta de e-book.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page E-book / Lead Magnet',
'objective' => 'Gerar uma landing page para captura de leads com oferta de e-book, guia ou material rico.',
'context' => 'Marketing de conteúdo para nutrição de leads. O material é oferecido em troca de e-mail.',
'persona' => 'Especialista em marketing de conteúdo e inbound marketing.',
'tone' => 'Educativo, confiável, persuasivo.',
'constraints' => "- Foco em captura de leads.\n- Design clean.\n- Responsivo.\n- Máximo de 600 linhas.",
'output_format' => 'HTML completo com seções: Hero, O que você vai aprender, Sobre o autor, Formulário de captura, Footer.',
'examples' => 'Hero com capa do e-book, bullets de benefícios, formulário simples (nome + email), CTA destacado.',
'variables' => 'titulo_ebook, autor, numero_paginas, url_download',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Curso Online',
'description' => 'Landing page para venda de curso online.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Curso Online',
'objective' => 'Gerar uma landing page para venda de curso online, com módulos, depoimentos e garantia.',
'context' => 'Curso online de desenvolvimento web, marketing digital, design ou área tech. Público iniciante a intermediário.',
'persona' => 'Especialista em educação a distância e páginas de venda de cursos.',
'tone' => 'Motivador, educativo, confiável.',
'constraints' => "- Foco em conversão.\n- Design moderno.\n- Responsivo.\n- Máximo de 900 linhas.",
'output_format' => 'HTML completo com seções: Hero, Para quem é, Conteúdo programático, Instrutor, Depoimentos, Garantia, Preço, FAQ, CTA.',
'examples' => 'Hero com vídeo de apresentação, accordion de módulos, selo de garantia, depoimentos em vídeo.',
'variables' => 'nome_curso, instrutor, carga_horaria, preco, url_matricula',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page App Mobile',
'description' => 'Landing page para aplicativo mobile.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page App Mobile',
'objective' => 'Gerar uma landing page para aplicativo mobile, com telas, funcionalidades e links para download.',
'context' => 'App de produtividade, finanças, saúde ou social. Disponível para iOS e Android.',
'persona' => 'Especialista em mobile apps e ASO (App Store Optimization).',
'tone' => 'Moderno, dinâmico, fresco.',
'constraints' => "- Design moderno com mockups.\n- Responsivo.\n- Links para App Store e Google Play.\n- Máximo de 800 linhas.",
'output_format' => 'HTML completo com seções: Hero, Funcionalidades, Telas, Reviews, Download, FAQ, Footer.',
'examples' => 'Hero com phone mockup, grid de funcionalidades com ícones, badges de avaliação, botões de download.',
'variables' => 'nome_app, slogan, url_ios, url_android, categoria',
'temperature' => 0.8,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Agência',
'description' => 'Landing page para agência de marketing ou desenvolvimento.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Agência',
'objective' => 'Gerar uma landing page para agência de marketing, design ou desenvolvimento, com portfólio e formulário de contato.',
'context' => 'Agência digital que oferece serviços de branding, design, desenvolvimento e marketing. Atende startups e PMEs.',
'persona' => 'Especialista em branding e experiência digital para agências.',
'tone' => 'Criativo, profissional, ousado.',
'constraints' => "- Design impactante.\n- Portfólio em destaque.\n- Responsivo.\n- Máximo de 900 linhas.",
'output_format' => 'HTML completo com seções: Hero, Serviços, Portfólio, Processo, Clientes, Depoimentos, Contato, Footer.',
'examples' => 'Hero com vídeo background, grid de projetos, logos de clientes, formulário de orçamento.',
'variables' => 'nome_agencia, especialidades, url_portfolio, telefone, email',
'temperature' => 0.8,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Restaurante',
'description' => 'Landing page para restaurante com cardápio e reservas.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Restaurante',
'objective' => 'Gerar uma landing page para restaurante, com cardápio, reservas e informações.',
'context' => 'Restaurante de culinária contemporânea, com ambiente acolhedor e delivery.',
'persona' => 'Especialista em design para gastronomia e experiência do usuário.',
'tone' => 'Acolhedor, sofisticado, saboroso.',
'constraints' => "- Design elegante.\n- Cardápio visual.\n- Sistema de reservas.\n- Responsivo.\n- Máximo de 700 linhas.",
'output_format' => 'HTML completo com seções: Hero, Sobre, Cardápio, Reservas, Depoimentos, Localização, Footer.',
'examples' => 'Hero com imagem do ambiente, cards de pratos com fotos, mapa integrado, botão de reserva.',
'variables' => 'nome_restaurante, cozinha, telefone, endereco, url_reserva',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Imobiliária',
'description' => 'Landing page para imobiliária ou lançamento imobiliário.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Imobiliária',
'objective' => 'Gerar uma landing page para imobiliária ou lançamento imobiliário, com imóveis em destaque e contato.',
'context' => 'Imobiliária que vende e aluga imóveis residenciais e comerciais. Atua em grandes cidades.',
'persona' => 'Especialista em imóveis e experiência do usuário para vendas.',
'tone' => 'Sofisticado, confiável, aspiracional.',
'constraints' => "- Design premium.\n- Galeria de imagens.\n- Filtros de busca.\n- Responsivo.\n- Máximo de 800 linhas.",
'output_format' => 'HTML completo com seções: Hero, Busca, Destaques, Sobre, Contato, Footer.',
'examples' => 'Hero com slider de imóveis, cards com fotos e preços, mapa de localização, formulário de contato.',
'variables' => 'nome_imobiliaria, cidade, telefone, email, url_portfolio',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Saúde / Bem-estar',
'description' => 'Landing page para clínica, academia ou spa.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Saúde / Bem-estar',
'objective' => 'Gerar uma landing page para clínica, academia, spa ou serviço de saúde, com agendamento e informações.',
'context' => 'Clínica de fisioterapia, academia boutique ou spa urbano. Público preocupado com saúde e bem-estar.',
'persona' => 'Especialista em saúde digital e experiência do usuário para clínicas.',
'tone' => 'Acolhedor, profissional, saudável.',
'constraints' => "- Design clean e acolhedor.\n- Sistema de agendamento.\n- Responsivo.\n- Máximo de 700 linhas.",
'output_format' => 'HTML completo com seções: Hero, Serviços, Profissionais, Depoimentos, Agendamento, Localização, Footer.',
'examples' => 'Hero com imagem relaxante, cards de serviços, equipe com fotos, botão de agendamento WhatsApp.',
'variables' => 'nome_clinica, servicos, telefone, endereco, url_agendamento',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Educação',
'description' => 'Landing page para instituição de ensino ou curso.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Educação',
'objective' => 'Gerar uma landing page para instituição de ensino, curso ou escola, com informações sobre cursos e matrículas.',
'context' => 'Faculdade, curso técnico ou escola de idiomas. Público jovem e adultos em busca de qualificação.',
'persona' => 'Especialista em educação e experiência do usuário para instituições de ensino.',
'tone' => 'Institucional, inspirador, educativo.',
'constraints' => "- Design institucional.\n- Informações claras.\n- Responsivo.\n- Máximo de 800 linhas.",
'output_format' => 'HTML completo com seções: Hero, Cursos, Diferenciais, Infraestrutura, Depoimentos, Matrícula, Footer.',
'examples' => 'Hero com campus, cards de cursos, galeria de fotos, formulário de matrícula.',
'variables' => 'nome_escola, cursos, telefone, email, url_matricula',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Site Institucional',
'description' => 'Site institucional completo para empresa.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Site Institucional',
'objective' => 'Gerar um site institucional completo para uma empresa, com múltiplas páginas (sobre, serviços, contato).',
'context' => 'Empresa consolidada que precisa de presença digital profissional. Pode ser indústria, comércio ou serviços.',
'persona' => 'Especialista em sites institucionais e identidade digital.',
'tone' => 'Institucional, profissional, confiável.',
'constraints' => "- HTML5 semântico.\n- Múltiplas seções.\n- SEO otimizado.\n- Responsivo.\n- Máximo de 1000 linhas.",
'output_format' => 'HTML completo com seções: Header, Hero, Sobre, Serviços, Cases, Equipe, Contato, Footer.',
'examples' => 'Header fixo, hero com imagem institucional, grid de serviços, timeline da empresa, formulário de contato.',
'variables' => 'nome_empresa, slogan, missao, telefone, email, endereco',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Portfolio Profissional',
'description' => 'Portfolio profissional para desenvolvedor ou designer.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Portfolio Profissional',
'objective' => 'Gerar um portfolio profissional para desenvolvedor, designer ou profissional liberal.',
'context' => 'Profissional de tecnologia ou design que quer showcase de projetos e experiência.',
'persona' => 'Especialista em portfolios e experiência do usuário para profissionais.',
'tone' => 'Minimalista, moderno, profissional.',
'constraints' => "- Design clean.\n- Foco nos projetos.\n- Responsivo.\n- Máximo de 700 linhas.",
'output_format' => 'HTML completo com seções: Hero, Sobre, Experiência, Projetos, Skills, Contato, Footer.',
'examples' => 'Hero com foto, timeline de experiência, grid de projetos com screenshots, lista de skills.',
'variables' => 'nome, profissao, email, linkedin, github, url_portfolio',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Portfolio Criativo',
'description' => 'Portfolio criativo e visual para designers e artistas.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Portfolio Criativo',
'objective' => 'Gerar um portfolio criativo e visual para designer, fotógrafo, artista ou criativo.',
'context' => 'Profissional criativo que precisa de um site impactante e visualmente marcante.',
'persona' => 'Especialista em design criativo e experiência visual imersiva.',
'tone' => 'Criativo, ousado, artístico.',
'constraints' => "- Design criativo e impactante.\n- Galeria de imagens.\n- Animações suaves.\n- Responsivo.\n- Máximo de 800 linhas.",
'output_format' => 'HTML completo com seções: Hero, Galeria, Sobre, Processo, Contato, Footer.',
'examples' => 'Hero com animação, grid masonry de trabalhos, lightbox de imagens, formulário de contato minimalista.',
'variables' => 'nome, profissao, estilo, url_portfolio, instagram',
'temperature' => 0.9,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Blog Pessoal',
'description' => 'Blog pessoal completo com layout de posts e newsletter.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Blog Pessoal',
'objective' => 'Gerar um blog pessoal completo, com layout de posts, categorias e newsletter.',
'context' => 'Blog de tecnologia, lifestyle ou produtividade. Conteúdo em português.',
'persona' => 'Especialista em UX para blogs e conteúdo.',
'tone' => 'Acessível, envolvente, informativo.',
'constraints' => "- Design legível.\n- Layout de blog.\n- Responsivo.\n- Máximo de 900 linhas.",
'output_format' => 'HTML completo com seções: Header, Hero, Lista de posts, Sidebar, Newsletter, Footer.',
'examples' => 'Lista de posts com thumbnails, sidebar com categorias, formulário de newsletter, paginação.',
'variables' => 'nome_autor, categoria_principal, url_newsletter',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'E-commerce',
'description' => 'Loja virtual completa com catálogo e checkout.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'E-commerce',
'objective' => 'Gerar uma loja virtual completa, com catálogo de produtos, carrinho e checkout.',
'context' => 'Loja de roupas, eletrônicos ou produtos artesanais. Catálogo com até 20 produtos.',
'persona' => 'Especialista em e-commerce e experiência de compra online.',
'tone' => 'Comercial, confiável, envolvente.',
'constraints' => "- Design moderno.\n- Catálogo de produtos.\n- Carrinho funcional.\n- Responsivo.\n- Máximo de 1200 linhas.",
'output_format' => 'HTML completo com seções: Header, Hero, Catálogo, Carrinho, Checkout, Footer.',
'examples' => 'Grid de produtos, filtros, carrinho lateral, formulário de checkout, badges de desconto.',
'variables' => 'nome_loja, categoria, moeda, url_checkout',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Sistema SaaS',
'description' => 'Interface de sistema SaaS com dashboard e autenticação.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Sistema SaaS',
'objective' => 'Gerar a interface de um sistema SaaS com dashboard, autenticação e gestão de dados.',
'context' => 'Sistema de gestão de projetos, CRM ou ferramenta de produtividade para equipes.',
'persona' => 'Especialista em UX para aplicativos web e dashboards.',
'tone' => 'Profissional, limpo, eficiente.',
'constraints' => "- Interface limpa.\n- Dashboard com gráficos.\n- Responsivo.\n- Máximo de 1000 linhas.",
'output_format' => 'HTML completo com seções: Login, Dashboard, Sidebar, Tabelas, Forms, Perfil.',
'examples' => 'Sidebar de navegação, cards de métricas, tabela de dados, gráficos com Chart.js.',
'variables' => 'nome_sistema, modulo_principal, url_app',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Dashboard Admin',
'description' => 'Dashboard administrativo com métricas e gráficos.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Dashboard Admin',
'objective' => 'Gerar um dashboard administrativo com métricas, gráficos e gestão de conteúdo.',
'context' => 'Painel de administração para gerenciar usuários, conteúdo e configurações.',
'persona' => 'Especialista em painéis administrativos e data visualization.',
'tone' => 'Profissional, limpo, informativo.',
'constraints' => "- Design clean.\n- Gráficos interativos.\n- Tabelas responsivas.\n- Máximo de 900 linhas.",
'output_format' => 'HTML completo com seções: Sidebar, Header, Cards de métricas, Gráficos, Tabela, Footer.',
'examples' => 'Cards de KPIs, gráfico de linha com Chart.js, tabela de usuários, filtros de data.',
'variables' => 'nome_sistema, metricas, periodo',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Landing Page Delivery',
'description' => 'Landing page para serviço de delivery de comida.',
'category' => 'Sites & Landing Pages',
'template_data' => [
'title' => 'Landing Page Delivery',
'objective' => 'Gerar uma landing page para serviço de delivery de comida, com cardápio digital e pedido online.',
'context' => 'Restaurante, lanchonete ou pizzaria que oferece delivery. Integração com WhatsApp ou iFood.',
'persona' => 'Especialista em delivery e experiência de pedido online.',
'tone' => 'Descontraído, saboroso, rápido.',
'constraints' => "- Cardápio visual.\n- Botão de pedido.\n- Responsivo.\n- Máximo de 700 linhas.",
'output_format' => 'HTML completo com seções: Hero, Cardápio, Destaques, Avaliações, Pedido, Footer.',
'examples' => 'Hero com imagem de comida, cards de categorias, botão de pedido WhatsApp, avaliações.',
'variables' => 'nome_restaurante, categoria, telefone, url_cardapio',
'temperature' => 0.8,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Laravel 13 + Blade + Tailwind',
'description' => 'Aplicação web completa com Laravel 13, Blade e Tailwind.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Laravel 13 + Blade + Tailwind',
'objective' => 'Gerar uma aplicação web completa usando Laravel 13 com Blade, Tailwind CSS, banco de dados MySQL e autenticação. Estrutura MVC, validações, relacionamentos Eloquent, seeders e factories.',
'context' => 'Projeto fullstack PHP com Laravel 13, seguindo PSR-12, strict types, policies e validações robustas. Banco MySQL/MariaDB.',
'persona' => 'Você é um arquiteto de software especializado em Laravel, com profundo conhecimento de PHP 8.3, Eloquent ORM, Filament, Livewire e boas práticas.',
'tone' => 'Técnico, estruturado, didático.',
'constraints' => "- PHP 8.3 com strict_types.\n- PSR-12 compliance.\n- Migrations, seeders e factories.\n- Validações com Form Requests.\n- Policies e Gates para autorização.\n- Máximo de 2500 linhas de código.",
'output_format' => 'Código completo: migration, model, controller, request, view Blade, routes, seeder e factory.',
'examples' => 'CRUD completo de Produtos com relacionamentos e upload de imagem.',
'variables' => 'nome_modulo, entidade, nome_tabela',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Slim Framework 4 + API REST',
'description' => 'API RESTful com Slim Framework 4 e PHP 8.3.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Slim Framework 4 + API REST',
'objective' => 'Gerar uma API RESTful usando Slim Framework 4 com PHP 8.3, PSR-7, PSR-15, Eloquent ORM e autenticação JWT.',
'context' => 'Projeto de API REST estruturada com Slim 4, usando containers DI, middlewares, validação e documentação OpenAPI.',
'persona' => 'Você é um backend specialist especializado em PHP, APIs REST e arquitetura hexagonal.',
'tone' => 'Técnico, limpo, escalável.',
'constraints' => "- PHP 8.3 com strict_types.\n- Slim 4 com rotas agrupadas.\n- Middlewares de autenticação, CORS e rate limiting.\n- Eloquent ORM para banco de dados.\n- Documentação Swagger/OpenAPI.\n- Máximo de 2000 linhas.",
'output_format' => 'Código completo: index.php, rotas, controllers, middlewares, modelos Eloquent, migrations.',
'examples' => 'CRUD de usuários com autenticação JWT e rate limiting.',
'variables' => 'nome_recurso, nome_modelo, campos_customizados',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Laravel 13 + API RESTful',
'description' => 'API RESTful completa com Laravel 13 e Sanctum.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Laravel 13 + API RESTful',
'objective' => 'Gerar uma API RESTful completa com Laravel 13, Sanctum, Eloquent, validações, resources e testes.',
'context' => 'Projeto Laravel 13 focado em API com autenticação via token, versionamento de rotas, rate limiting e documentação com Scribe.',
'persona' => 'Especialista em Laravel APIs com foco em performance, segurança e boas práticas.',
'tone' => 'Técnico, robusto, seguro.',
'constraints' => "- Laravel 13 + Sanctum.\n- API Resources para transformação de dados.\n- Form Requests para validação.\n- Testes Feature e Unit.\n- Máximo de 2500 linhas.",
'output_format' => 'Migration, Model, Controller, API Resource, Request, Routes, Testes.',
'examples' => 'CRUD de Produtos com imagens, paginação e filtros.',
'variables' => 'nome_modulo, entidade, campos_filtros',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Slim Framework 4 + Twig',
'description' => 'Aplicação web MVC com Slim 4 e Twig.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Slim Framework 4 + Twig',
'objective' => 'Gerar uma aplicação web MVC com Slim Framework 4, Twig templates, sessões e autenticação.',
'context' => 'Projeto Slim 4 com estrutura MVC, templates Twig, Flash messages e CSRF protection.',
'persona' => 'Especialista em micro-frameworks PHP e arquitetura limpa.',
'tone' => 'Didático, organizado, prático.',
'constraints' => "- PHP 8.3.\n- Slim 4 com DI container.\n- Twig para views.\n- Middlewares de sessão e CSRF.\n- Máximo de 2000 linhas.",
'output_format' => 'Arquivos: index.php, rotas, controllers, views Twig, middlewares, migrations.',
'examples' => 'Blog simples com autenticação e CRUD de posts.',
'variables' => 'nome_projeto, tema, modulo_principal',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Vue.js 3 + Vite SPA',
'description' => 'SPA com Vue.js 3, Vite, Pinia e Vue Router.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Vue.js 3 + Vite SPA',
'objective' => 'Gerar uma Single Page Application com Vue.js 3, Vite, Pinia, Vue Router e Axios.',
'context' => 'Projeto frontend moderno com Vue 3 Composition API, TypeScript opcional, estado global com Pinia e requisições HTTP.',
'persona' => 'Especialista em Vue.js e arquitetura frontend moderna.',
'tone' => 'Moderno, componentizado, reutilizável.',
'constraints' => "- Vue 3 com Composition API.\n- Vite como bundler.\n- Pinia para estado global.\n- Vue Router para navegação.\n- Axios para HTTP.\n- Máximo de 2500 linhas.",
'output_format' => 'Estrutura completa: src/components, src/views, src/stores, src/router, src/services.',
'examples' => 'Dashboard com sidebar, gráficos, tabela de dados e formulários.',
'variables' => 'nome_app, tema_cores, modulo_principal',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'React + Vite SPA',
'description' => 'SPA com React 18+, Vite e Redux Toolkit.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'React + Vite SPA',
'objective' => 'Gerar uma Single Page Application com React 18+, Vite, Redux Toolkit, React Router e Axios.',
'context' => 'Projeto React moderno com hooks, componentização, estado global e integração com APIs.',
'persona' => 'Especialista em React e ecossistema JavaScript moderno.',
'tone' => 'Moderno, performático, escalável.',
'constraints' => "- React 18+ com hooks.\n- Vite.\n- Redux Toolkit para estado.\n- React Router v6.\n- Axios para HTTP.\n- Máximo de 2500 linhas.",
'output_format' => 'Estrutura completa: src/components, src/pages, src/store, src/router, src/services.',
'examples' => 'Dashboard com gráficos, tabela paginada e formulários.',
'variables' => 'nome_app, tema_cores, modulo_principal',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Next.js 14 App Router',
'description' => 'Aplicação Next.js 14+ com App Router e Server Components.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Next.js 14 App Router',
'objective' => 'Gerar uma aplicação Next.js 14+ com App Router, Server Components, Tailwind CSS e Prisma ORM.',
'context' => 'Projeto fullstack React com Next.js 14, usando App Router, Server Actions, middleware de autenticação e Prisma com PostgreSQL.',
'persona' => 'Especialista em Next.js, React Server Components e fullstack TypeScript.',
'tone' => 'Moderno, performático, type-safe.',
'constraints' => "- Next.js 14+.\n- App Router com Server Components.\n- Tailwind CSS.\n- Prisma ORM.\n- Autenticação com NextAuth.js.\n- Máximo de 3000 linhas.",
'output_format' => 'Estrutura completa: app/, components/, lib/, prisma/, middleware.ts.',
'examples' => 'Blog com CMS, autenticação e painel admin.',
'variables' => 'nome_projeto, database_url, modulo_principal',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Node.js + Express + TypeScript',
'description' => 'API backend com Node.js, Express e TypeScript.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Node.js + Express + TypeScript',
'objective' => 'Gerar uma API backend com Node.js, Express, TypeScript, Prisma ORM e autenticação JWT.',
'context' => 'Projeto backend Node.js com estrutura em camadas (controllers, services, repositories), validação com Zod e testes.',
'persona' => 'Especialista em Node.js, TypeScript e arquitetura backend escalável.',
'tone' => 'Técnico, estruturado, type-safe.',
'constraints' => "- Node.js + TypeScript.\n- Express com middlewares.\n- Prisma ORM.\n- Zod para validação.\n- JWT para autenticação.\n- Máximo de 2500 linhas.",
'output_format' => 'Estrutura completa: src/controllers, src/services, src/repositories, src/middlewares, prisma/schema.',
'examples' => 'CRUD de usuários com validação, hash de senha e refresh token.',
'variables' => 'nome_modulo, entidade, campos_customizados',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'FastAPI + Python',
'description' => 'API RESTful com FastAPI, SQLAlchemy e Pydantic.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'FastAPI + Python',
'objective' => 'Gerar uma API RESTful com FastAPI, SQLAlchemy, Pydantic e autenticação OAuth2.',
'context' => 'Projeto Python com FastAPI, banco PostgreSQL, validação automática, documentação interativa e testes.',
'persona' => 'Especialista em Python, FastAPI e arquitetura de microsserviços.',
'tone' => 'Técnico, limpo, performático.',
'constraints' => "- Python 3.11+.\n- FastAPI com Pydantic v2.\n- SQLAlchemy 2.0 ORM.\n- Autenticação OAuth2 com JWT.\n- Testes com pytest.\n- Máximo de 2500 linhas.",
'output_format' => 'Estrutura completa: main.py, routers, models, schemas, dependencies, tests.',
'examples' => 'CRUD de produtos com upload de imagens e cache com Redis.',
'variables' => 'nome_modulo, entidade, campos_customizados',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Laravel 13 + Vue.js 3 Fullstack',
'description' => 'Aplicação fullstack com Laravel 13 API e Vue.js 3 SPA.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Laravel 13 + Vue.js 3 Fullstack',
'objective' => 'Gerar uma aplicação fullstack com Laravel 13 (API) e Vue.js 3 (SPA), com autenticação Sanctum.',
'context' => 'Projeto fullstack separado: backend Laravel 13 com API REST e frontend Vue 3 consumindo a API. Comunicação via axios e Sanctum.',
'persona' => 'Arquiteto fullstack especializado em Laravel e Vue.js.',
'tone' => 'Integrado, moderno, seguro.',
'constraints' => "- Laravel 13 + Sanctum.\n- Vue 3 com Composition API.\n- Axios para requisições.\n- CORS configurado.\n- Validações em ambos os lados.\n- Máximo de 3000 linhas.",
'output_format' => 'Código completo backend (routes, controllers, models) + frontend (components, stores, router).',
'examples' => 'Sistema de gestão de tarefas com autenticação e drag-and-drop.',
'variables' => 'nome_projeto, modulo_principal, entidades',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Modelo Laravel Full Stack 2',
'description' => 'Aplicação fullstack moderna com Laravel 13, Vue.js 3, ApexCharts e integração multi-provider de IA.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Modelo Laravel Full Stack 2',
'objective' => 'Gerar uma aplicação fullstack moderna com Laravel 13, PHP 8.3, MariaDB, Tailwind CSS 4, Blade, Vue.js 3, ApexCharts, Laravel Reverb, Sanctum, Spatie Permission, Mews Captcha, Laravel Pint e integração multi-provider de IA (OpenRouter, StepFun, llama.cpp local, QwenCloud).',
'context' => 'Projeto Laravel 13 com stack moderna: frontend com Tailwind CSS 4, Blade e Vue.js 3; backend com Laravel Reverb para tempo real, Sanctum para API auth, Spatie Permission para RBAC.',
'persona' => 'Você é um arquiteto fullstack sênior especializado em Laravel 13, PHP 8.3, Tailwind CSS 4, Vue.js 3 e integrações de IA multi-provider.',
'tone' => 'Técnico, estruturado, moderno e objetivo. Segue rigorosamente PSR-12 e strict_types.',
'constraints' => "- PHP 8.3 com strict_types e declare(strict_types=1).\n- PSR-12 compliance com Laravel Pint.\n- Eloquent ORM com relacionamentos e mutators.\n- Policies e Gates para toda autorização.\n- Form Requests para validação.\n- Integração multi-provider de IA via service container.\n- Laravel Reverb para eventos em tempo real.\n- Sanctum para autenticação API.\n- Spatie Permission para RBAC.\n- Mews Captcha (math) para formulários públicos.\n- ApexCharts no frontend via Vue.js 3.\n- Máximo de 4000 linhas de código.",
'output_format' => 'Código completo: migration, model, controller, request, policy, service, view Blade, Vue.js 3 component, routes, seeder, factory e testes Feature/Unit.',
'examples' => 'Dashboard com ApexCharts mostrando métricas de gerações de prompt por provedor de IA, formulário de criação com Mews Captcha.',
'variables' => 'nome_modulo, entidade, nome_tabela, provedores_ia, permissoes',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'API com Autenticação JWT',
'description' => 'API segura com autenticação JWT, refresh tokens e roles.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'API com Autenticação JWT',
'objective' => 'Gerar uma API segura com autenticação JWT, refresh tokens, roles e permissões.',
'context' => 'API RESTful com sistema de autenticação robusto, múltiplos roles (admin, user, manager), proteção de rotas e refresh token automático.',
'persona' => 'Especialista em segurança de APIs e autenticação stateless.',
'tone' => 'Seguro, robusto, documentado.',
'constraints' => "- JWT com access e refresh tokens.\n- Roles e permissões.\n- Middleware de autenticação.\n- Rate limiting.\n- Máximo de 2000 linhas.",
'output_format' => 'Estrutura completa: auth controller, middleware, JWT service, rotas protegidas.',
'examples' => 'Login, registro, refresh token, esqueci senha, verificação de email.',
'variables' => 'nome_api, roles, provedor_ia',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Arquitetura de Microsserviços',
'description' => 'Arquitetura de microsserviços com API Gateway e monitoramento.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Arquitetura de Microsserviços',
'objective' => 'Gerar uma arquitetura de microsserviços com API Gateway, comunicação assíncrona e monitoramento.',
'context' => 'Sistema distribuído com múltiplos serviços (usuários, pagamentos, notificações), API Gateway, message broker e observabilidade.',
'persona' => 'Arquiteto de software especializado em microsserviços, DDD e cloud native.',
'tone' => 'Arquitetural, escalável, resiliente.',
'constraints' => "- Docker + Docker Compose.\n- Comunicação via HTTP/gRPC.\n- Message broker (RabbitMQ/Kafka).\n- Monitoramento (Prometheus/Grafana).\n- Máximo de 3500 linhas.",
'output_format' => 'Dockerfiles, docker-compose, código dos serviços, gateway, migrations.',
'examples' => 'E-commerce com serviços: usuários, produtos, pedidos, pagamentos, notificações.',
'variables' => 'nome_sistema, servicos, broker_mensagens',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Chatbot com IA',
'description' => 'Chatbot inteligente com integração a provedores de IA.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Chatbot com IA',
'objective' => 'Gerar um chatbot inteligente com integração a provedores de IA (OpenAI, OpenRouter), histórico de conversas e RAG.',
'context' => 'Chatbot web ou WhatsApp com backend em PHP/Node.js, integração com modelos de linguagem, embeddings e vector database.',
'persona' => 'Especialista em IA generativa, LLMs e aplicações conversationais.',
'tone' => 'Inovador, inteligente, conversacional.',
'constraints' => "- Integração com pelo menos 1 provedor de IA.\n- Histórico de conversas.\n- Tratamento de contexto.\n- Interface web moderna.\n- Máximo de 2500 linhas.",
'output_format' => 'Backend (API) + Frontend (chat interface) + integração IA.',
'examples' => 'Chat de atendimento ao cliente com respostas contextuais.',
'variables' => 'nome_bot, provedor_ia, modelo, contexto',
'temperature' => 0.8,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Automação de Workflow',
'description' => 'Sistema de automação de workflows com triggers e integrações.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Automação de Workflow',
'objective' => 'Gerar um sistema de automação de workflows com triggers, ações condicionais e integrações.',
'context' => 'Plataforma de automação estilo Zapier/Make, onde usuários criam fluxos automáticos entre aplicativos.',
'persona' => 'Especialista em automação, integrações e arquitetura event-driven.',
'tone' => 'Prático, modular, escalável.',
'constraints' => "- Interface visual de fluxos.\n- Triggers e actions.\n- Integrações webhook.\n- Logs e monitoramento.\n- Máximo de 3000 linhas.",
'output_format' => 'Backend API + Frontend editor de fluxos + webhooks.',
'examples' => 'Automação: quando chegar e-mail → extrair anexo → salvar no Drive → notificar Slack.',
'variables' => 'nome_plataforma, integracoes, acoes',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
[
'name' => 'Integração entre APIs',
'description' => 'Middleware ou serviço de integração entre APIs externas.',
'category' => 'Frameworks & APIs',
'template_data' => [
'title' => 'Integração entre APIs',
'objective' => 'Gerar um middleware ou serviço de integração entre múltiplas APIs externas.',
'context' => 'Serviço que consome múltiplas APIs (pagamentos, CRM, ERP) e centraliza dados em uma única interface.',
'persona' => 'Especialista em integrações, webhooks e APIs externas.',
'tone' => 'Técnico, robusto, manutenível.',
'constraints' => "- Tratamento de erros e retries.\n- Logs estruturados.\n- Cache.\n- Monitoramento.\n- Máximo de 2500 linhas.",
'output_format' => 'Serviço de integração + testes de integração + documentação.',
'examples' => 'Syncronização entre ERP e plataforma de e-commerce.',
'variables' => 'nome_servico, apis_origem, api_destino',
'temperature' => 0.7,
'max_tokens' => 4096,
],
'is_public' => true,
],
];
foreach ($templates as $template) {
$template['template_data'] = json_encode($template['template_data'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
DB::table('prompt_templates')->updateOrInsert(
['name' => $template['name']],
$template
);
}
}
}
+304
View File
@@ -0,0 +1,304 @@
<?php
declare(strict_types=1);
namespace Database\Seeders;
use App\Models\TutorialLesson;
use App\Models\TutorialQuestion;
use Illuminate\Database\Seeder;
class TutorialSeeder extends Seeder
{
public function run(): void
{
$lessons = [
[
'title' => '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);
}
}
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class UserSeeder extends Seeder
{
/**
* Seed the application users.
*/
public function run(): void
{
// SuperAdmin
User::firstOrCreate(
['email' => 'superadmin@sistema.com'],
[
'name' => 'Super Admin',
'password' => Hash::make('superadmin123'),
'role' => 'superadmin',
'is_approved' => true,
]
);
// Regular User
User::firstOrCreate(
['email' => 'user@sistema.com'],
[
'name' => 'User Test',
'password' => Hash::make('user123'),
'role' => 'user',
'is_approved' => true,
]
);
}
}