Bloco 3: Engenharia de IA, RAG e Agentes (9 Horas)

Integração Cognitiva Avançada no Navegador

Objetivos Gerais deste Bloco

Você transformará a sua interface em um sistema inteligente vivo. Você aprenderá como configurar chamadas seguras para a API do Google Gemini, criar um fluxo RAG para buscar informações em documentos proprietários sem sofrer com alucinações, programar Skills para a IA disparar e-mails ou ler o banco de dados e lançar um agente autônomo conversacional.

⏱️ Horas 19-21: Integração com Google API & Engenharia de Prompts

1. Segurança da Chave de API (.env) e Chamadas Assíncronas

Nunca salve a sua chave de API diretamente no código de frontend público. Qualquer pessoa que inspecionar a página poderá roubá-la e utilizá-la em seu nome. A regra de ouro: as chamadas para a API de IA são feitas no backend (PHP/Node.js) ou por meio de proxies seguros com tratamento de variáveis de ambiente.

2. Endpoint Seguro em PHP para Gemini API

Abaixo está um script em PHP que atua como ponte segura entre o seu frontend e a API do Gemini:

<?php
// backend/generate_copy.php
header('Content-Type: application/json');

$apiKey = getenv('GEMINI_API_KEY') ?: 'SUA_CHAVE_AQUI_CASO_LOCAL';
$data = json_decode(file_get_contents('php://input'), true);

$inputText = $data['text'] ?? '';
$formula = $data['formula'] ?? 'aida';

if (empty($inputText)) {
    echo json_encode(['error' => 'Texto de entrada esta vazio']);
    exit;
}

// Configuração do Prompt de Sistema
$systemPrompt = "Você é um especialista em copywriting e marketing digital. " .
                "Sua tarefa é reescrever o texto enviado pelo usuário usando a fórmula " . strtoupper($formula) . ". " .
                "Mantenha a resposta curta, direta e estruturada de forma clara para o usuário copiar.";

$url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=" . $apiKey;

$payload = [
    "contents" => [
        [
            "role" => "user",
            "parts" => [
                ["text" => $systemPrompt . "\n\nTexto original: " . $inputText]
            ]
        ]
    ]
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));

$response = curl_exec($ch);
curl_close($ch);

echo $response;
Copiloto IA: Prompt para Configurar Chamada ao Gemini
"Escreva uma função em JavaScript assíncrono (async/await) que envie uma requisição POST usando fetch para o nosso endpoint local do PHP backend contendo o texto e a fórmula selecionada. Ela deve receber a resposta do Gemini em JSON, tratar erros e injetar o texto gerado na div de resultados da tela com um efeito suave de esmaecimento."

⏱️ Horas 22-24: Arquitetura RAG (Retrieval-Augmented Generation)

1. O que é RAG?

O RAG impede que a Inteligência Artificial invente informações falsas (alucinações). Antes de enviar a pergunta do usuário para o Gemini, o sistema consulta uma base de dados local ou arquivo texto contendo fatos reais (ex: regras de preço do curso, catálogo de produtos, manuais) e injeta esse conteúdo como "contexto verdadeiro".

Diagrama do Fluxo RAG

O caminho percorrido pela informação:

Pergunta ──► [Buscar no FAQ SQLite / Arquivo] ──► Mesclar com o Prompt ──► Gemini ──► Resposta Precisa
            

2. Exemplo Simples de RAG em PHP

<?php
// Exemplo prático de busca de contexto local (RAG manual)
$userQuestion = "Quanto custa a mentoria?";

// Nossa base de conhecimento proprietária
$knowledgeBase = [
    "preco" => "A mentoria Criando Sites com IA custa R$ 1.497,00 reais à vista ou em até 12x no cartão de crédito.",
    "carga_horaria" => "A carga horária total é de 27 horas práticas divididas em 3 blocos de 9 horas.",
    "pre_requisitos" => "Não há pré-requisitos técnicos. O curso vai do absoluto zero ao deploy."
];

// Busca semântica simplificada (por palavras-chave relevantes)
$context = "";
if (stripos($userQuestion, 'cust') !== false || stripos($userQuestion, 'preço') !== false || stripos($userQuestion, 'valor') !== false) {
    $context = $knowledgeBase['preco'];
} elseif (stripos($userQuestion, 'hora') !== false || stripos($userQuestion, 'duração') !== false) {
    $context = $knowledgeBase['carga_horaria'];
}

// Injeção de contexto no prompt final
$ragPrompt = "Você é o assistente virtual da Mentoria Jorge Batista.\n" .
             "Responda à pergunta do aluno utilizando APENAS o Contexto Confiável abaixo.\n" .
             "Se a resposta não estiver no contexto, diga educadamente que não sabe e sugira falar com o suporte humano.\n\n" .
             "Contexto Confiável: " . $context . "\n\n" .
             "Pergunta do Aluno: " . $userQuestion;

// O prompt acima é o que enviamos à API do Gemini!

⏱️ Horas 25-27: Desenvolvimento de AI Skills & Agentes Autónomos

1. Dotando a IA de Ferramentas Ativas (Skills)

Uma AI Skill (Habilidade) é um script que a IA pode decidir executar quando julgar necessário. Em vez de apenas conversar, o modelo pode disparar funções externas no seu servidor.

2. Código Conceitual: Chatbot com Habilidade de Cadastro

// Habilidade da IA declarada como Function Calling no Gemini
const registerLeadSkill = {
    name: "cadastrarLeadInteressado",
    description: "Salva o nome, e-mail e WhatsApp de um lead no banco de dados da mentoria quando ele demonstrar desejo de inscrição.",
    parameters: {
        type: "OBJECT",
        properties: {
            nome: { type: "STRING", description: "Nome completo do lead" },
            email: { type: "STRING", description: "Endereço de e-mail válido" },
            whatsapp: { type: "STRING", description: "Número de contato com DDD" }
        },
        required: ["nome", "email", "whatsapp"]
    }
};

// O Gemini analisa a conversa e retorna um objeto solicitando a execução desta função!